From 7a8e35e1f1eb02a82811743f75dcf35e920dde88 Mon Sep 17 00:00:00 2001 From: fardin-developer Date: Mon, 19 Aug 2024 03:05:04 +0530 Subject: [PATCH 1/2] conflict fixed --- .gitIgnore | 1 + Dockerfile | 17 +- README.md | 77 + chronos/chronos.py | 29 +- chronos/static/css/main.css | 33 - chronos/static/images/Boiler-Cold.png | Bin 52000 -> 0 bytes chronos/static/images/Boiler-Hot.png | Bin 53263 -> 0 bytes .../static/images/Icons/Boiler/Boiler-OFF.png | Bin 12417 -> 0 bytes .../static/images/Icons/Boiler/Boiler-ON.png | Bin 10875 -> 0 bytes .../images/Icons/Boiler/Chiller-OFF.png | Bin 10955 -> 0 bytes .../static/images/Icons/Boiler/Chiller-ON.png | Bin 12063 -> 0 bytes chronos/static/images/Icons/Boiler/arrow1.png | Bin 4412 -> 0 bytes chronos/static/images/Icons/Boiler/arrow2.png | Bin 3607 -> 0 bytes chronos/static/images/Icons/Boiler/arrow3.png | Bin 3353 -> 0 bytes chronos/static/images/Icons/Boiler/arrow4.png | Bin 3330 -> 0 bytes chronos/static/images/Icons/DBWEB/DFDBF.png | Bin 75985 -> 0 bytes chronos/static/images/Icons/DBWEB/DFDBO.png | Bin 74528 -> 0 bytes chronos/static/images/Icons/DBWEB/DODBF.png | Bin 73958 -> 0 bytes chronos/static/images/Icons/DBWEB/DODBO.png | Bin 74444 -> 0 bytes chronos/static/images/Icons/GPIO/GPIOF.png | Bin 68578 -> 0 bytes chronos/static/images/Icons/GPIO/GPIOO.png | Bin 69338 -> 0 bytes chronos/static/images/Icons/Logo.png | Bin 59428 -> 0 bytes .../Icons/MainImage/INlet/InletCold.png | Bin 50899 -> 0 bytes .../images/Icons/MainImage/INlet/InletHot.png | Bin 51935 -> 0 bytes .../static/images/Icons/MainImage/OCIC.png | Bin 65793 -> 0 bytes .../static/images/Icons/MainImage/OCIH.png | Bin 66880 -> 0 bytes .../static/images/Icons/MainImage/OHIC.png | Bin 65337 -> 0 bytes .../static/images/Icons/MainImage/OHIH.png | Bin 66631 -> 0 bytes .../Icons/MainImage/Outlet/OutletColdt.png | Bin 49941 -> 0 bytes .../Icons/MainImage/Outlet/OutletHot.png | Bin 50066 -> 0 bytes chronos/static/images/Icons/Manual/Auto.png | Bin 75319 -> 0 bytes chronos/static/images/Icons/Manual/OFF.png | Bin 75333 -> 0 bytes chronos/static/images/Icons/Manual/ON.png | Bin 75207 -> 0 bytes chronos/static/images/Icons/TINTOUT/TFTF.png | Bin 75309 -> 0 bytes chronos/static/images/Icons/TINTOUT/TFTO.png | Bin 73506 -> 0 bytes chronos/static/images/Icons/TINTOUT/TOTF.png | Bin 74136 -> 0 bytes chronos/static/images/Icons/TINTOUT/TOTO.png | Bin 72758 -> 0 bytes .../static/images/Icons/WinterSummer/SOff.png | Bin 52355 -> 0 bytes .../static/images/Icons/WinterSummer/SOn.png | Bin 51879 -> 0 bytes .../static/images/Icons/WinterSummer/WOff.png | Bin 51468 -> 0 bytes .../static/images/Icons/WinterSummer/WOn.png | Bin 52357 -> 0 bytes .../Icons/bootstrap/bootstrap/.gitignore | 5 - .../images/Icons/bootstrap/bootstrap/CNAME | 1 - .../Icons/bootstrap/bootstrap/CONTRIBUTING.md | 14 - .../images/Icons/bootstrap/bootstrap/LICENSE | 176 - .../Icons/bootstrap/bootstrap/README.md | 60 - .../Icons/bootstrap/bootstrap/bower.json | 24 - .../Icons/bootstrap/bootstrap/coffeelint.json | 127 - .../Icons/bootstrap/bootstrap/composer.json | 37 - .../dist/css/bootstrap2/bootstrap-switch.css | 501 - .../css/bootstrap2/bootstrap-switch.min.css | 22 - .../dist/css/bootstrap3/bootstrap-switch.css | 206 - .../css/bootstrap3/bootstrap-switch.min.css | 22 - .../bootstrap/dist/js/bootstrap-switch.js | 532 - .../bootstrap/dist/js/bootstrap-switch.min.js | 22 - .../bootstrap/docs/css/bootstrap.min.css | 7 - .../bootstrap/docs/css/highlight.css | 153 - .../bootstrap/bootstrap/docs/css/main.css | 51 - .../fonts/glyphicons-halflings-regular.eot | Bin 20335 -> 0 bytes .../fonts/glyphicons-halflings-regular.svg | 229 - .../fonts/glyphicons-halflings-regular.ttf | Bin 41280 -> 0 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 23320 -> 0 bytes .../bootstrap/docs/js/bootstrap.min.js | 6 - .../bootstrap/bootstrap/docs/js/highlight.js | 1 - .../bootstrap/bootstrap/docs/js/jquery.min.js | 4 - .../Icons/bootstrap/bootstrap/docs/js/main.js | 45 - .../bootstrap/bootstrap/documentation-2.html | 320 - .../bootstrap/bootstrap/documentation-3.html | 324 - .../Icons/bootstrap/bootstrap/gulpfile.coffee | 115 - .../Icons/bootstrap/bootstrap/gulpfile.js | 2 - .../Icons/bootstrap/bootstrap/index.html | 126 - .../Icons/bootstrap/bootstrap/main.html | 74 - .../Icons/bootstrap/bootstrap/package.json | 56 - .../Icons/bootstrap/bootstrap/page.html | 70 - .../src/coffee/bootstrap-switch.coffee | 391 - .../bootstrap/src/docs/documentation-2.jade | 211 - .../bootstrap/src/docs/documentation-3.jade | 228 - .../bootstrap/bootstrap/src/docs/index.jade | 64 - .../bootstrap/bootstrap/src/docs/main.jade | 76 - .../src/less/bootstrap2/bootstrap-switch.less | 196 - .../bootstrap/src/less/bootstrap2/build.less | 3 - .../bootstrap/src/less/bootstrap2/mixins.less | 702 - .../src/less/bootstrap2/variables.less | 301 - .../src/less/bootstrap3/bootstrap-switch.less | 201 - .../bootstrap/src/less/bootstrap3/build.less | 3 - .../bootstrap/src/less/bootstrap3/mixins.less | 929 - .../src/less/bootstrap3/variables.less | 829 - .../src/test/bootstrap-switch.coffee | 1 - chronos/static/images/TOTO.png | Bin 72758 -> 0 bytes chronos/static/images/bitMapTemp.png | Bin 3327 -> 0 bytes chronos/static/images/bitMapTempTwo.png | Bin 3332 -> 0 bytes chronos/static/images/boilerOne.png | Bin 3713 -> 0 bytes chronos/static/images/chillerOne.png | Bin 3769 -> 0 bytes chronos/static/images/chillerTwo.png | Bin 3769 -> 0 bytes chronos/static/images/demo.png | Bin 66764 -> 0 bytes chronos/static/js/amcharts/amcharts.js | 402 - chronos/static/js/amcharts/funnel.js | 17 - chronos/static/js/amcharts/gantt.js | 5 - chronos/static/js/amcharts/gauge.js | 23 - .../static/js/amcharts/images/dragIcon.gif | Bin 122 -> 0 bytes .../js/amcharts/images/dragIconBlack.gif | Bin 122 -> 0 bytes .../static/js/amcharts/images/dragIconH.gif | Bin 111 -> 0 bytes .../js/amcharts/images/dragIconHBlack.gif | Bin 111 -> 0 bytes .../js/amcharts/images/dragIconRectBig.png | Bin 1235 -> 0 bytes .../js/amcharts/images/dragIconRectBig.svg | 15 - .../amcharts/images/dragIconRectBigBlack.png | Bin 1205 -> 0 bytes .../amcharts/images/dragIconRectBigBlack.svg | 14 - .../amcharts/images/dragIconRectBigBlackH.png | Bin 681 -> 0 bytes .../amcharts/images/dragIconRectBigBlackH.svg | 13 - .../js/amcharts/images/dragIconRectBigH.png | Bin 715 -> 0 bytes .../js/amcharts/images/dragIconRectBigH.svg | 13 - .../js/amcharts/images/dragIconRectSmall.png | Bin 1110 -> 0 bytes .../js/amcharts/images/dragIconRectSmall.svg | 15 - .../images/dragIconRectSmallBlack.png | Bin 1087 -> 0 bytes .../images/dragIconRectSmallBlack.svg | 15 - .../images/dragIconRectSmallBlackH.png | Bin 1092 -> 0 bytes .../images/dragIconRectSmallBlackH.svg | 15 - .../js/amcharts/images/dragIconRectSmallH.png | Bin 1115 -> 0 bytes .../js/amcharts/images/dragIconRectSmallH.svg | 15 - .../js/amcharts/images/dragIconRoundBig.png | Bin 1333 -> 0 bytes .../js/amcharts/images/dragIconRoundBig.svg | 15 - .../amcharts/images/dragIconRoundBigBlack.png | Bin 1090 -> 0 bytes .../amcharts/images/dragIconRoundBigBlack.svg | 15 - .../images/dragIconRoundBigBlackH.png | Bin 1095 -> 0 bytes .../images/dragIconRoundBigBlackH.svg | 15 - .../js/amcharts/images/dragIconRoundBigH.png | Bin 1368 -> 0 bytes .../js/amcharts/images/dragIconRoundBigH.svg | 15 - .../js/amcharts/images/dragIconRoundSmall.png | Bin 1273 -> 0 bytes .../js/amcharts/images/dragIconRoundSmall.svg | 15 - .../images/dragIconRoundSmallBlack.png | Bin 1205 -> 0 bytes .../images/dragIconRoundSmallBlack.svg | 15 - .../images/dragIconRoundSmallBlackH.png | Bin 1190 -> 0 bytes .../images/dragIconRoundSmallBlackH.svg | 15 - .../amcharts/images/dragIconRoundSmallH.png | Bin 1274 -> 0 bytes .../amcharts/images/dragIconRoundSmallH.svg | 15 - .../static/js/amcharts/images/eraserIcon.svg | 15 - .../static/js/amcharts/images/eraserIconH.svg | 15 - chronos/static/js/amcharts/images/export.png | Bin 216 -> 0 bytes .../static/js/amcharts/images/exportWhite.png | Bin 213 -> 0 bytes chronos/static/js/amcharts/images/lens.png | Bin 1408 -> 0 bytes chronos/static/js/amcharts/images/lens.svg | 7 - .../static/js/amcharts/images/lensWhite.png | Bin 1313 -> 0 bytes .../static/js/amcharts/images/lensWhite.svg | 7 - .../js/amcharts/images/lensWhite_old.png | Bin 262 -> 0 bytes .../static/js/amcharts/images/lens_old.png | Bin 257 -> 0 bytes .../static/js/amcharts/images/pencilIcon.svg | 22 - .../static/js/amcharts/images/pencilIconH.svg | 22 - chronos/static/js/amcharts/images/xIcon.svg | 7 - chronos/static/js/amcharts/images/xIconH.svg | 7 - chronos/static/js/amcharts/lang/az.js | 1 - chronos/static/js/amcharts/lang/bg.js | 1 - chronos/static/js/amcharts/lang/de.js | 1 - chronos/static/js/amcharts/lang/es.js | 1 - chronos/static/js/amcharts/lang/fi.js | 1 - chronos/static/js/amcharts/lang/fo.js | 1 - chronos/static/js/amcharts/lang/fr.js | 1 - chronos/static/js/amcharts/lang/hr.js | 1 - chronos/static/js/amcharts/lang/hu.js | 1 - chronos/static/js/amcharts/lang/id.js | 1 - chronos/static/js/amcharts/lang/is.js | 1 - chronos/static/js/amcharts/lang/it.js | 1 - chronos/static/js/amcharts/lang/ja.js | 1 - chronos/static/js/amcharts/lang/lt.js | 1 - chronos/static/js/amcharts/lang/lv.js | 1 - chronos/static/js/amcharts/lang/mk.js | 1 - chronos/static/js/amcharts/lang/mn.js | 1 - chronos/static/js/amcharts/lang/mt.js | 1 - chronos/static/js/amcharts/lang/nl.js | 1 - chronos/static/js/amcharts/lang/no.js | 1 - chronos/static/js/amcharts/lang/pl.js | 1 - chronos/static/js/amcharts/lang/pt.js | 1 - chronos/static/js/amcharts/lang/ro.js | 1 - chronos/static/js/amcharts/lang/ru.js | 1 - chronos/static/js/amcharts/lang/rw.js | 1 - chronos/static/js/amcharts/lang/sk.js | 1 - chronos/static/js/amcharts/lang/so.js | 1 - chronos/static/js/amcharts/lang/th.js | 1 - chronos/static/js/amcharts/lang/tr.js | 1 - .../js/amcharts/patterns/black/pattern1.png | Bin 158 -> 0 bytes .../js/amcharts/patterns/black/pattern10.png | Bin 155 -> 0 bytes .../js/amcharts/patterns/black/pattern11.png | Bin 161 -> 0 bytes .../js/amcharts/patterns/black/pattern12.png | Bin 161 -> 0 bytes .../js/amcharts/patterns/black/pattern13.png | Bin 153 -> 0 bytes .../js/amcharts/patterns/black/pattern14.png | Bin 160 -> 0 bytes .../js/amcharts/patterns/black/pattern15.png | Bin 157 -> 0 bytes .../js/amcharts/patterns/black/pattern16.png | Bin 160 -> 0 bytes .../js/amcharts/patterns/black/pattern17.png | Bin 162 -> 0 bytes .../js/amcharts/patterns/black/pattern18.png | Bin 155 -> 0 bytes .../js/amcharts/patterns/black/pattern19.png | Bin 160 -> 0 bytes .../js/amcharts/patterns/black/pattern2.png | Bin 161 -> 0 bytes .../js/amcharts/patterns/black/pattern20.png | Bin 161 -> 0 bytes .../js/amcharts/patterns/black/pattern21.png | Bin 158 -> 0 bytes .../js/amcharts/patterns/black/pattern3.png | Bin 156 -> 0 bytes .../js/amcharts/patterns/black/pattern4.png | Bin 154 -> 0 bytes .../js/amcharts/patterns/black/pattern5.png | Bin 158 -> 0 bytes .../js/amcharts/patterns/black/pattern6.png | Bin 155 -> 0 bytes .../js/amcharts/patterns/black/pattern7.png | Bin 153 -> 0 bytes .../js/amcharts/patterns/black/pattern8.png | Bin 160 -> 0 bytes .../js/amcharts/patterns/black/pattern9.png | Bin 153 -> 0 bytes .../js/amcharts/patterns/chalk/pattern1.jpg | Bin 116199 -> 0 bytes .../js/amcharts/patterns/chalk/pattern1r.jpg | Bin 113803 -> 0 bytes .../js/amcharts/patterns/chalk/pattern2.jpg | Bin 116889 -> 0 bytes .../js/amcharts/patterns/chalk/pattern3.jpg | Bin 163966 -> 0 bytes .../js/amcharts/patterns/chalk/pattern4.jpg | Bin 163538 -> 0 bytes .../js/amcharts/patterns/chalk/pattern5.jpg | Bin 177475 -> 0 bytes .../js/amcharts/patterns/chalk/pattern6.jpg | Bin 146193 -> 0 bytes .../js/amcharts/patterns/white/pattern1.png | Bin 156 -> 0 bytes .../js/amcharts/patterns/white/pattern10.png | Bin 155 -> 0 bytes .../js/amcharts/patterns/white/pattern11.png | Bin 159 -> 0 bytes .../js/amcharts/patterns/white/pattern12.png | Bin 160 -> 0 bytes .../js/amcharts/patterns/white/pattern13.png | Bin 154 -> 0 bytes .../js/amcharts/patterns/white/pattern14.png | Bin 161 -> 0 bytes .../js/amcharts/patterns/white/pattern15.png | Bin 155 -> 0 bytes .../js/amcharts/patterns/white/pattern16.png | Bin 158 -> 0 bytes .../js/amcharts/patterns/white/pattern17.png | Bin 158 -> 0 bytes .../js/amcharts/patterns/white/pattern18.png | Bin 155 -> 0 bytes .../js/amcharts/patterns/white/pattern19.png | Bin 159 -> 0 bytes .../js/amcharts/patterns/white/pattern2.png | Bin 157 -> 0 bytes .../js/amcharts/patterns/white/pattern20.png | Bin 158 -> 0 bytes .../js/amcharts/patterns/white/pattern21.png | Bin 158 -> 0 bytes .../js/amcharts/patterns/white/pattern3.png | Bin 146 -> 0 bytes .../js/amcharts/patterns/white/pattern4.png | Bin 154 -> 0 bytes .../js/amcharts/patterns/white/pattern5.png | Bin 159 -> 0 bytes .../js/amcharts/patterns/white/pattern6.png | Bin 161 -> 0 bytes .../js/amcharts/patterns/white/pattern7.png | Bin 154 -> 0 bytes .../js/amcharts/patterns/white/pattern8.png | Bin 160 -> 0 bytes .../js/amcharts/patterns/white/pattern9.png | Bin 155 -> 0 bytes chronos/static/js/amcharts/pie.js | 11 - .../amcharts/plugins/dataloader/dataloader.js | 664 - .../plugins/dataloader/dataloader.min.js | 1 - .../plugins/dataloader/examples/data/MSFT.csv | 3674 - .../dataloader/examples/data/MSFT_events.csv | 56 - .../plugins/dataloader/examples/data/TXN.csv | 3674 - .../dataloader/examples/data/gauge.json | 25 - .../plugins/dataloader/examples/data/map.json | 155 - .../plugins/dataloader/examples/data/pie.csv | 8 - .../plugins/dataloader/examples/data/pie.json | 22 - .../dataloader/examples/data/serial.csv | 20 - .../dataloader/examples/data/serial.json | 96 - .../dataloader/examples/data/serial2.json | 21 - .../dataloader/examples/gauge_json.html | 58 - .../plugins/dataloader/examples/map_json.html | 50 - .../plugins/dataloader/examples/pie_csv.html | 58 - .../plugins/dataloader/examples/pie_json.html | 44 - .../dataloader/examples/serial2_json.html | 85 - .../dataloader/examples/serial_csv.html | 112 - .../dataloader/examples/serial_json.html | 108 - .../examples/serial_with_dynamic_graphs.html | 100 - .../examples/stock_csv_data_and_events.html | 312 - .../js/amcharts/plugins/dataloader/lang/en.js | 6 - .../js/amcharts/plugins/dataloader/lang/lt.js | 6 - .../amcharts/plugins/dataloader/license.txt | 201 - .../js/amcharts/plugins/dataloader/readme.md | 340 - .../static/js/amcharts/plugins/export/LICENSE | 202 - .../js/amcharts/plugins/export/README.md | 1043 - .../export/examples/export.config.advanced.js | 277 - .../export/examples/export.config.default.js | 84 - .../plugins/export/examples/funnel.html | 80 - .../plugins/export/examples/gantt.html | 311 - .../plugins/export/examples/gauge.html | 77 - .../export/examples/images/bicycle.png | Bin 1177 -> 0 bytes .../plugins/export/examples/images/car.png | Bin 759 -> 0 bytes .../export/examples/images/motorcycle.png | Bin 1020 -> 0 bytes .../plugins/export/examples/index.html | 62 - .../amcharts/plugins/export/examples/map.html | 209 - .../plugins/export/examples/pie1.html | 72 - .../plugins/export/examples/pie2.html | 97 - .../plugins/export/examples/pie3.html | 84 - .../plugins/export/examples/pie4.html | 101 - .../plugins/export/examples/radar.html | 92 - .../plugins/export/examples/serial1.html | 213 - .../plugins/export/examples/serial2.html | 107 - .../plugins/export/examples/serial3.html | 112 - .../plugins/export/examples/stock.html | 223 - .../amcharts/plugins/export/examples/xy.html | 139 - .../js/amcharts/plugins/export/export.css | 348 - .../js/amcharts/plugins/export/export.js | 3033 - .../js/amcharts/plugins/export/export.min.js | 2 - .../js/amcharts/plugins/export/lang/de.js | 29 - .../js/amcharts/plugins/export/lang/en.js | 29 - .../js/amcharts/plugins/export/lang/fr.js | 29 - .../js/amcharts/plugins/export/lang/lt.js | 29 - .../js/amcharts/plugins/export/lang/pl.js | 29 - .../export/libs/FileSaver.js/FileSaver.js | 253 - .../export/libs/FileSaver.js/FileSaver.min.js | 2 - .../plugins/export/libs/blob.js/blob.js | 211 - .../plugins/export/libs/fabric.js/fabric.js | 23452 ------ .../export/libs/fabric.js/fabric.min.js | 15 - .../plugins/export/libs/jszip/jszip.js | 9155 --- .../plugins/export/libs/jszip/jszip.min.js | 14 - .../plugins/export/libs/pdfmake/pdfmake.js | 66555 ---------------- .../export/libs/pdfmake/pdfmake.min.js | 18 - .../export/libs/pdfmake/pdfmake.min.js.map | 1 - .../plugins/export/libs/pdfmake/vfs_fonts.js | 1 - .../amcharts/plugins/export/libs/xlsx/LICENSE | 17 - .../amcharts/plugins/export/libs/xlsx/xlsx.js | 11654 --- .../plugins/export/libs/xlsx/xlsx.min.js | 9 - .../plugins/export/libs/xlsx/xlsx.min.map | 1 - .../js/amcharts/plugins/export/shapes/1.svg | 1 - .../js/amcharts/plugins/export/shapes/10.svg | 1 - .../js/amcharts/plugins/export/shapes/11.svg | 1 - .../js/amcharts/plugins/export/shapes/12.svg | 1 - .../js/amcharts/plugins/export/shapes/13.svg | 1 - .../js/amcharts/plugins/export/shapes/14.svg | 1 - .../js/amcharts/plugins/export/shapes/15.svg | 1 - .../js/amcharts/plugins/export/shapes/16.svg | 1 - .../js/amcharts/plugins/export/shapes/17.svg | 1 - .../js/amcharts/plugins/export/shapes/18.svg | 1 - .../js/amcharts/plugins/export/shapes/19.svg | 1 - .../js/amcharts/plugins/export/shapes/2.svg | 1 - .../js/amcharts/plugins/export/shapes/20.svg | 1 - .../js/amcharts/plugins/export/shapes/21.svg | 1 - .../js/amcharts/plugins/export/shapes/22.svg | 1 - .../js/amcharts/plugins/export/shapes/23.svg | 1 - .../js/amcharts/plugins/export/shapes/24.svg | 1 - .../js/amcharts/plugins/export/shapes/25.svg | 1 - .../js/amcharts/plugins/export/shapes/26.svg | 1 - .../js/amcharts/plugins/export/shapes/27.svg | 1 - .../js/amcharts/plugins/export/shapes/28.svg | 1 - .../js/amcharts/plugins/export/shapes/29.svg | 1 - .../js/amcharts/plugins/export/shapes/3.svg | 1 - .../js/amcharts/plugins/export/shapes/30.svg | 1 - .../js/amcharts/plugins/export/shapes/31.svg | 1 - .../js/amcharts/plugins/export/shapes/4.svg | 1 - .../js/amcharts/plugins/export/shapes/5.svg | 1 - .../js/amcharts/plugins/export/shapes/6.svg | 1 - .../js/amcharts/plugins/export/shapes/7.svg | 1 - .../js/amcharts/plugins/export/shapes/8.svg | 1 - .../js/amcharts/plugins/export/shapes/9.svg | 1 - .../plugins/responsive/examples/funnel.html | 71 - .../plugins/responsive/examples/gantt.html | 304 - .../plugins/responsive/examples/gauge.html | 71 - .../responsive/examples/images/bicycle.png | Bin 1177 -> 0 bytes .../responsive/examples/images/car.png | Bin 759 -> 0 bytes .../responsive/examples/images/motorcycle.png | Bin 1020 -> 0 bytes .../plugins/responsive/examples/index.html | 112 - .../plugins/responsive/examples/map.html | 198 - .../plugins/responsive/examples/pie1.html | 71 - .../plugins/responsive/examples/pie2.html | 73 - .../plugins/responsive/examples/pie3.html | 106 - .../plugins/responsive/examples/radar.html | 67 - .../plugins/responsive/examples/serial1.html | 203 - .../plugins/responsive/examples/serial2.html | 84 - .../plugins/responsive/examples/serial3.html | 103 - .../plugins/responsive/examples/stock.html | 210 - .../plugins/responsive/examples/xy.html | 145 - .../amcharts/plugins/responsive/license.txt | 201 - .../js/amcharts/plugins/responsive/readme.md | 363 - .../amcharts/plugins/responsive/responsive.js | 1245 - .../plugins/responsive/responsive.min.js | 2 - .../plugins/responsive/responsive.min.js.map | 8 - chronos/static/js/amcharts/radar.js | 11 - chronos/static/js/amcharts/serial.js | 51 - chronos/static/js/amcharts/themes/black.js | 196 - chronos/static/js/amcharts/themes/chalk.js | 213 - chronos/static/js/amcharts/themes/dark.js | 195 - chronos/static/js/amcharts/themes/light.js | 189 - chronos/static/js/amcharts/themes/patterns.js | 256 - chronos/static/js/amcharts/xy.js | 19 - chronos/static/js/main.js | 171 - .../static/js/reconnecting-websocket.min.js | 1 - chronos/static/js/tempchart.js | 42 - chronos/templates/base.html | 255 - chronos/templates/form.html | 13 - chronos/templates/stats.html | 24 - chronos/templates/summer.html | 54 - chronos/templates/system_map.html | 75 - chronos/templates/to_summer.html | 17 - chronos/templates/to_winter.html | 17 - chronos/templates/winter.html | 88 - docker-compose.yml | 4 +- entrypoint.sh | 13 +- 372 files changed, 107 insertions(+), 142280 deletions(-) create mode 100644 .gitIgnore delete mode 100644 chronos/static/css/main.css delete mode 100644 chronos/static/images/Boiler-Cold.png delete mode 100644 chronos/static/images/Boiler-Hot.png delete mode 100644 chronos/static/images/Icons/Boiler/Boiler-OFF.png delete mode 100644 chronos/static/images/Icons/Boiler/Boiler-ON.png delete mode 100644 chronos/static/images/Icons/Boiler/Chiller-OFF.png delete mode 100644 chronos/static/images/Icons/Boiler/Chiller-ON.png delete mode 100644 chronos/static/images/Icons/Boiler/arrow1.png delete mode 100644 chronos/static/images/Icons/Boiler/arrow2.png delete mode 100644 chronos/static/images/Icons/Boiler/arrow3.png delete mode 100644 chronos/static/images/Icons/Boiler/arrow4.png delete mode 100644 chronos/static/images/Icons/DBWEB/DFDBF.png delete mode 100644 chronos/static/images/Icons/DBWEB/DFDBO.png delete mode 100644 chronos/static/images/Icons/DBWEB/DODBF.png delete mode 100644 chronos/static/images/Icons/DBWEB/DODBO.png delete mode 100644 chronos/static/images/Icons/GPIO/GPIOF.png delete mode 100644 chronos/static/images/Icons/GPIO/GPIOO.png delete mode 100644 chronos/static/images/Icons/Logo.png delete mode 100644 chronos/static/images/Icons/MainImage/INlet/InletCold.png delete mode 100644 chronos/static/images/Icons/MainImage/INlet/InletHot.png delete mode 100644 chronos/static/images/Icons/MainImage/OCIC.png delete mode 100644 chronos/static/images/Icons/MainImage/OCIH.png delete mode 100644 chronos/static/images/Icons/MainImage/OHIC.png delete mode 100644 chronos/static/images/Icons/MainImage/OHIH.png delete mode 100644 chronos/static/images/Icons/MainImage/Outlet/OutletColdt.png delete mode 100644 chronos/static/images/Icons/MainImage/Outlet/OutletHot.png delete mode 100644 chronos/static/images/Icons/Manual/Auto.png delete mode 100644 chronos/static/images/Icons/Manual/OFF.png delete mode 100644 chronos/static/images/Icons/Manual/ON.png delete mode 100644 chronos/static/images/Icons/TINTOUT/TFTF.png delete mode 100644 chronos/static/images/Icons/TINTOUT/TFTO.png delete mode 100644 chronos/static/images/Icons/TINTOUT/TOTF.png delete mode 100644 chronos/static/images/Icons/TINTOUT/TOTO.png delete mode 100644 chronos/static/images/Icons/WinterSummer/SOff.png delete mode 100644 chronos/static/images/Icons/WinterSummer/SOn.png delete mode 100644 chronos/static/images/Icons/WinterSummer/WOff.png delete mode 100644 chronos/static/images/Icons/WinterSummer/WOn.png delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/.gitignore delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/CNAME delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/CONTRIBUTING.md delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/LICENSE delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/README.md delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/bower.json delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/coffeelint.json delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/composer.json delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/dist/css/bootstrap2/bootstrap-switch.css delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/dist/css/bootstrap2/bootstrap-switch.min.css delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/dist/css/bootstrap3/bootstrap-switch.css delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/dist/css/bootstrap3/bootstrap-switch.min.css delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/dist/js/bootstrap-switch.js delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/dist/js/bootstrap-switch.min.js delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/docs/css/bootstrap.min.css delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/docs/css/highlight.css delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/docs/css/main.css delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/docs/fonts/glyphicons-halflings-regular.eot delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/docs/fonts/glyphicons-halflings-regular.svg delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/docs/fonts/glyphicons-halflings-regular.ttf delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/docs/fonts/glyphicons-halflings-regular.woff delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/docs/js/bootstrap.min.js delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/docs/js/highlight.js delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/docs/js/jquery.min.js delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/docs/js/main.js delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/documentation-2.html delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/documentation-3.html delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/gulpfile.coffee delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/gulpfile.js delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/index.html delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/main.html delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/package.json delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/page.html delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/src/coffee/bootstrap-switch.coffee delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/src/docs/documentation-2.jade delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/src/docs/documentation-3.jade delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/src/docs/index.jade delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/src/docs/main.jade delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/src/less/bootstrap2/bootstrap-switch.less delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/src/less/bootstrap2/build.less delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/src/less/bootstrap2/mixins.less delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/src/less/bootstrap2/variables.less delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/src/less/bootstrap3/bootstrap-switch.less delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/src/less/bootstrap3/build.less delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/src/less/bootstrap3/mixins.less delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/src/less/bootstrap3/variables.less delete mode 100644 chronos/static/images/Icons/bootstrap/bootstrap/src/test/bootstrap-switch.coffee delete mode 100644 chronos/static/images/TOTO.png delete mode 100644 chronos/static/images/bitMapTemp.png delete mode 100644 chronos/static/images/bitMapTempTwo.png delete mode 100644 chronos/static/images/boilerOne.png delete mode 100644 chronos/static/images/chillerOne.png delete mode 100644 chronos/static/images/chillerTwo.png delete mode 100644 chronos/static/images/demo.png delete mode 100644 chronos/static/js/amcharts/amcharts.js delete mode 100644 chronos/static/js/amcharts/funnel.js delete mode 100644 chronos/static/js/amcharts/gantt.js delete mode 100644 chronos/static/js/amcharts/gauge.js delete mode 100644 chronos/static/js/amcharts/images/dragIcon.gif delete mode 100644 chronos/static/js/amcharts/images/dragIconBlack.gif delete mode 100644 chronos/static/js/amcharts/images/dragIconH.gif delete mode 100644 chronos/static/js/amcharts/images/dragIconHBlack.gif delete mode 100644 chronos/static/js/amcharts/images/dragIconRectBig.png delete mode 100644 chronos/static/js/amcharts/images/dragIconRectBig.svg delete mode 100644 chronos/static/js/amcharts/images/dragIconRectBigBlack.png delete mode 100644 chronos/static/js/amcharts/images/dragIconRectBigBlack.svg delete mode 100644 chronos/static/js/amcharts/images/dragIconRectBigBlackH.png delete mode 100644 chronos/static/js/amcharts/images/dragIconRectBigBlackH.svg delete mode 100644 chronos/static/js/amcharts/images/dragIconRectBigH.png delete mode 100644 chronos/static/js/amcharts/images/dragIconRectBigH.svg delete mode 100644 chronos/static/js/amcharts/images/dragIconRectSmall.png delete mode 100644 chronos/static/js/amcharts/images/dragIconRectSmall.svg delete mode 100644 chronos/static/js/amcharts/images/dragIconRectSmallBlack.png delete mode 100644 chronos/static/js/amcharts/images/dragIconRectSmallBlack.svg delete mode 100644 chronos/static/js/amcharts/images/dragIconRectSmallBlackH.png delete mode 100644 chronos/static/js/amcharts/images/dragIconRectSmallBlackH.svg delete mode 100644 chronos/static/js/amcharts/images/dragIconRectSmallH.png delete mode 100644 chronos/static/js/amcharts/images/dragIconRectSmallH.svg delete mode 100644 chronos/static/js/amcharts/images/dragIconRoundBig.png delete mode 100644 chronos/static/js/amcharts/images/dragIconRoundBig.svg delete mode 100644 chronos/static/js/amcharts/images/dragIconRoundBigBlack.png delete mode 100644 chronos/static/js/amcharts/images/dragIconRoundBigBlack.svg delete mode 100644 chronos/static/js/amcharts/images/dragIconRoundBigBlackH.png delete mode 100644 chronos/static/js/amcharts/images/dragIconRoundBigBlackH.svg delete mode 100644 chronos/static/js/amcharts/images/dragIconRoundBigH.png delete mode 100644 chronos/static/js/amcharts/images/dragIconRoundBigH.svg delete mode 100644 chronos/static/js/amcharts/images/dragIconRoundSmall.png delete mode 100644 chronos/static/js/amcharts/images/dragIconRoundSmall.svg delete mode 100644 chronos/static/js/amcharts/images/dragIconRoundSmallBlack.png delete mode 100644 chronos/static/js/amcharts/images/dragIconRoundSmallBlack.svg delete mode 100644 chronos/static/js/amcharts/images/dragIconRoundSmallBlackH.png delete mode 100644 chronos/static/js/amcharts/images/dragIconRoundSmallBlackH.svg delete mode 100644 chronos/static/js/amcharts/images/dragIconRoundSmallH.png delete mode 100644 chronos/static/js/amcharts/images/dragIconRoundSmallH.svg delete mode 100644 chronos/static/js/amcharts/images/eraserIcon.svg delete mode 100644 chronos/static/js/amcharts/images/eraserIconH.svg delete mode 100644 chronos/static/js/amcharts/images/export.png delete mode 100644 chronos/static/js/amcharts/images/exportWhite.png delete mode 100644 chronos/static/js/amcharts/images/lens.png delete mode 100644 chronos/static/js/amcharts/images/lens.svg delete mode 100644 chronos/static/js/amcharts/images/lensWhite.png delete mode 100644 chronos/static/js/amcharts/images/lensWhite.svg delete mode 100644 chronos/static/js/amcharts/images/lensWhite_old.png delete mode 100644 chronos/static/js/amcharts/images/lens_old.png delete mode 100644 chronos/static/js/amcharts/images/pencilIcon.svg delete mode 100644 chronos/static/js/amcharts/images/pencilIconH.svg delete mode 100644 chronos/static/js/amcharts/images/xIcon.svg delete mode 100644 chronos/static/js/amcharts/images/xIconH.svg delete mode 100644 chronos/static/js/amcharts/lang/az.js delete mode 100644 chronos/static/js/amcharts/lang/bg.js delete mode 100644 chronos/static/js/amcharts/lang/de.js delete mode 100644 chronos/static/js/amcharts/lang/es.js delete mode 100644 chronos/static/js/amcharts/lang/fi.js delete mode 100644 chronos/static/js/amcharts/lang/fo.js delete mode 100644 chronos/static/js/amcharts/lang/fr.js delete mode 100644 chronos/static/js/amcharts/lang/hr.js delete mode 100644 chronos/static/js/amcharts/lang/hu.js delete mode 100644 chronos/static/js/amcharts/lang/id.js delete mode 100644 chronos/static/js/amcharts/lang/is.js delete mode 100644 chronos/static/js/amcharts/lang/it.js delete mode 100644 chronos/static/js/amcharts/lang/ja.js delete mode 100644 chronos/static/js/amcharts/lang/lt.js delete mode 100644 chronos/static/js/amcharts/lang/lv.js delete mode 100644 chronos/static/js/amcharts/lang/mk.js delete mode 100644 chronos/static/js/amcharts/lang/mn.js delete mode 100644 chronos/static/js/amcharts/lang/mt.js delete mode 100644 chronos/static/js/amcharts/lang/nl.js delete mode 100644 chronos/static/js/amcharts/lang/no.js delete mode 100644 chronos/static/js/amcharts/lang/pl.js delete mode 100644 chronos/static/js/amcharts/lang/pt.js delete mode 100644 chronos/static/js/amcharts/lang/ro.js delete mode 100644 chronos/static/js/amcharts/lang/ru.js delete mode 100644 chronos/static/js/amcharts/lang/rw.js delete mode 100644 chronos/static/js/amcharts/lang/sk.js delete mode 100644 chronos/static/js/amcharts/lang/so.js delete mode 100644 chronos/static/js/amcharts/lang/th.js delete mode 100644 chronos/static/js/amcharts/lang/tr.js delete mode 100644 chronos/static/js/amcharts/patterns/black/pattern1.png delete mode 100644 chronos/static/js/amcharts/patterns/black/pattern10.png delete mode 100644 chronos/static/js/amcharts/patterns/black/pattern11.png delete mode 100644 chronos/static/js/amcharts/patterns/black/pattern12.png delete mode 100644 chronos/static/js/amcharts/patterns/black/pattern13.png delete mode 100644 chronos/static/js/amcharts/patterns/black/pattern14.png delete mode 100644 chronos/static/js/amcharts/patterns/black/pattern15.png delete mode 100644 chronos/static/js/amcharts/patterns/black/pattern16.png delete mode 100644 chronos/static/js/amcharts/patterns/black/pattern17.png delete mode 100644 chronos/static/js/amcharts/patterns/black/pattern18.png delete mode 100644 chronos/static/js/amcharts/patterns/black/pattern19.png delete mode 100644 chronos/static/js/amcharts/patterns/black/pattern2.png delete mode 100644 chronos/static/js/amcharts/patterns/black/pattern20.png delete mode 100644 chronos/static/js/amcharts/patterns/black/pattern21.png delete mode 100644 chronos/static/js/amcharts/patterns/black/pattern3.png delete mode 100644 chronos/static/js/amcharts/patterns/black/pattern4.png delete mode 100644 chronos/static/js/amcharts/patterns/black/pattern5.png delete mode 100644 chronos/static/js/amcharts/patterns/black/pattern6.png delete mode 100644 chronos/static/js/amcharts/patterns/black/pattern7.png delete mode 100644 chronos/static/js/amcharts/patterns/black/pattern8.png delete mode 100644 chronos/static/js/amcharts/patterns/black/pattern9.png delete mode 100644 chronos/static/js/amcharts/patterns/chalk/pattern1.jpg delete mode 100644 chronos/static/js/amcharts/patterns/chalk/pattern1r.jpg delete mode 100644 chronos/static/js/amcharts/patterns/chalk/pattern2.jpg delete mode 100644 chronos/static/js/amcharts/patterns/chalk/pattern3.jpg delete mode 100644 chronos/static/js/amcharts/patterns/chalk/pattern4.jpg delete mode 100644 chronos/static/js/amcharts/patterns/chalk/pattern5.jpg delete mode 100644 chronos/static/js/amcharts/patterns/chalk/pattern6.jpg delete mode 100644 chronos/static/js/amcharts/patterns/white/pattern1.png delete mode 100644 chronos/static/js/amcharts/patterns/white/pattern10.png delete mode 100644 chronos/static/js/amcharts/patterns/white/pattern11.png delete mode 100644 chronos/static/js/amcharts/patterns/white/pattern12.png delete mode 100644 chronos/static/js/amcharts/patterns/white/pattern13.png delete mode 100644 chronos/static/js/amcharts/patterns/white/pattern14.png delete mode 100644 chronos/static/js/amcharts/patterns/white/pattern15.png delete mode 100644 chronos/static/js/amcharts/patterns/white/pattern16.png delete mode 100644 chronos/static/js/amcharts/patterns/white/pattern17.png delete mode 100644 chronos/static/js/amcharts/patterns/white/pattern18.png delete mode 100644 chronos/static/js/amcharts/patterns/white/pattern19.png delete mode 100644 chronos/static/js/amcharts/patterns/white/pattern2.png delete mode 100644 chronos/static/js/amcharts/patterns/white/pattern20.png delete mode 100644 chronos/static/js/amcharts/patterns/white/pattern21.png delete mode 100644 chronos/static/js/amcharts/patterns/white/pattern3.png delete mode 100644 chronos/static/js/amcharts/patterns/white/pattern4.png delete mode 100644 chronos/static/js/amcharts/patterns/white/pattern5.png delete mode 100644 chronos/static/js/amcharts/patterns/white/pattern6.png delete mode 100644 chronos/static/js/amcharts/patterns/white/pattern7.png delete mode 100644 chronos/static/js/amcharts/patterns/white/pattern8.png delete mode 100644 chronos/static/js/amcharts/patterns/white/pattern9.png delete mode 100644 chronos/static/js/amcharts/pie.js delete mode 100644 chronos/static/js/amcharts/plugins/dataloader/dataloader.js delete mode 100644 chronos/static/js/amcharts/plugins/dataloader/dataloader.min.js delete mode 100644 chronos/static/js/amcharts/plugins/dataloader/examples/data/MSFT.csv delete mode 100644 chronos/static/js/amcharts/plugins/dataloader/examples/data/MSFT_events.csv delete mode 100644 chronos/static/js/amcharts/plugins/dataloader/examples/data/TXN.csv delete mode 100644 chronos/static/js/amcharts/plugins/dataloader/examples/data/gauge.json delete mode 100644 chronos/static/js/amcharts/plugins/dataloader/examples/data/map.json delete mode 100644 chronos/static/js/amcharts/plugins/dataloader/examples/data/pie.csv delete mode 100644 chronos/static/js/amcharts/plugins/dataloader/examples/data/pie.json delete mode 100644 chronos/static/js/amcharts/plugins/dataloader/examples/data/serial.csv delete mode 100644 chronos/static/js/amcharts/plugins/dataloader/examples/data/serial.json delete mode 100644 chronos/static/js/amcharts/plugins/dataloader/examples/data/serial2.json delete mode 100644 chronos/static/js/amcharts/plugins/dataloader/examples/gauge_json.html delete mode 100644 chronos/static/js/amcharts/plugins/dataloader/examples/map_json.html delete mode 100644 chronos/static/js/amcharts/plugins/dataloader/examples/pie_csv.html delete mode 100644 chronos/static/js/amcharts/plugins/dataloader/examples/pie_json.html delete mode 100644 chronos/static/js/amcharts/plugins/dataloader/examples/serial2_json.html delete mode 100644 chronos/static/js/amcharts/plugins/dataloader/examples/serial_csv.html delete mode 100644 chronos/static/js/amcharts/plugins/dataloader/examples/serial_json.html delete mode 100644 chronos/static/js/amcharts/plugins/dataloader/examples/serial_with_dynamic_graphs.html delete mode 100644 chronos/static/js/amcharts/plugins/dataloader/examples/stock_csv_data_and_events.html delete mode 100644 chronos/static/js/amcharts/plugins/dataloader/lang/en.js delete mode 100644 chronos/static/js/amcharts/plugins/dataloader/lang/lt.js delete mode 100644 chronos/static/js/amcharts/plugins/dataloader/license.txt delete mode 100644 chronos/static/js/amcharts/plugins/dataloader/readme.md delete mode 100644 chronos/static/js/amcharts/plugins/export/LICENSE delete mode 100644 chronos/static/js/amcharts/plugins/export/README.md delete mode 100644 chronos/static/js/amcharts/plugins/export/examples/export.config.advanced.js delete mode 100644 chronos/static/js/amcharts/plugins/export/examples/export.config.default.js delete mode 100644 chronos/static/js/amcharts/plugins/export/examples/funnel.html delete mode 100644 chronos/static/js/amcharts/plugins/export/examples/gantt.html delete mode 100644 chronos/static/js/amcharts/plugins/export/examples/gauge.html delete mode 100644 chronos/static/js/amcharts/plugins/export/examples/images/bicycle.png delete mode 100644 chronos/static/js/amcharts/plugins/export/examples/images/car.png delete mode 100644 chronos/static/js/amcharts/plugins/export/examples/images/motorcycle.png delete mode 100644 chronos/static/js/amcharts/plugins/export/examples/index.html delete mode 100644 chronos/static/js/amcharts/plugins/export/examples/map.html delete mode 100644 chronos/static/js/amcharts/plugins/export/examples/pie1.html delete mode 100644 chronos/static/js/amcharts/plugins/export/examples/pie2.html delete mode 100644 chronos/static/js/amcharts/plugins/export/examples/pie3.html delete mode 100644 chronos/static/js/amcharts/plugins/export/examples/pie4.html delete mode 100644 chronos/static/js/amcharts/plugins/export/examples/radar.html delete mode 100644 chronos/static/js/amcharts/plugins/export/examples/serial1.html delete mode 100644 chronos/static/js/amcharts/plugins/export/examples/serial2.html delete mode 100644 chronos/static/js/amcharts/plugins/export/examples/serial3.html delete mode 100644 chronos/static/js/amcharts/plugins/export/examples/stock.html delete mode 100644 chronos/static/js/amcharts/plugins/export/examples/xy.html delete mode 100644 chronos/static/js/amcharts/plugins/export/export.css delete mode 100644 chronos/static/js/amcharts/plugins/export/export.js delete mode 100644 chronos/static/js/amcharts/plugins/export/export.min.js delete mode 100644 chronos/static/js/amcharts/plugins/export/lang/de.js delete mode 100644 chronos/static/js/amcharts/plugins/export/lang/en.js delete mode 100644 chronos/static/js/amcharts/plugins/export/lang/fr.js delete mode 100644 chronos/static/js/amcharts/plugins/export/lang/lt.js delete mode 100644 chronos/static/js/amcharts/plugins/export/lang/pl.js delete mode 100644 chronos/static/js/amcharts/plugins/export/libs/FileSaver.js/FileSaver.js delete mode 100644 chronos/static/js/amcharts/plugins/export/libs/FileSaver.js/FileSaver.min.js delete mode 100644 chronos/static/js/amcharts/plugins/export/libs/blob.js/blob.js delete mode 100644 chronos/static/js/amcharts/plugins/export/libs/fabric.js/fabric.js delete mode 100644 chronos/static/js/amcharts/plugins/export/libs/fabric.js/fabric.min.js delete mode 100644 chronos/static/js/amcharts/plugins/export/libs/jszip/jszip.js delete mode 100644 chronos/static/js/amcharts/plugins/export/libs/jszip/jszip.min.js delete mode 100644 chronos/static/js/amcharts/plugins/export/libs/pdfmake/pdfmake.js delete mode 100644 chronos/static/js/amcharts/plugins/export/libs/pdfmake/pdfmake.min.js delete mode 100644 chronos/static/js/amcharts/plugins/export/libs/pdfmake/pdfmake.min.js.map delete mode 100644 chronos/static/js/amcharts/plugins/export/libs/pdfmake/vfs_fonts.js delete mode 100644 chronos/static/js/amcharts/plugins/export/libs/xlsx/LICENSE delete mode 100644 chronos/static/js/amcharts/plugins/export/libs/xlsx/xlsx.js delete mode 100644 chronos/static/js/amcharts/plugins/export/libs/xlsx/xlsx.min.js delete mode 100644 chronos/static/js/amcharts/plugins/export/libs/xlsx/xlsx.min.map delete mode 100644 chronos/static/js/amcharts/plugins/export/shapes/1.svg delete mode 100644 chronos/static/js/amcharts/plugins/export/shapes/10.svg delete mode 100644 chronos/static/js/amcharts/plugins/export/shapes/11.svg delete mode 100644 chronos/static/js/amcharts/plugins/export/shapes/12.svg delete mode 100644 chronos/static/js/amcharts/plugins/export/shapes/13.svg delete mode 100644 chronos/static/js/amcharts/plugins/export/shapes/14.svg delete mode 100644 chronos/static/js/amcharts/plugins/export/shapes/15.svg delete mode 100644 chronos/static/js/amcharts/plugins/export/shapes/16.svg delete mode 100644 chronos/static/js/amcharts/plugins/export/shapes/17.svg delete mode 100644 chronos/static/js/amcharts/plugins/export/shapes/18.svg delete mode 100644 chronos/static/js/amcharts/plugins/export/shapes/19.svg delete mode 100644 chronos/static/js/amcharts/plugins/export/shapes/2.svg delete mode 100644 chronos/static/js/amcharts/plugins/export/shapes/20.svg delete mode 100644 chronos/static/js/amcharts/plugins/export/shapes/21.svg delete mode 100644 chronos/static/js/amcharts/plugins/export/shapes/22.svg delete mode 100644 chronos/static/js/amcharts/plugins/export/shapes/23.svg delete mode 100644 chronos/static/js/amcharts/plugins/export/shapes/24.svg delete mode 100644 chronos/static/js/amcharts/plugins/export/shapes/25.svg delete mode 100644 chronos/static/js/amcharts/plugins/export/shapes/26.svg delete mode 100644 chronos/static/js/amcharts/plugins/export/shapes/27.svg delete mode 100644 chronos/static/js/amcharts/plugins/export/shapes/28.svg delete mode 100644 chronos/static/js/amcharts/plugins/export/shapes/29.svg delete mode 100644 chronos/static/js/amcharts/plugins/export/shapes/3.svg delete mode 100644 chronos/static/js/amcharts/plugins/export/shapes/30.svg delete mode 100644 chronos/static/js/amcharts/plugins/export/shapes/31.svg delete mode 100644 chronos/static/js/amcharts/plugins/export/shapes/4.svg delete mode 100644 chronos/static/js/amcharts/plugins/export/shapes/5.svg delete mode 100644 chronos/static/js/amcharts/plugins/export/shapes/6.svg delete mode 100644 chronos/static/js/amcharts/plugins/export/shapes/7.svg delete mode 100644 chronos/static/js/amcharts/plugins/export/shapes/8.svg delete mode 100644 chronos/static/js/amcharts/plugins/export/shapes/9.svg delete mode 100644 chronos/static/js/amcharts/plugins/responsive/examples/funnel.html delete mode 100644 chronos/static/js/amcharts/plugins/responsive/examples/gantt.html delete mode 100644 chronos/static/js/amcharts/plugins/responsive/examples/gauge.html delete mode 100644 chronos/static/js/amcharts/plugins/responsive/examples/images/bicycle.png delete mode 100644 chronos/static/js/amcharts/plugins/responsive/examples/images/car.png delete mode 100644 chronos/static/js/amcharts/plugins/responsive/examples/images/motorcycle.png delete mode 100644 chronos/static/js/amcharts/plugins/responsive/examples/index.html delete mode 100644 chronos/static/js/amcharts/plugins/responsive/examples/map.html delete mode 100644 chronos/static/js/amcharts/plugins/responsive/examples/pie1.html delete mode 100644 chronos/static/js/amcharts/plugins/responsive/examples/pie2.html delete mode 100644 chronos/static/js/amcharts/plugins/responsive/examples/pie3.html delete mode 100644 chronos/static/js/amcharts/plugins/responsive/examples/radar.html delete mode 100644 chronos/static/js/amcharts/plugins/responsive/examples/serial1.html delete mode 100644 chronos/static/js/amcharts/plugins/responsive/examples/serial2.html delete mode 100644 chronos/static/js/amcharts/plugins/responsive/examples/serial3.html delete mode 100644 chronos/static/js/amcharts/plugins/responsive/examples/stock.html delete mode 100644 chronos/static/js/amcharts/plugins/responsive/examples/xy.html delete mode 100644 chronos/static/js/amcharts/plugins/responsive/license.txt delete mode 100644 chronos/static/js/amcharts/plugins/responsive/readme.md delete mode 100644 chronos/static/js/amcharts/plugins/responsive/responsive.js delete mode 100644 chronos/static/js/amcharts/plugins/responsive/responsive.min.js delete mode 100644 chronos/static/js/amcharts/plugins/responsive/responsive.min.js.map delete mode 100644 chronos/static/js/amcharts/radar.js delete mode 100644 chronos/static/js/amcharts/serial.js delete mode 100644 chronos/static/js/amcharts/themes/black.js delete mode 100644 chronos/static/js/amcharts/themes/chalk.js delete mode 100644 chronos/static/js/amcharts/themes/dark.js delete mode 100644 chronos/static/js/amcharts/themes/light.js delete mode 100644 chronos/static/js/amcharts/themes/patterns.js delete mode 100644 chronos/static/js/amcharts/xy.js delete mode 100644 chronos/static/js/main.js delete mode 100644 chronos/static/js/reconnecting-websocket.min.js delete mode 100644 chronos/static/js/tempchart.js delete mode 100644 chronos/templates/base.html delete mode 100644 chronos/templates/form.html delete mode 100644 chronos/templates/stats.html delete mode 100644 chronos/templates/summer.html delete mode 100644 chronos/templates/system_map.html delete mode 100644 chronos/templates/to_summer.html delete mode 100644 chronos/templates/to_winter.html delete mode 100644 chronos/templates/winter.html diff --git a/.gitIgnore b/.gitIgnore new file mode 100644 index 0000000..c795b05 --- /dev/null +++ b/.gitIgnore @@ -0,0 +1 @@ +build \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 6735f41..4d77662 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,11 +1,12 @@ -from raspbian/systemd:latest - +FROM --platform=linux/arm raspbian/systemd:latest workdir /home/chronos + +RUN echo "deb http://legacy.raspbian.org/raspbian stretch main contrib non-free rpi" > /etc/apt/sources.list run apt-get update -y && apt-get install python2.7 python-pip cron sqlite3 nginx libssl-dev vim -y run useradd pi run mkdir -p /home/pi/chronos_db -run CFLAGS="-I/usr/include/openssl" && LDFLAGS="-L/usr/lib/arm-linux-gnueabihf" && UWSGI_PROFILE_OVERRIDE=ssl=true && pip install -I --no-binary=:all: --no-cache-dir uwsgi==2.0.20 -run pip install flask pyserial pymodbus APScheduler==3.6.3 +run CFLAGS="-I/usr/include/openssl" && LDFLAGS="-L/usr/lib/arm-linux-gnueabihf" && UWSGI_PROFILE_OVERRIDE=ssl=true && pip install -trusted-host pypi.org --trusted-host files.pythonhosted.or -I --no-binary=:all: --no-cache-dir uwsgi==2.0.20 +RUN pip install flask==1.1.4 flask-cors==3.0.10 pyserial pymodbus APScheduler==3.6.3 run pip install --upgrade setuptools run pip install sqlalchemy python-socketio==0.4.1 socketIO_client six==1.15.0 run pip install gevent @@ -13,16 +14,18 @@ run pip install python-engineio==3.11.2 python-socketio==4.4.0 run pip install gevent-websocket -# Try not to touch the above since installing gvenet takes too long -# Install python3 and run the virtual serial emulators run apt-get install python3 python3-pip socat -y + + copy . . copy chronos.sql /home/pi/chronos_db/ run python setup.py install run rm /etc/nginx/sites-enabled/default run ln -s /etc/nginx/sites-enabled/chronos_conf /etc/nginx/sites-enabled/default -#run /usr/local/bin/uwsgi --ini /etc/uwsgi/apps-enabled/socketio_server.ini --pidfile /var/run/uwsgi/uwsgi-socketio.pid --daemonize /var/log/uwsgi/uwsgi-socketio.log +RUN pip install uwsgi +run /usr/local/bin/uwsgi --ini /etc/uwsgi/apps-enabled/socketio_server.ini --pidfile /var/run/uwsgi/uwsgi-socketio.pid --daemonize /var/log/uwsgi/uwsgi-socketio.log run chmod +x entrypoint.sh entrypoint [ "./entrypoint.sh" ] + diff --git a/README.md b/README.md index 69a172e..61a0185 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,83 @@ Chronos is a boiling/cooling water system working on Raspberry Pi. Chronos has a web interface to control the system and tracking for the state. +![Alt text](http://i.imgur.com/8II1ydG.png "A screenshot of the Chronos web interface") +## Frontend and Backend Separation + +### Overview + +The Chronos project has been refactored to separate the frontend and backend components. The backend operates as a standalone service providing APIs, while the frontend is handled separately. + +### A screenshot of API response of Chronos +![Alt text](https://miro.medium.com/v2/resize:fit:720/format:webp/1*p5MTHzrfaLYycSmZFSdmoA.png "A screenshot of API response of Chronos") + +### API Endpoints + +The backend provides the following API endpoints: + +#### Base URL +- **Base URL**: `http://:90` + +#### Endpoints + +- **Get System Data**: + - **URL**: `/` + - **Method**: `GET` + - **Description**: Retrieves the current system data, including temperature settings and mode status. + - **Response**: JSON object containing system data. + +- **Get Rendered Season Templates**: + - **URL**: `/season_templates` + - **Method**: `GET` + - **Description**: Retrieves data for rendering season templates. + - **Response**: JSON object with system results, activity stream, and efficiency details. + +- **Download Log**: + - **URL**: `/download_log` + - **Method**: `GET` + - **Description**: Downloads the system log as a CSV file. + - **Response**: CSV file download. + +- **Update Settings**: + - **URL**: `/update_settings` + - **Method**: `POST` + - **Description**: Updates system settings based on provided form data. + - **Request Body**: Form data with settings to update. + - **Response**: JSON object with the updated form data. + +- **Switch Mode**: + - **URL**: `/switch_mode` + - **Method**: `POST` + - **Description**: Switches the system mode between winter and summer. + - **Request Body**: Form data with the new mode (`TO_WINTER` or `TO_SUMMER`). + - **Response**: JSON object with error status and mode switch lockout time. + +- **Update Device State**: + - **URL**: `/update_state` + - **Method**: `POST` + - **Description**: Updates the state of a specific device based on provided form data. + - **Request Body**: Form data with device number and manual override value. + - **Response**: Empty response. + +- **Winter Mode Data**: + - **URL**: `/winter` + - **Method**: `GET` + - **Description**: Retrieves data specific to the winter mode. + - **Response**: JSON object with system data. + +- **Summer Mode Data**: + - **URL**: `/summer` + - **Method**: `GET` + - **Description**: Retrieves data specific to the summer mode. + - **Response**: JSON object with system data. + +- **Chart Data**: + - **URL**: `/chart_data` + - **Method**: `GET` + - **Description**: Retrieves data for charts. + - **Response**: JSON object containing chart data. + + ![Alt text](http://i.imgur.com/8II1ydG.png "A screenshot of the Chronos web interface") ### Summary of set up ### diff --git a/chronos/chronos.py b/chronos/chronos.py index b636c94..2b30e41 100644 --- a/chronos/chronos.py +++ b/chronos/chronos.py @@ -60,14 +60,6 @@ def get_chronos_status(): @app.route("/season_templates") def get_rendered_season_templates(): data = get_data() - form = render_template("form.html", data=data) - stats = render_template("stats.html", data=data) - system_map = render_template("system_map.html", data=data) - data = { - "form": form, - "stats": stats, - "system_map": system_map - } return jsonify(data) @@ -104,16 +96,7 @@ def switch_mode(): @app.route("/") def index(): data = get_data() - mode = int(data["results"]["mode"]) - if mode == WINTER: - resp = render_template("winter.html", data=data) - elif mode == SUMMER: - resp = render_template("summer.html", data=data) - elif mode == TO_WINTER: - resp = render_template("to_winter.html", data=data) - elif mode == TO_SUMMER: - resp = render_template("to_summer.html", data=data) - return resp + return jsonify(data) @app.route("/update_state", methods=["POST"]) @@ -127,14 +110,14 @@ def update_state(): @app.route("/winter") def winter(): - data = get_data() - return render_template("winter.html", data=data) + data = get_data() + return jsonify(data) @app.route("/summer") def summer(): - data = get_data() - return render_template("summer.html", data=data) + data = get_data() # Get data from the get_data function + return jsonify(data) # Use jsonify to return JSON response @app.route("/chart_data") @@ -149,4 +132,4 @@ def chart_data(): if __name__ == "__main__": - app.run(host='0.0.0.0', port=5000, debug=True) + app.run(host='0.0.0.0', port=5000, debug=True) \ No newline at end of file diff --git a/chronos/static/css/main.css b/chronos/static/css/main.css deleted file mode 100644 index 298177f..0000000 --- a/chronos/static/css/main.css +++ /dev/null @@ -1,33 +0,0 @@ -.no-gutter > [class*="col-"] { - padding-right: 0; - padding-left: 0; - margin-right: 0; - margin-left: 0; -} -.form-horizontal .form-group-no-gutter { - margin: 0; -} -.dl-horizontal-text-left dt, -.form-horizontal-text-left .control-label { - text-align: left; -} -.boiler-caption { - position: absolute; - right: 20px; -} -.boiler-thumbnail { - position: relative; - box-shadow: none; - padding: 0; - border: none; -} -.row-margin { - margin-bottom: 50px; -} -.block-margin-top { - margin-top: 25px; -} - -body{ - background-color: #daba7f; -} diff --git a/chronos/static/images/Boiler-Cold.png b/chronos/static/images/Boiler-Cold.png deleted file mode 100644 index fb3a16e68965618604f906d71851715eade27baf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52000 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

NJ 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 RX`KK7002ovPDHLkV1gkUF**PM diff --git a/chronos/static/images/Icons/Boiler/Chiller-OFF.png b/chronos/static/images/Icons/Boiler/Chiller-OFF.png deleted file mode 100644 index d521b8136c640081907a60ec6eba0cb3e97c5248..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10955 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 diff --git a/chronos/static/images/Icons/Boiler/Chiller-ON.png b/chronos/static/images/Icons/Boiler/Chiller-ON.png deleted file mode 100644 index 2e20ff68198bbcf64c004c8be709ff9bfd225456..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12063 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 JPDHLkV1i)7vi<-7 diff --git a/chronos/static/images/Icons/Boiler/arrow1.png b/chronos/static/images/Icons/Boiler/arrow1.png deleted file mode 100644 index 3e326f7cabd7c9e9a804c90452f2a52aa6475d23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4412 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 diff --git a/chronos/static/images/Icons/Boiler/arrow3.png b/chronos/static/images/Icons/Boiler/arrow3.png deleted file mode 100644 index 0c702e0415e8f8110746c659a870d6a0bb3be26e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3353 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 M07*qoM6N<$f=Q-7TL1t6 diff --git a/chronos/static/images/Icons/DBWEB/DFDBF.png b/chronos/static/images/Icons/DBWEB/DFDBF.png deleted file mode 100644 index 1ca70e4335599c45dd664d9dcb52d36fc19c57b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 75985 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 diff --git a/chronos/static/images/Icons/DBWEB/DFDBO.png b/chronos/static/images/Icons/DBWEB/DFDBO.png deleted file mode 100644 index 5ba9c1564c0dadf5aca98e1362a0c34c068d2673..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 74528 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

9cH0q0ojfj9a09b?qCfx{zFLX{$0xk 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

Rf813P9`CKl#@ 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 diff --git a/chronos/static/images/Icons/DBWEB/DODBO.png b/chronos/static/images/Icons/DBWEB/DODBO.png deleted file mode 100644 index b8d42e9a9859cd122dbdc7f5d09bd12946532184..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 74444 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ⅅ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 diff --git a/chronos/static/images/Icons/GPIO/GPIOF.png b/chronos/static/images/Icons/GPIO/GPIOF.png deleted file mode 100644 index 8601c0868a5c3a5f97ae24c6d81a946327f2d917..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68578 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 diff --git a/chronos/static/images/Icons/GPIO/GPIOO.png b/chronos/static/images/Icons/GPIO/GPIOO.png deleted file mode 100644 index e664157af562901bae7efa9e30484ebd0f555352..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69338 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 diff --git a/chronos/static/images/Icons/Logo.png b/chronos/static/images/Icons/Logo.png deleted file mode 100644 index adbe4ce9992584af15b366fd4c4a7cf3b46fc3c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59428 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

gFfqkc~GJv48cT;6i(@w zRE8zM6(EiEN1ENJVUUO*f;a&7STFsxXV^+Ks=Qe7BnfEorGfb{h~6urJ^W=~sOqfTGzoAp>~ zINKpP==)IYBwVi=ShSokKBF~doP!t{^~lUFcnpdHkosASWLy&IrDh;$V0vO4!Alef z`{}c!>K3ET87fUpe(@~9&>lXZDiN;N^ zr2^03TZo;|p|3^|5D*Njm~03yCHWjOguUGrvaixED0Ne2x}|45>DDzKRWm9Ul=7#NLZWH(7# zw2--~IX)Z}{HS_=g=3vtT3Tv4RjgF*sQE#k##fmoo>PByjgn1~BtFwEql!BHHKk2C znE9{EV@a5vR#sM=>P@`LNb%5hpq#Euq61@>fKf(una#YsJXxo)dyvu_cioJUBrHPm z%n<|K{!VX8CcM@k)@YwzE1{4qQtpxnx(jhREVqeM^r`|UboSYmr!)g_B_$=ZdEcVr vOQ9S&@#4~NVFZ4w1Bni9IVU*SBkNna2Mb@aCQLd#MTuqoDr-LIWQ? diff --git a/chronos/static/images/Icons/MainImage/INlet/InletCold.png b/chronos/static/images/Icons/MainImage/INlet/InletCold.png deleted file mode 100644 index 93c64db687d11633a899dc1957d56410bb6a1588..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50899 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 diff --git a/chronos/static/images/Icons/MainImage/OCIC.png b/chronos/static/images/Icons/MainImage/OCIC.png deleted file mode 100644 index 40e7207c676819ed73f217158fdde42e08130c1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65793 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 E0EI53?f?J) diff --git a/chronos/static/images/Icons/MainImage/OCIH.png b/chronos/static/images/Icons/MainImage/OCIH.png deleted file mode 100644 index 9cc6b4b8162822dd89f069c5bef2b207e97c5851..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66880 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�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≻L72-#PO}RipG{(#&5AFrQe;2dRMr8Z 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 q$l%Zf;UZ zrJ@?O=2f>eEsaVwrKjHslampH`+@ZX2nYyHLR?tkd-?l&CW3QEhkt+oY0~PcF!SkbP&T<#sjdmCH*hX>% zbp_E%e{jFp-r!`$6PsWg9hl_%GCoY#wz2=ReoTctEhpFNFX1l|5gu^Yd zR1ds`Es>Mb#s)Y4PZYjBBa1JWk2Cx}OJ$73tuM(#O4$7?Ymxga!V7o|`d5^eO(C_LlP@`Bs=(47Qy_S{#rHc?9P2-fn!N z8T78wsB-#V?U1yZ{R?h+hvqARP4@VUTczf6c-02khCI(Chl^2J>Yi5QhMRK;ioW zeHT>F96z@PO4*SVEXAs1lE7X}K#9@!5!~N+K}b~be|=w^;#L-dqOY5OKfm9Deb4`o zCW->4Tp%D`I4cV!#qSGQTis<%G-;?{k3Ig$P-d#X<2WOgjbl50lFB!Mj|CE)0*U zkdM2dL#L1namM$zo0q-}8S_gmD_4`wN6%b$Iu19x`BXYAmaA)1W?hUVwsjYLWo4V= zj4UDVGoZ4RIX;`|Gi@3T(B}o~XkOYsfW)v}%Id@~Ngk)eMgYfR}SX~Rm&icYx$7~H*vm+3n!vU_4uy(}Atwr5C^gZP#P zk4%>QEH4`Bxy#9$t?-kx=6xks!F~!ICuqykg9gzgj@<=O2w?W;m7T*}pDLzSxonAJ zriLRE1-JYp1LKe5P9A*NWSC!AGHAM()G}-$!e6o$R%PSAj@p3@bN~Wf51byODy^z~ zp4D~gO1{;!W7D;TY{X2K2eL4EB)B%c$V-^WG~X$3{2BkPY@kXuka7UH3PG^?@$Yt` z>v`#+kXzMVgLDSZc?{lQJTcQYW566HK_(I-CP4xcBag{-c;PAgb#G=*5Q;b4Fh?$o z2z>_`J&vFA2g>~g%6|1MlTb2+25YQ_5PzxcI*42wtB}M}Geptm2;`vY-C{v)M31qI`>>sVs6aY`)B8YqMRg`8HHF3IP47qS| zyn+Cdk4}%KB{@?{rbMmhXt-je#vB~uz4y!>fL7l=dMh~yT@)tO z2DHLa-}7Xkk$(`C00;G64jJWWoaVT{9m zne>CAA^w|tH`umJAWj?s-Z?dmA-0Hi<9)(EkzV^JBW*MlKkX&$^Nfxe8_XkBqGrnM zREP)Titl3nn8$9}M^2 z#Xw;n^Z+Azjs-ilCXMdSB~0A}pAjMDgdDA0oy_63Fn!7zqqfSNk}-wkPUJOgz$o19 znp-Lv_ZEF-U?0yo>j`wIWCnZe7hvpOKoR@5SfKst+>5po@iJ)`$V$PYMyCH1^BL3J zf68K0qA03(?W$C(eI7|7BB@13^aCpz$=_l-mda5#&#W@_5XpN(f6=SMCJfR?VHPp; zGbgQnYCE!-wHXC!5y=<9(04!n>3U{Xq`ghi7m-X5NUSBbg?cMwRWL0T zU6@3a;io#H!RvYGhh#CDo3{l(H`>?}8vSQ$;bN1+RfS>TP zqPd);I8(Snff=Hhuf$A9#k1Sa2HbXMLCOzW(U+9r&l|GFk3qCm*Cfy_?#GzK-;wO~ zgj<{q3beTEY3i_A0Cp?90dXjPFBZjj>KKBE1B{pFW}SE+2RKE-1~vfMA`}$+ghZtG zFU*fuTT-_^WbX_T91iil2wL_ZEQb7_ul}?$?Kc&qrR?qc1%W^qe-eaa^!&kP(Zq|B1|ZX2?YUR z&{3W<=>u(@J=K%wJ-rk|{;L?v+=h&mEHo4%j44bAWUJ&VJ3bg$!ogOFVhMrqhr{e! z1##A6_kTe7v4xkjnHb;QbgB4y?6YTMCotuwWX|3Oe^c-NnF@MfkI{^|vx7&xYe_$Y z@ZF~@8$&d#<~{`nPp}$Ajpx;c4+{Daa7*5n!tvjva?tt{)ZYjzG{K13uYuEV2MlGQ z!1D)-h5JEssO+YZUM8hYPDm0?vh`_E_-O(mt=g7bBL1QZqfRDWjg$hQJ^#MQa&y6` zg5vN{;I>^(Oga(w8=CI(_cdfw^+jq;^-X`z@bry#ckWai&izP8X*X?61Z^bjOc|cfvpEh0Ve>#Xkxh_wIG;&YXmoJ^ zhWp$X5XP{foN;-v^5P=}eO}EJdRQl_S`heWt`g6UyQCan6iz@%G?L;yys#>v)MVA1r^5xI7ikxNLlacm9ZD7}!C+1WQ@%f>nfc#Ti> zo*q>O^Feg**Whi+>Z@tCOoZfLN6OPY&_nCZ4QKhs%mJRkwq6VQ5BqU$!L{>gkBM}$ z#H<|1Qi)T|rop|2y>-9|&7j#m4^lr|D_6bS!r(0r5PC@IEi3St-w#Tm9o&UBmX-vx z(tTuV`zp`2XC)f8EY7HRO3 zECw4M1hzSR@Kq1tfasdU4bRRG(FTm7=9(NMaE1g3L(fEvf6q1~U0|E6Kx+kU_e1%A z72r?eiBSG95clf^N!JF&nOLZDJb3}WPjrA4{26F_77u>XFcL!h40u0D_M<1gL3I;k z)z>C9fmfB-sTTY(Wi~WcxKIr+y9LI?Fc|P4=>1uYvMHIUT3cv|ta={EB9hx=L`z}l zhearA7&^^aFhC;6J#%A)ABX~D9N$2wXyoi!1bg9Cy>_NW(>9X;aY&370%Cs@CsN>m zJj^g*)mZbDcYK+E<`RP2X2ibVAtW9rp-xJAHjHB`LqI-{ulH8WeVs4XyfB4BayAwd5O_un<9PG}mP$g5a_ zXUOz(Kxn$`I}dYz&JF^N>!;5pO-TYD`Jt?IGeqtn<8 z#w8)1XcNq$O$>U&8k-*V`XQnV0Hk$j$Y_%X4^(z3392%CCZ9Gcc)fnL(z5q>7pqU+G@pjN4j3|Gq_+f{5N`{BM<*M;_VD@_869P z@0?#uMtP3ngf^z;Q`!Abjby1lZG_!gL@Y==Lk;;Nz8B8-%WOoC6OmrnwLtLXDA;A3GkX|d zh_*~~;*ylTRy_N`cHZ$l9R4*vG;k-ydYYtVym-aE^qE4=-1TwPsbP=70LT7Np8x|# ziVVCT8T2NC2K^)#r_!ede>9XAYHnEe=gZ364YXwQRgPyH4OcW&X52;PX;$*Ii25t7 zKjF>>d2-QP#KVt9u9qKN%9-_3qkv~kjggs{{8!jP<=*+S%sk>I|Ex}d(5sa9Us%1t zo%PA&z_=Pdp{fs1-RI~r|DKmQ(sw}YSWUjaU)RG9I}-~ zHQUTy-1zQfAd^<=-Z;&+U%`#Iz`vY>Z`wLq>OeRH{%*}&bPoG;*}T9kYra)GKTFde z)xjH)L*t;msNQ)XSF0&TzcN|Hxd;R zU48Z%#bncFxj|-y@P3GyI&?_;Qkr60kAnOZNxiDEf(GkrPk<^3bMGg@Panv)3Gny= zdB6%!1<-QKU(ZU2o;-_w-Ezb$bs^Zr=Ujcb>;n3A+xkb8qK%>HcPv24H# zlKo5)S?IFYeGL9YuC1SR&{cyXW&)iHiG(?(`HDV!X;|tNJ7hB-vUweCH@n(At$J|v z6bsM$tQg6-d{j)eW={NinJ>O|G55MDWrzI4p|1Ct(5P1W=IDANcJQR6m2l-O-Vwhs z3DqsWI?DB;?@6|>M)4;};=o6st~8sPPl??7p&ZR_U zb3<@)k#e$%y?yt*I;pB#q9)+VR_Rr_Dz&_7{5 zRdf}5+wSq&*vx-hn{IRrzaFF}_Nt?wCAUqXcceVd5u7zAC;gn-r@4x)H))w9eyT## z`*=n_*uR``&$E)S+H6G2n&V8B|9H-^WM!6KE#Sd`OIc{M2I*auoZwjcQf@m+-K&=g?Nz)?B zGz!BC)1Z>Nx2P9xENrfzmgl*#)-5M-=i68OeH{8&(K{{V+Q)GtKRCVAJ1t?+q<>r; zm0PaX+dMXnAjqp+l#25~zPR@&PV`LY-WBC)_hiuixp=ol-5cYeFSwcf-9k=`;no&mloy*l;Ym<+1E`y=`Lfj+KbN6bm>bKhNFtSD+ z_8bRab&K`!05|Ih#xxPBU}`?vACqG0x8V*Is-h+aD&q&WbkF(@BBQjAI^2uIvtL@E zSD;riy}Vz-E$1Q{6KzjIj$7`~nd$!C>N#8`c5t^uwuTx04e?z;xHU-88SKU~J3bBB zSWA6kYjFZN-TKR4sGGNhH5Nhels;0AzOx2Fz~n@2D5nRO`OH8bG((Und_fvYSh7k4 zVt;Z)7~A1jxcykEiEh$jKY^Y*5nS?Uys&_*Q3VGz8ucB@0 zR4h+y*AlnK3u79wwR(_8O<9!zbLiv zg#Yf_tn~k+Fl?lS36Wznl$EkDa4r>_Rd6fFv@HE{mY9$hW7G``nMJEwEOETg_o6sW1 zqui%f%osZ?*T`3zdyFlpE$hawuN3{R!F;%p#IfZ=3O7L3LsAy9a2$#aNjB3~bko61 zqW)?#wvL~c^~IXPV(*{bFaw6gJ*{Awa?(8p%lTeA%Sw<5+u63iD+;h&86+YczZBg} zGBF;tV}}9E-BGhII5qRP9ru~@iTF#HTuGx;w0B%`d|6hU5#p^djyqBYxK@LN|?NBhws&)mQe`dSrDI zTpvB$`X&?kM3AYPezjIi+=0|b~SOlaL+;J|%aN5kihl=dM=S9rc;#UhKAxi4Y zjI=NLzfA=ed>wXyN3wi@&eqTCQJFRsZCEIop76*A+VV?&a9k*ycG7W`Rh2x1*xyaA8_?aBG?72!KFu*G z?Utz$AiDFaz<0d_;jR5#Y>+C39FsHj)ZpRk@aT^kXn*)d6?L=oQEdisM0A1QHQtJz zTY_t`sn7Lz1k26J0B^WJSKnG;foY{`_KR`TLHf*-9_0M#i&VYSLr=!6+(T4B)hzQW zaMzOdBtSqVfl5^P-D)O_!smc~b(N`Zc?P`;PaAVivm4_4z1jO0(K0m_k1i6M4|V0i zp(BBIlEmkZSI7>nc2~d2nFt4ZoX*_7iyZF{$E_VtcpRNziM1l@=!c@!!t^+q& z4aMZ6uaS)PMI1xcntZ0S@%by`vNLPswn+uNQj}%V+d8)XJT({MWwR}g9aTTX@zX(+ z!VwgK<3ewuTW<^z*A z9mGYevkNe=zw3ZWI>9JnFwdd^V=yg^{CRkla{ITDP8CIk zKto4GJ_7s*uuR)R!NJmHn>8s|-x29Ng4X)`?GEA%QRmIxh)9TmHX+;0YNfTW9udA_ zN6S;t0_h{ZM9CX=3DR1f)G1atQ$={e%;@K5RUD1sOz88$Uqj6P7U4^zM<$Kd2%U;< zti`QDKK!qp_}3Neps7dUsr~R*<@*(*bA*iQ)HnnVvTAITLt~}Bhz+j+W>lsvYejw~MU=++)#>(SqWx%8xsd*dZS;$iU;yysd!4WAhpFr%7~&o2j!~ zHpNVgXDdYUcd;}U58SLzLPIYy`vb?5zcmhw>LofZ^PIzm-BMw5e7eWiR*qfM9hWsi z&9EUEE+eCuq?^YTPL0<9M|_B-r)%V?Dl|F>+n7rC5JFsz>KtBFUL1jPF|o`$5ieer zBgek+*JZjY%(GKhiQAuXjv01&6zBr&4#52I zEjchUx3f~!*o<&l#C(q9S4-4WR2q-@c_yjX*?l!y z=cQ?vT(-vMv0)D&SZr7FOxW{!)dZ||i7)u@A%;t-*kzt<2R7P0WBcHX6x3Vto|z0C zDg+@tI91p5riC`iVSHdQij(HHJS+;E6cJZOFi$wgX;VH1`~|sS)uJoV`u!Y;E(2bo z+r5w14S3;KDAJJOoR(`RUhj;{ahG>`*$GZu%^J`7<(rz(8>Y_I)lNP4)eBO`mP6O* zT~bzY_|XPjHt5v6{*=Oty2fKYM1KFa;Ghi2aw!WAB2iS!0~wL!$2EpEqoa!k+gZ+( z$=x7b8!&1{N1&|J7K|N2!)-RJ^WU6Px$h?cnH#G~mn@CS87P&FY+_MXJ-$%0sHzp_-CLEv2J8 z_szUCw4V$1yvn+?WyZXyKbnzX=T(6ra)I#Sh{<7t;gv3Vw!}KJ%wy*`NFHEzI5>(l z2oEYj4jv+JuNA1qEaGq7{cg=gU-YjKSYTs-R;-I5iqnjijVI2^vC3?9 z7bs?wWSA|jb@w9Luu7{JePPl{WS4GuZI**w@SJfv(nT@39fL(vHKHIfHx^xEYb|U& zie(L?P3FOjR{3(-tnltJyTj?4hm-4TzO#)4C~dB#@?7mZ!`W`naVyKvt2da%L1AdKyTZ zuN|)6rq0)aCzxyWb7A7expWkDWjT%V;j*M>m>$8PE8;%?R0hUTT(gLNlt>pPzP}u0 zc&Xz#Knbd)H*FA0f7_x0bULF4bz+Y_+(8h9oM$XTzp#iANy@}X=!C#y32fHyFw|Z# zNow#cetp1Wp|mZX$vOBqv0K{;v%zJckqOFYmV-CfdQ#c*@K&AP4#CEloqmARfe<`J z7Y{J}aXN8X%KsGj9hH&k7}m>9z&m&9kKh!eG*(t?-YXSrzG63FkBu@`o%%W0DR=dI zxm5!vN2YWWnDQra37;t3Y;wkJIdF_#_9Hx}?}08Af+%$=`NU5=)(p(-m!cjOjwS5+tlqQ|2pJfclE>pIO#;+e7jcL=y2F4zh zlSr$mmEM3osY>2X$+4B}h!bQ~j|O@M#{4GoNi2i)Ul{S47`4#} zF2=-0mhgOD#<5oOCnjcJ^DD!mo3uZmXVeva;xSNXaeMRX;?%E0 zYq9Sv*=C@$$$|BIfCyzgzZCZk|ET<5(0BUb_A@tSgWAn}+>{?K9wkY2@p~+E5ve=P zvz(imuHrAZW@VxI8763I4cc|_H%gcY(~eXv5^T@L%9<5 z{z9Gj^IHKGw481sz60nha{i)0AhU!(>j`jSN`rl4Cncqbg*K5uj9%!KpLT?Ws~~b? zZK#g(b-0e=if79LTP9_g>|xjo^%L-AYcur#Fj2aZ_V`>y*%GzBZ?n^XPiu$40C~)JU`EefS zq^m#I{2N$IvF!6d#q4|52yIKX2#Al2qvISdV=_!-_rVyqS%HaHh|`CWb{sq{z(%7c zkiS3)$DG5y^wcnR+wG3>pgNe1D;&whGhz0)P?Dh0M12{iyVZR|e9L*$8H`5-h_LG! zA?h-II#JE>J3s7tanr}pWab*c-su%j*ee?3xV~~jY{&p@fYWq5BjR++jsJgZ-k~xj z&WT$Q_q$pesZ;JrV-02;BIuewNOV#H%MHKUb2e8S5|zB9Q79^Uj58qdC_+IxCrA zK}axap-Ch3>M;IA-Nq?H3Txd`T=leOkhr!{!l|@9@2eGLn3U;JK3Nvx2$6;cF65J-P+#ss$p35Wc6AhN%Olydsj3jupXW?$ z5(IP#)0Q<3R1MPLEEq$(@4`j<## zDC8w79%%_}zd4N7w{bUOs;L5SR3(=P`z_^n$KwdZ-@f`LNcf0?c3_74>B?H_`rNdvRQU`?bgH4qsFd=(Id_ z*TfB0oqBj=xcedgJ>4P&Ik)qLy;hXJ$4o~5-s11^QV7#1O49Wn_0EU@mab#3dI2Sgg?MHU`QT*=ReqsKUdY3LRHhxu!^GZ)IBjXo= zQ1GYYq{r&>R|NaExv!Ox6Ar~|0?~cwpF!7_9;KI;p7pj3j-RWxrjNwo z-S_+Fb9QB7XEOg((U6)e#SoFv>Bk`ZUz>0!l6_=8@sNs;bEkZ?bqp-xn zzg^;JL^C&icPf=EZ|?*@c$4`{o00R1RgtH%u1VGpDafl!{JgSFhSnYoO%ny>CRGzj0v16?>h=}EQK_;@<(dj@k8eHvJ5EL^i z!(A%+Aj6%uYpkyl6RunE_H7)UsLi-o$ zD+%i7*x_SB_KRS4Kfp1-FC#3)(RZ}@VI)Lav(ll;(Rap}k#W8XweHOi{4RJZCO@iu zwD3t{+1%&|r{TTc*RNWCKAi5yJzTG{&Q`7sCxAA6vOLEFIkMHpY)Nd!4B`cL=e11i zY?SB@)}WN-f=V|_+|r&ni89+}1~y>S-w2e{2J*2vwtDk_=Gwi$fGK{aD$T{-!o)wp zO3>KOo^=+qxGej3Az|QMRT&^gkG~lsQDhvTsYtPgjh%wfD>S*Om%`1?0(u-i`K!jU zfpje6Miy5lXhO%Zimgu2I3fdt5tkyydkV~G*4QTNP+ETUh9H4`NeE={ge(0ViUkP( zXKjaIPb=3xnY{x&raHn1B!}8rB!QVVi$l=9=6jx_1J#q>rMeBY9B7lC#Hot!(+&Fh ztfiT(((PR^8ggxU;QKp#4%(*hZ~3wUYZ#StUs|5r8e{U$I(|4LB1U0TT!md^f~@0b zR>ZzAa3%?jxKc(gUd7h&_lf1HiO_6f;GdLt2_*l>{dnbbLUL zh-?mzH9ddvs82|d$z!VH}JX*yZ=91QY}|KW#!P_lb> znJ8}(5x0a0x^mg$(!Yw_v_cU;=`dy_+)u0eYXZ(}QN2W6Tp_2yZs#dsP?=R~^dm-Mq-ixbg^ zB;#>%JWgeu*;6!~pFdB739R&ml*!z20)RlQjj<#oNLngG*6Al@k=ex%AFB%qKA0`X zgcpYQm@$eRMxsqv<4KriHm?J$F>Y*ZBWZ)?g#1trrA;kc3bZpNGXE%)mtnDX1!rh{ zkIIcaGn@aR-IheHIYy~5MP5dt`NzVrWnrRQud{{hzVC}_Fxm0^wOtvjc6he1DO01FxAj0ZX$VM0*q0P&)(LOXObvN>#xSm`JViT(Z$ZfSpS0u-T2;J*$?r!?2!HT$xyUe9iQ zh@by&67_Yqo}$da34M2^F>_~bbfsw8p+x2y%V{f#8p9D}T)uLb1*e4=&R?T9@f7@frWEkWV-KvCesZ0DAx=BCDWU4|CVXMF{*V}o6=?|R#+Ob?DXw86>7vyDqH&$QxDfro^n^X@Smn@Va?$CeQ1?zSvL*6*vVD$DY?lbXL^1m?q-#w`8Na_@7yuB1% zQ7`{y@^2LH)^LVjYlP=grMja0#_)e6+lET$U*W&eIXvHnPV8Ude=@oa(f?87e~Wi` zeK*czmCELSedHFkkjpmh0O#zJ{~da2ZvWi5?(n6C@tLwTXK>d1zo~i+TW{8KQT%k3 zT`#-39|yreR_5%>3Hs{I=$Uv-E7}$i z+QHt4x222|`^RFnc+Fy1y*@K{Rs%L`Q5Uawci|p3oFCfk*zPFL%)X?IMeuy)J$bHh zSG{O2t9mF`lcPsMv=8?65pI<@@@p7k6^r}(=?4q_%+AZvcz+*?A|Wnngx+a zv&6?iUu+Sx1N#N}!THD2Fv~UHjs#7Qxr{g?dI!WfZ7726`a4ROE(CkN^9L3GIXsUW zg3qvdXMQ9K@)vv-PV!UCUuKhibFNt(lI-WV7OEjv{h^ekb;!zWf3MH5O*^{T_K$9x z72?MaAh%9mFTSK{7(+Ca+oOF6(*bF$Z6jJY%%pO+`j6~pkiReG??3SdH^2Jgh$Y=wFi?)IR+5TdySB3R z`RmZWpvU?r9;1&I2N&*DCMJ6Q(O?bFs@V6M4#YGwf6lTSNO*j`{V2C}L!?OPHbPJ= zh+Sx-#u40z<)NvJS}DYnkUEHSt}FapBVl2}9rYx^lhka{$e*2wd8{qKrJO6ge`{s| z;2$mNQ-7%b?v3aHMSEV&cIPqGa5T8gxr+hOB z@+Pq~Z21>+{A&-IB^NeSu*96O#8`5E)9anR-A z(n@h*l#KEsq+O#UfsvYf=bn(}!(I{fzA*q8goUmC7BWKYUnP48k=n^=s#ZYVr-t%T zVVT*_@u)LvAIJtg+`%%xQ&jFL6(b;gtK!b2F5-Z?6P6eRE*1ifVLSa;U* zB;)zJKaGb+t=x7QarTaV0ORb8k2_C{t`^@+eMldGiL!Oq^~-tG`5L}*m{;(Q=z6yk2MI&0$qa)tGvLRJn+(%@%PDNirgLR<49GGbgDMGFJ`$9ZNc-{Dl#Y z7jcuWoEBSbLI{f8a2kxMR{UxePc+G@PAqor;}F09#}X;w^)%zP$b-iIonxEQ^R5Kv z3;0CM4Le=^8QzUp<+FJHcI>9%Y8$Rv45hB%8_=H;RexND`ZNR6n1+7XEc;jpL@F2C zVLT1}Dq%D5sh&BX3v|EDILvnp|C@KdlMA?z4FHp4}Guk z%KO#WA8psN!;CS+cmh#ZW=}vz=in9@2h`81r+eR4O_B8)_gJobxE>)lpU+@ZD|Y7q zftP;$qwX}>uF8ofqg~P>-Y(N1ZFJC$vHOe7Y<>;KK{BR|DW0z0BNBR@%wi;JH61G*{*-Ros=YvJhq|e#X{?zX@E#P$4_GdMXv56DGHtIc% z>wwv!r#G;t?~$(f`AdI=c@Os?8LHd+Ce4La4sXM)Pz}B6shXNuKrsjDCTqWyxI(i9 zZR7}>sJ7ZFZNs)3pOKsF zdXed9q&vIj9;=9I-lA*Np%!d-&bG~`bv&=vN?Tlzu^Z;a^s{#_)lVB~R>ii*gTJD| z`fjP*k^|kM^FJ)FCPs%}^Tg(qLx+qWm?jLeV6w;j9y20jTZr7H?=o{6ykUpD%(THu?YLHvTt*%|*X6AA`PfKzAs+pI#^H z%LgNX*A2=ybH&9bsY+yn5X7cWXXKAO<+EicI5JNdIM1w$2yMPBZ5xjt#h!m$Y$7HI z#B3T)2d?dmF|d01s;iCuChh`7PFupcXScg9OrK!&vT!E1%SpprU+D#bR4YCG;Cz02 z>Fb-{sV2*St$7!Cf=bZE?J$8o;q}4QbL!@#0cm2x7mlg5gOow2e#lUi=FGUqiRWKC zF{u4$3ZQd%pY65b3F*R(epMUY3Dw?)cXCy#;G-xUT-sDmzT`Pmd=nEYgO}8|Uo=xV z*kCH*zlnZ3TmbRTq%+4Oagbq_nHL5zL%)K2sO6T-2>@_WE*+Q>E{K@RwfU?My@^iX zv6x(gBrtg*O;|L`oMbsiG*oSv&o0O$bUD4MM(DUO>z2sU*f=t7BlHv56*>{}x?V8( zFP{N~?p}v+%jU3gaC`+_o){g47HnSXb#D!yu1?W=bVDLwM8XHapgR4@iC(njcVyUI%#N&i=r?E?o!&6p zs0gUboIvkBhETG-Mdn?gv6;Ti6Ni95n8%VOXx3rd@%QQXW;EHFIw5sv^Ok{0V>1O# zz~vAYpeYXF%7g?xX0p|#TE7}!%k(j`6&iM*@Woq9rOSz`RF#uDLv^ZGxkD|azj^eNgrlAO{i$h5iwc3!3OL^@LPijJ5A5Bk>{V zDid9rB<@zu@5YnQ-7)|7Hm#sTC#NG#zH9kS2(F)q-x>SIIv^8xuZ*(cpwt+%N&W7% zESPd#)k%^$5d|)NZRt6$O7ygxW!s17U4uKWfnXALU` z$QjQ1>fQ|KI5I6q`i<D@!6i0)x2t3s$L$&6Iw956#K9yOK;NK)@-YL z9*)-OL&~j`fgR6Z)6l{nBe%{n+#eg6)I@*^J}!Ax+&bc5ggw>L`m24}9}JV|n~$1HKZ6RJboJspC>WzWO@{C7sk zB->Cylhq_mwginPeQ6O(N5T$LYn8?6nR;@@uzdY!m~)pc!-AizJZg_cL+7Dsc7vI) z;8hk*LjH;(?~F9nq{Zb-D)Cifj7~cj^2{jx(iCN8S>%JL}UItC)2${wK8skiN zFKUogGL%)4b`eI)GsSi6D-6#Wg0XkZJA6$u5g4E$x3$6MqEoI`fodzHBh%q5Gb7F*&MQz?w zI9ucUS>UO0TbQ%~;^hhXA5p#^C6m}u(dlQV2(zQPHN-S}10)$GD@DnB3PBS6Uk!0;#z z{U#q~IUo-3UoI92nVJ4_1e`yX!|%nCD~1VZT!R-E>8j&jfT;li{b>9?5~bJ4@3eUz z)wcgfIrIOq@prm>W>nl7JFKXpIFreXd;%#{j-?+sTxpJ(71;UaoigZMv&hm2beUAK0UHY^{zqgnq;cG@&1v$WeJm1%4ynU`d-k)OF7xZa_jdN&3 zeNx{aX4&TL;tb{m`fI?$aK1A7Rq-kN;&KIh?6$AtQ%-}wwAw`dF|Ibc6_;CAB`PwUj8 zjrF0*HE`_s!W?qy&_q1*I_a^iJ?ZH#^L=Xhe`D=EfSQW7Mq!EyN(U)QQ&9xzAiabl zMd>I4(o}lyoe&Ud(xpiYA|gmH(mM#D2M`E7R6`FXBtY8Z-uvC}&i~K6H{Z;Ad-mjH z&OUo*@3q%n<*b#pj*~;9gTNTS&fmfv88~7z;grRKfU187?fa3W%Zm@#S?puoblKs_ zho)RU1dLl=kn18mz9(2D;|Dth7ex->3&mL{P2B5-i^{|BFez>y06#EpT(IRHyKCn@ zA`eA1=U{q|XW#!i!VvL`E)DI_#JNC?Q3YqSoE+}YXIl-!{ZOSF5miKTKgW*MPB%aj zFvK!pLO5&?IN@)NA-<5`3q*K~I=n#dq0B5luhj2>lpA-*h4;((v)4SlKx&z|t~3A; zuA~gXnih1A!@rz77Q&Hi{uv_jb(o|Apydn?GS7 zy$iaxsh>BTjWQzS!7lm;{`=!F+d0(fIir2n0A|-NyP&dGzV?Av_EEai2-BV zOZ>Ku1OMs-ul(TRGA8tiQvahG*qHC<;uMs+94r*k;dgAhxEq1T^}3z$R2|HqK3t!J zgTtR)-0JMjZCc1j#8Nj(NY!fZ)WzBXFnaQ}S_6<*R9}9Nn6V7=7Yz-aOPXMx11UmE zw7Lui4i_B|KKo4@A`nOJxzyw5G!S3>QWz^NB=rPw>26g5jA%r@`Fl>+8uSdjmvsu= zZ#tFSj@=<5Oou?lL=*obRB?$uCp-Va18l90=s3rSzu9WqTt5{x5%J~(85*|QV*N-2 zdR=fF1@g2A9~o*18n3x(5t$g;krxS!W}RId_c_B^@7!pT1rRyQ4Mvx$C70VQ4$M0? zfkxY+WyGKs~%o z&e{UGd0QT!2X-fy3c?%1;J3LwyH

!J{Wo^tRuvf}S6)ivm(@mvH}Ihq(&b(J=bH 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 B=S2Vj diff --git a/chronos/static/images/Icons/MainImage/Outlet/OutletHot.png b/chronos/static/images/Icons/MainImage/Outlet/OutletHot.png deleted file mode 100644 index 49226677e147d00f15438b3d0f1b48dfd298d775..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50066 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 E2RV9Z#{d8T diff --git a/chronos/static/images/Icons/Manual/Auto.png b/chronos/static/images/Icons/Manual/Auto.png deleted file mode 100644 index c2471c86adaa62ae6a12a24cddfd9e8fcdef54c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 75319 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

}^ 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�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 Hy1xGhau?%1 diff --git a/chronos/static/images/Icons/TINTOUT/TFTO.png b/chronos/static/images/Icons/TINTOUT/TFTO.png deleted file mode 100644 index 24ff15b27faff42e7d815f67caa4e4b1b85fc461..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73506 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 z 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

O^9N+L&l&D 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 diff --git a/chronos/static/images/Icons/WinterSummer/SOff.png b/chronos/static/images/Icons/WinterSummer/SOff.png deleted file mode 100644 index ef97be1ea5d27205b4128269179c55f3bd1ca630..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52355 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 diff --git a/chronos/static/images/Icons/WinterSummer/SOn.png b/chronos/static/images/Icons/WinterSummer/SOn.png deleted file mode 100644 index 481de88e5447a998deef87b843fb323c9e379598..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51879 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

*^d|d{k;p=%Je@v<`^~acr3ev ztNQ0kLEdD{BS*bZ)`FKaUv?j4{CXeEJlf%iK~GuKpZnK?$|a|=2AxI&;wOM$XU@(O zRRm7m@nL!P>4_uvu;h*^Ze6Ig^ULy9KsubSLZ_4Kz-iQ8|8M7Ke9a=3(_%*EIOn`a zqX?r^(P?GDHZ!K5bg4A&4Zj5*0naxZVrbRabEj81w!Ru@QJ-wG?U|z^p z(i`v?{W7Edph!5c@F2s!a~XhtYRIDH%fkId5* z>|qkWNF-vO?4b5^MuXWsJra+<0+(Qp6YewY5>P9gS7u3oHM2^ehNO7&pB?c8hj&H~ z%QWa+2({WWHEiIeknj85);=KXL<4g#M9|!cY2jeUqleBJN!O%z*|FdWF@`zXsW;)Ob zB&``;uWo1GE-%}0+WB7s`A?}d)0C$9UoXkh8|+aT2@Z482{}YW#Bctigo+~m?^O^H z(UlUKS+x&;cQ;ap%$xF;= zIBKB*j~PKDJMo=W7&bV%3@u+d?TgJ(p3Y;1JO203FzA1rkdMu(vGhe@5W{-0O?m$j7Ia@o-JHM zd1oIKVsAim8;!5$(Alro#qTeFw$yUjJSLcPpM*A~Nn>XQvA+6c$v8`O5jF<#ULBo> za)y=RFFhs^QPTNGc^zZgHHf6?KgLnz4KuBo8*M!Y+f>2-Kr&v+)T3)@Bt_M+f|D%O zu()YI4uM$4eAqT8Fk70;ccZO0&!*PqBmjX4{rSkq`_)3rwnk0+P{LWoOjf%&16*13 z5}E)ZTi5Em@~NYRpHxBq$jOd12us^6T_G8c|3Wh83JhdCYN!Z_F|`F#$BtC-z(PgE z)cHNngxfpz`>_QI8y;-`L^9}ywo?shsQT*S5%u^erh3mJb=-5a88HX!h0jRcv|)9Y z0zRYQ>lKp0^baH>{R+vDZh@+gEL6ojK3X~s z<~T8zlt*}6a#gQ-<&|jN1a9DB^(^F93_JQ$VW0Z%^4mu=jvlONfw%i8=z__FhFd%Z~C6V4l)IXwWiJ2vT!w&KpW7xQ%^TsOfykcBIZP*6{>ai9xaF!D z?)+~M1L@pB@P(9%=qAS_#7uxH7&*%$AnrTt+{; z;{Pmk|Krxs++)UM3GF!}UrBQ!qNj}ik^ZT}Dx)OGanz-Q>^B>5gZr`QUx#~~dN25WW zxFaQ3qO|NK1>R|Qk%kT@ZTh<_e!23i+}qC%-#1tBg3vcXe;+=9_;670C*W!>kOSgKhG-4siFfbvfed8IIQ`z&T#Fx&z zgo9m|B;SJtRmMb*zF!ydnJdIHIzPkRZ&Holy~$gZQ4^t-8cd1Fuk5zYZ)63#CpK4x zgnTsN5hxV34381xo53{ob#;Gqz5`*s=B@qh0#z#MW_mG+ml0&95(Ks38k@9wrD!3k znmyUq-FO=4AJCuo=J2yjvkAL(J)w&7R(F3#(or{R(YP}Iw~KvRuqhKOhI`H`6G9Y0 zQO71O{$__c47#edG_9xuU!B=M*)1vk;;p%Y4opnIiVi#$P%PFO{7k{*D8+QsFrFTzd8YAn9=wO;~mrYm=GE>U($!4~*icuJU6w1IuTcwxs=X ztrt9kUiNmWHeb)CZ;m$^M#>Ehv6RvdD-ZV_uk+BSPsvd6ZHt|IKJQ!Y0?&wM2dsQJ z1br`f#eTSQZptikPn$*au{I~S_=ebuR0)IZ&D@_m_{mr@BZWeAPq^CchBERbjc=Y} z*<+-d;f6Z{mx`8#xm?h%uiELnu35JV44u>BN?|ue1ehGGxxc_bQ!=1jexdD0Zn@gT zvP5{W-`)GPaTLHj{wBMb%qy>+{6>A-?5uY|FZpCPn$m(-R8H>bIGFu$eQfgj{WzXD zS`5!*NNdzNDznP?6GUBV8D3D zVO5T=&n2>z8MVDZe*4rpeAuPZpxD|(Dz%ZILj9|*=Tjir;-$YkGdfVb7MQyJAmd^k^}_Lp zzGugmkgo?Q_wxy_aglqPsO)R91ftY@(CBL&Zn3upSeIuCc znr8)*3iUdx4mX?n%ZdYZvEfqor~cAg%|aBz7y_?)BBpf9$}o=IO!`%CVFJpMJlgM3 zZpn*rc;hk^HKc&f@SQ!J?ZIB@?l`r)(?}xL!{wLrqp;F`bGYQ#CscrXN0z?d z#fEyr@zaZ)^KxtHTQa5i3x@ZTI61!hwE{@CLqEzf>X~Ami5vIX+M`ZZqLwJ=x8#NM z5jXsEN|)h#!|w0C81|=L-o*I8>d&{B<^=rC)Li1Q@va_uuR20uqUA^3D}dSxi}#P1 zqn+KTj6@2Xl@bQZeK`F69#dLmjEOPhJt;XEsHXg@Ldg>nJW2W5qe*u&dg6SdU|F>Y z21>_ke+VM|Lrg8}RhQc}Enb~Esj}dY#C$i!`=K}L5v};W9i->&Ub&?80+EXb)bgU3 zN%6RCT4@HQu15T9{Lj)$nhFqOBR6F{m+z8*xDscGVj%fPv#QBk@U;xRDFc!kO7YAI zA+UpE$Vclhma46t9t^|KOZGqOFJ=XpX=P7`)$0}ycFFtXmkgGm)ta=V*k_xeNu=x8 z{jH6*XJe)}=8yfrNhg&)Fn5HOaRG%K=e7RZ;h*AG6qPe>W)|_JeQe?KpH&F<+5{@V{qIW0;w&UiU7U1#Z*Hx^KA z4=qG7T}!h*iinL5*L{OH4eJkgmb3c$GHjdRL^wTuqILUyq*ZT$sz~$W_{cWSGM=mS zg|J80i9Oj_5I0FJL}lq}_KjGein^TqjvVf)ulfI2(-Jt4HWl6EJ*$sre(=LmMcBl5 z{%nj4NK9!;X5I^feZKdZkGXtn!{VunwA#mROusUNVt;ic>x`vSXUN6aK{fLBaIQ&s zf}rR7Jlm$1^o+{n!kc^nq!U8(j9y{PQYnra{gcSC?i=}|`z!;Q5rkzoSqO%4R zevB&iNcMPZQvX_5e*Rjv+2Y!yQ%X|5twCbtY}Arg+TCf+bPJcvC{@&VH&QnWKH~^B zT0qY`TWlZ|{ae2{d-7M)<}+pWWbvm#jd&)rs=!>FxTuQh_EbYFCO~JF{#(Gq)sIlJ zo8I(lp>hYnNwK$ER?YnR+1t6oR#%bNJkb|*CM)LCV(T;WC+qJX@Ml?Z(XKv~ZFt<< zHDqIyBGYM}54m9+pr`fuFvE zx*t}Xrc`o#e$75XFNKF#cRMLjUZW3jW1{j?ED*y=(g-ba z{vabvr=pgs>;9{T<#)46JKN^^1=^6M#Xf!`q2^56xm;BNzeL@5IuR_@@brGiFr7DL zug&#YDOUNRGF`Py0n+0+)aPGfJx6WTzr_+9k~WD;EdQ!%yJ_>^rp8o=v8pjn;4zCs zVD;R=SAQ4uy2kbxq*`79HJvai$g;bupJ7@Asr`~>f9DkQc z{5FVmnQcvbkK4%O_MDY9^cHMT<;D=>?aj=a6PWQLAl;*HRxO>HeYpGm9u&Hezf~m1 z)K5*sm!H;DB?81Uzt}S-k8M^y8tShko^W?R+?y45V-5o~g%89ntC!zMLiatsGf?s< zOqyz~4aA1mDfeKC7prx9O)CDb?R{os)3&+nC$dlYL0x2n1!Lq{W-X6%;U}nE*9#F& zww^-DHj5{>kuM27tb-NaRHLy<-9!Ak@h;TX>s6m>YhWkro}Ou42O6*unSlyHy80Dn zU7o9ix)wsM+sEB9-eupUFL};rayMI1?Pz7!tmcd1%K7cCK+Z>t`gc>{PF8I+Ah7oz~Pj$X) z=Pr+}E{XGl-;c^gJNX`bQ4aURaf5zJ(KXn1>Fw4>FsigYhh*+_J-E5G!a#mfk7)j_ z{5&q~#>4blcM!GH##geWGlj~tJJERzMpth$drCR$vi;;%B?EpLBmC!8-9PdAKBM8$ z3c#KtSG}W+PWk(|(n=Dyx;P4qsBg+Xc^QcxV-1%$Y}{fBY|V6zX4Vi4`P7_vFTCd= zArXoN1lAQ%l`FI3BMP#mkPBp6wNd6UWl+Gi(?cnn7-r6%a(adcv_0Z@njjqwM`||>MyOX=136D9m-|mWUzL|5nG8_{G zoI)R83m{or3yZy7)r&ToSP!v}-uM#!x{@f`otkaen@gPg({+|hJ!wUf{1m4L0V=zG z@Pr$+VFj_8+34Y83cjG%HkA5jGvCe~KPErP)@nKZF!Dt(|B;S zh3rRfes;mPe{~dINTwE+PS{TG8SEdfJT@{$Rhow8&A*>2`o1ojq+Q|QQA#yDe)QwQ zn?rJaMsYU4EqtVW#>c6s!bz4QoH~(>ez3`CZwu<5N59x1>P3o=D4w99fIBOPhXp`* zaX(p6n#|Q5v2vvvosLl1SPu`%=kcVMdpjk#yMnfOsx0L$4_ZQ3$m>X^Vi!e($+t>V zTNC=g{IaMN+xvyIjOF~r??2D-D8dpTE=%VzC;MD9n0fC$c~MWLt-DIo)y_Fb>=J5B;p^5mN2un0 zFUpiLnb)t3fzyOv^5Kc7q|1RtV2d@smEn1=dQfE|=es+M!HnG9hM&FodQD3`t-I(tdL&%)kWSnY}IuOa1|wfDZURj^Ip ziQo$@Vji#59=KJLbM~y+j^GnDd=+7&NVCbdpw2Y)9~aS`qqB#8Mtk5&h`Kg{wgl1+Mor4eZ%^fOT_9xmW-{7B7Dg_Y7LiaTcBSr8z1A5`-pERY-udflz z=|c=Hf3+us62B+DzvV-!s&?I*V-{?JSkSZ%FU#NP5l@&KzuI4VZ^}(P#5Q1@ z`C2(WaThpvAoMwFx$t_vUBU`FchCREGxQsxB#nmy{&z-oNMBQpK&baQb>%0kxt>?O z&y%Dkc_KVW4C#$sX?RIrt_+nh9K3kxG2MIXc`04`Q-28l13L^HJKQ#TUyw8Aw%@O% z@kQx=Vcjc!{){C)Te~;2sx1!NFR(+UPJh))I58(LalCeVyEUt5y@Y$C;~QU5be=F% z6b{Y)W8I z_uuU|UeMJWIFW->7>M)R52Fn;@<_Uj=jEimFLHUlJGzqca2l)*jK0ZoskGE>_dER( zXwv0r=p*#KTv9ZK#-jXw`7`xxrn7FQ&om9wnd0+u5Tdtk`Jz#=O>=eMo$iYiy}@zJ z=I&@5v_~5z?L;7R%S={9ozL?x?ohUL>JZ6tcn6;+_q)NqKJ|c+>KMP+&TAc+*KaZR)4+6}igsO@wBbGbMJ@-< zYesCsQZ0{+$+_QGSpAhp$UOMJQFk^(WM~4^;Snpj*civ7lcVLvxa23I!>U5P1Qa^z4Y8pgI#oU-8Kq z870m~+l7|>9_*URo8ymdgOq1C`oHh|LX9lz1j;(viDz~(YHn6_`5Nk6y5UTHP@}11 z+JZoXK;QZNQS+_ScrB5}Q8jhl!$GId>ggQW?yOYDU)W;I4HmD}+J&_V`FdTlt$(Ai zlP4o7DIXU(w5DYjBWMMsr!Y2j|A>7l?SGJX0%9kX@G`j(ZnFI_nF3Q(|A>!$tWu+* z(K?+Y@p?e<=Hr*kkqSGGizAFQx*JXpMZ7T*EAwIgbckILodv|8Z@Zl*T;YS##M$+k`HDXZ#cqt`zoB=h|i` zmt2!cVjJfzMIyCPXgea%C*OMII^0qFH~j6OlRI~!o*L=lXuVw`6=mzv7YXVXK6$TS z_2&b>r$1^e1iF#e-Alu<#|X|o9oFE8ziVaTe|4NRIM0#q`2mIMNIHJ}!wWgSZkT|p zBP|F1g>+<)c)E!IJxl$I8Kr$jg`7N^4bB*Q=-+K809O?Q%gcW`Q~rnHn0)PInf*nl zd%GF$GLyCP&9vimi!y%xZ<*o66!X6FFK1fPHDfoR||#E>{2TwA(T>q zFBcG{RLT4Va$Bu4uCrdEAUWzcAZ^$Zy z`?TgYL=!Oj%Yosn>{+Tw=9g9IoA58BG5w-8q)_?$2$n<$=H=rHuOQ_7SCW63ch( z2XoJcB7E3HS%3HV$!vt5m`WOvG%f*_t62D-jbNeqXJQ=ix`#7~CwaS)J629oPtqx| zLTVh{GHO~4BwS_`y`r%5M6m`*=tG8=`$EzjNrP+`2S$DhFt|E@hW{DZImiyoo<(WJ za=U=T><|VA7IvG-^_m6VJC@mg_~0x2yga@b|24eJfxr2I&YhnlJw)18>HIU-X1b-c zKHt4*rCO3PT%)et|oF)&D6?(op9qgVudfn zGEx#Z=YK5Zv=w{mS0u@PSosO%7^s$1DPxdSdQQH-sK}s$h}TATQfca6qq&R-RJS|J zGnW}r0n^7A+-8;8sMqLrfjPs2RA^j?-tqYb z#{P-n;60p8xT(~lb>(s!`oUsI^J~eh%?Y7>M0{fHt#kHBF7X5jo&5K1)@RToROHrq zwCDp#SI=V2dH;-?XX@AZ#}~XmfA?mP{JTh|Xyqra7NwurF*D0mY(Z68mHSZXxX_81 z$yVde1K`>7m}+pN{~I((QE(8!eXe%d@z3EN@f>F4L#3w_u}#Yp!9Tc z63iYqhc5fJl#tkRugR#NH*d0F{ESxzG_G~UJahe?#2?QUDydcIu) zQE7?=^HGvm^Vh7S5#(sUwD$!+-xaZ}Ijlhh@1dHcLG1j^DBiRrQNw|7AqDnw_&KNw{Xn ze&8E++b&6$tz=!pbXKKclgqML#ymSR?J+N<>2@v)rYP0B3kx6X zxN_8jVwV1_bZ?1%)JTp2WS$R(qmE5KTrb96aVnA~;|0jfMl(=f?CHlh8!}PZa|_m) z@z40aJuI8Otxz{S+tG$RkJ!jRk5g|V&vX8swkBI;65u4k7g^((xR(#LGwF$@E zB4M z&~;PNu&f4u^mnIX^jxXft9|&ctd>2*pR<5pn`wz+I{D{$WB$tm!!&e~^UN^KU2q$L z?5K3aA9fTrewG)6!aaTFDqj%BY_^aZW6u5VH5JW}`+iwZxKBfcwM`@OHq7VXNtU*P ztYRpZEiQcNquT~bDfJcSt+rBX${7eGu>^2W`zu;~TX+2T0b@((ZkVq=*M0;K<&dNGj?Y|*VhXBW zH2G~MV!;$&Oa;|a7e@wPP_BBDj=57Ar<=~lsq${7)f-ZP_l%3)$^|^35x>-l3UjB) z{?we%(L5NpPr|9brYmqPsFd1Dra!Z23)O)Sl$UO9ub;4+Qmj$$y=!U&SuHLw3i;Q5 z+4R<25bLj(Fg7%k_u&mpw+y-4dA-$8!sb>quTm-aUe)r2U-F=qwAxj}xp=tN;J_BU5 zjv%y-XMWbD5Xe5LewjM-mHF;uOPiO&IN34uj}?Q)OIZ)dO&Y3#*SfYRSm=p`#)l@| z+QRMIeUM#hCs5g1(iaHN!(THdWicu}f5}~EkQBc5TqKTH+0ym7z2x0+2Evo*nmZ?f zb`ySKY8k4!E;ZLiW8$o7t|@)M_+6ih`4#qaTTHdP_6M3ZxjbGcV#Z2X+;n8N%qr(i zGV`FUX{!oJiOtitXWPlFqzi>ai+8kNlO|!HqTC*zj1if1emcq2#td@gMIox+6s*~_ z_|Mia0SBYgMe&S@4i{;R3uv;L<8@<|-$XD&RAbtG25MHp6|IePCZc5nsin_cbs6xE z$T=xL4$7U1qVaHQ>BwGP%wxvlKz~0eJPXVn7ewWoVC@kxWC(c|4rPmw{2-9gc|53eDBb$Eczq(cQDW{ z#V+D#grnH@;`e~u!-=T9Ka5Ywa(>V&@6&gbYnjE~HqdVYV*=Ki3!=gVBCRga~(0MW(7` za(SR7JZxm99C~FB{w_%u7F2Ar_$(h{LS4c*GRDY>_dnFLHuGF-mkEb=j4mEUSz8i^@%%#BKFn7dzAV>C5HW(WOrn!ioS?1SG{QRFILYTfxR2UF+NyWcbVQy<+_u@Zw5)A-?dnGQHq_{S zc)9_1p&UCDkgxDsH+&xb?odOucn;#0Mjku(Y5o2G)83gzCAqbI+_KahGgC875l>k; zfU^=vDrsd}Ip>%nk|QW6I9FEUkfb?brj^=o9Lrfz!%Qtr8k|xyr4q-~%+Q=3I;W>| z-m~8Iyo(RdTJHyLzHIjTU)QzwZ~s}qy4md64_Qyk{N$bUoeVA_S2T4O7`CF(!WOz- zs&(;Ss2x1YH>C5$FZ1P?yzHIVUh;+_SOHre&E8g8BCck{D1cFr2L9@6lo^McrQ zx4iDu5Wos~&x*y!A>SMb_C;^>BLz{0+*P;UKRe#triLLF)b^CXVR=H;tI4Gx+;p~ z)X2k8!LdGNNc>Hc?(ZXur_`UG*}q2I=u0BsYUm5AgzN19x7s_H4&^msWO);18>&ka zw8BIaF2tV)3q+Smm29UW_3vBdO`1KtgI2f!9{DCAy!oz8hV9hur7xEn>bE4^BoqTd z+U3K&WcF9p#?K~=r_VZV4L@0aeM=p(J)qPjjkiiAEqpM%m`NS(=@POOSG=H=b^%&4 z+-5g(aXOSZp{i&iI7ab!q<(8sz|X6sSvJFP*na~l5|i|XfmyT=N6aPTp3B^EuU1-B0*50-Xzh>Z_ErWX z>`ja}NfbDqH=20is9UevPiC$V*M#;v?u~s|+0P`LfAx4Y{-_7vIU5hn<#p(9tk#3b z$J8-_0AE&lsvE2CTH0LUOIDLoI6}pEJCvfxXj`=gQPCT`PsnGN3{s2LUHM&d$xm`A zttK;_Du$G4t=Slrw5@A8ty3=fe1SJ(FSTIr`X~zql^Rr1O%d%y2cjUtAI2r>ax)Cf z{D-Em6E#x`met@mzVsk>Ghk?lZTSVP`yneavCV}{_I!DS@A=ic1xF6x$x1ay@#$un|)^)t;HGFd3ruhL&BW6d`1 z)pODM={3}9SALh>m9BOVX^U$+WAa~QZe{rxbt3in8XXk`Ke`wSX*Zxfz6rKSuFWsv zwrSd1;Uvw`yfeDP0%J@OWt@JXf^68ljg3>P)eR>?3(t!K#}YCOmUM^(NkjHNYXc%m zsfq!XDq*KmS_V=j7~5#(+tG|iv|*bgiK_g~n`p~zQ}FVF@CjF|==+Fw1+a=ORt3SX zVNXhsr78EyJNXOtAw;QL;*`Dhw3n^oX8X8SyXUlsbejISs!g z@sP#ZBbu`iN}2W5P-!g>)@|P7RQRB?cl?U*C}NR<)NX3c9$0w!?x5$TG-D;j$l(o? zVH?if|J?1`jY%^tq$^W?EJHuoV1ZhhCd;THy}wAeod}JMH9q7e1Uz%i8`g`sCj@)W zkh@6JPM(S1cRML%xG$p7WbOKEt@;*L7TTphYIXgFJ=%xwob@pWThZ&uKn)`uQ~Bs1 zZN9!8;j5!VQ$`;%Cj5MI2{krzU8Cvm@Vd}Fvmi^_Ex=XhmHfqpLaPFN+lpwWdxUVS z_x;WnhH*CPS@szAULj&)8oiWyhC0?B&aAHH@mJ+P{wN%cj(ippbzss(O#0OrP7zL6 z8fQ7&h`TU0o+)pZVOmz;r>K{7#WuS)!X#i+%4@d#GDQ8bf8gE{+IVd0L-wbeH&%So z!Ek={bTXuL+}(JJ+FRGzDRxB3OfCkk9O_Vr__PrmYi(cmk zlH`uIFB&+{{)7e|_6n`j88_+e0Vn_5#N2W>QV?VBD!%kMl`HT<ow2s4p_Z+3t9`f=@(&ZL@(VA6&Jiy+Yxd1k>bUgLv=f7 z`V=>fA@l@p`08@2Np9>$(?@`i;iR2$T-2CqRc(pPt&U8$jeTB}k3Bxvd650v?yKx` z26>iG0;pMKM}>E2JsVtEZ`^e3Y-anH;QnRF`o$WJ$rt(0R;mTs>8y?DPbzN9&+Qw( zq?Jbe|8Gj3-{60jB|{+`xXa?<(Ny%dalkuRoPZ!P{_5_Y7!Q;>(I5NA&p)AXBGw)0 zi^2muP-yP}7;v_}2?+4^gaPe!EWj366Vy5HqhUcP>o7|jWSB3~z!L~J6oe8X>;(QO zygPvC?-ziB5MjVS@68szB(u|k;sEXRHZ1D?a~)Q}mB;3yi0?SLpv9u4C{s{BNS4;q3F`*=+vC>W_u^G0lJU|6dF} zk-rdPgMXQJ6Qd^*;)MzFcgGug`@5r2AZ!2{3i_+_KaTIu zQL~-GHYw%2iE-o&P z2yi6kx{Hg8BLWn<)X zjtFoh=DLfEiz5OYiMj6L;^K$^M`EtKxVShXz>%2iE-o&P2yi6+kM0uuYu^VdfW6s+ zz~0pn50?JKJ~8InF@%xL(YWG1O#3^O4F4Q`fw)B>w`%WtoSg5KDSG*d@~IKO2FKBZ ziP|08eDY;fpS25!`;G#YCXeu``ILT7=m&HI6Yt11y!6iz${56_f8&39CI5u-*g3zc zr;#_A*&;wYWCSid=(Pw~-a9UnW!TeLydUMj}>yZ|}OfwY(~D+c5dV zID;&-H8ThA?v;~EnJuIrP;K_ew))bcxv+X{{_eio$xbN0*x3V(aV@jQBV;yLBjJW} z;`Cf$-0Q+9$=HX&Zcj@T-|Ed-X2;$0ojKOFO}VS{Y0c(XAY;>bNWCs*7#e%k!QPzQ zyOJ7)p|vhf^}*jxEq-^fcb95PBxP8dQg@3n03{?6T;y502d|-4(0PTC5>mfj#W#;3 zav#zk;iq6X?m2d3X^Sh3{!k2rG$?6>1|p_AItK%{RCj;f=SL!$DBW1rAGRT`XyW#k zJQa?5O)FUPP+RATN^J5@!cPcflJrw4PFS3Uzl_OoA%i6q!;2?HU%+~3Pilk|nh#QC z*DjR-wd@fsZ4gz&eTRvNQ<-{lWpzn#e%c+deM@1;h)=(*Ner<*E z@WqZJOQz06%N=#EXOR1+%{3Rar?V#)!s<;^_n$0nZHy_`CSO)D zXWB&+35dEMa&10@4Vl%yXxXtc=~(6meJy$-Njg!6QcJZA5gE3A(>D38>A6`2mI?>1&%?1@BvQFw$# zN=5fYxciT;*{SScdh13Rm(P>6m8S-miXA^r)2=*lEhXqy?VjyPs2qt_b8RRd&U0Pc z(tF~=krz04v1DxdFAK! z=#5|A0Zp(_%0C|EH_lomk=7`+$FyicYH^(-c@F86CR)08QR~ekb-Zriaqzn4-NP@l z#~om$iGt?$N~`O^)zWQzMW4G{s(qQPb8pAY3o4L1D*GpFajYuTn%4$`Zqy4{42SR{KN_ z)FgduYRwl}6SnN5u38Rh{8pbgmeZ5c*12tf}G~ME& z!F=>R5|NMI%{;BP$MV5JN%82+oxVmbN_nw{ueK@bJzEmX+f;1Bv%DDcW53$5BbJB~ I7Ouv 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 Wf;uKKiRC|6r(M_3Q7=@r3i= - - - -[...] -``` - -Add your checkbox: - -```html - -``` - -Initialize Bootstrap Switch on it: - -```javascript -$("[name='my-checkbox']").bootstrapSwitch(); -``` - -Enjoy. - -## Less - -If you want to use your bootstrap variables, include `bootstrap-switch.less` in your compilation stack. You can even choose among Bootstrap versions 2.3.2 or 3.*.* compatible source. - -## AngularJs -Two custom directives are available: -- [angular-bootstrap-switch](https://github.com/frapontillo/angular-bootstrap-switch) -- [angular-toggle-switch](https://github.com/JumpLink/angular-toggle-switch) - -## KnockoutJs -A Knockout binding handler is available [here](https://github.com/pauloortins/knockout-bootstrap-switch) - -## NuGet -A NuGet package is available [here](https://github.com/blachniet/bootstrap-switch-nuget) - -## Supported browsers - -IE9+ and all the other modern browsers. - -## License - -Licensed under the Apache License, Version 2.0 -http://www.apache.org/licenses/LICENSE-2.0 diff --git a/chronos/static/images/Icons/bootstrap/bootstrap/bower.json b/chronos/static/images/Icons/bootstrap/bootstrap/bower.json deleted file mode 100644 index aaf1eba..0000000 --- a/chronos/static/images/Icons/bootstrap/bootstrap/bower.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "bootstrap-switch", - "description": "Turn checkboxes and radio buttons in toggle switches.", - "version": "3.0.2", - "main": [ - "dist/js/bootstrap-switch.js", - "dist/css/bootstrap3/bootstrap-switch.css" - ], - "ignore": [ - "docs", - "test", - "CNAME", - "coffeelint.json", - "composer.json", - "CONTRIBUTING.md", - "gulpfile.coffee", - "gulpfile.js", - "index.html", - "package.json" - ], - "dependencies": { - "jquery": ">=1.9.0" - } -} diff --git a/chronos/static/images/Icons/bootstrap/bootstrap/coffeelint.json b/chronos/static/images/Icons/bootstrap/bootstrap/coffeelint.json deleted file mode 100644 index 789bb8f..0000000 --- a/chronos/static/images/Icons/bootstrap/bootstrap/coffeelint.json +++ /dev/null @@ -1,127 +0,0 @@ -{ - "coffeescript_error": { - "level": "error" - }, - "arrow_spacing": { - "name": "arrow_spacing", - "level": "ignore" - }, - "no_tabs": { - "name": "no_tabs", - "level": "error" - }, - "no_trailing_whitespace": { - "name": "no_trailing_whitespace", - "level": "error", - "allowed_in_comments": false, - "allowed_in_empty_lines": false - }, - "max_line_length": { - "name": "max_line_length", - "value": 120, - "level": "error", - "limitComments": true - }, - "line_endings": { - "name": "line_endings", - "level": "warn", - "value": "unix" - }, - "no_trailing_semicolons": { - "name": "no_trailing_semicolons", - "level": "error" - }, - "indentation": { - "name": "indentation", - "value": 2, - "level": "error" - }, - "camel_case_classes": { - "name": "camel_case_classes", - "level": "error" - }, - "colon_assignment_spacing": { - "name": "colon_assignment_spacing", - "level": "ignore", - "spacing": { - "left": 0, - "right": 0 - } - }, - "no_implicit_braces": { - "name": "no_implicit_braces", - "level": "ignore", - "strict": true - }, - "no_plusplus": { - "name": "no_plusplus", - "level": "ignore" - }, - "no_throwing_strings": { - "name": "no_throwing_strings", - "level": "error" - }, - "no_backticks": { - "name": "no_backticks", - "level": "error" - }, - "no_implicit_parens": { - "name": "no_implicit_parens", - "strict": true, - "level": "ignore" - }, - "no_empty_param_list": { - "name": "no_empty_param_list", - "level": "error" - }, - "no_stand_alone_at": { - "name": "no_stand_alone_at", - "level": "ignore" - }, - "space_operators": { - "name": "space_operators", - "level": "ignore" - }, - "duplicate_key": { - "name": "duplicate_key", - "level": "error" - }, - "empty_constructor_needs_parens": { - "name": "empty_constructor_needs_parens", - "level": "ignore" - }, - "cyclomatic_complexity": { - "name": "cyclomatic_complexity", - "value": 10, - "level": "ignore" - }, - "newlines_after_classes": { - "name": "newlines_after_classes", - "value": 3, - "level": "error" - }, - "no_unnecessary_fat_arrows": { - "name": "no_unnecessary_fat_arrows", - "level": "error" - }, - "missing_fat_arrows": { - "name": "missing_fat_arrows", - "level": "ignore" - }, - "non_empty_constructor_needs_parens": { - "name": "non_empty_constructor_needs_parens", - "level": "ignore" - }, - "no_unnecessary_double_quotes": { - "name": "no_unnecessary_double_quotes", - "level": "ignore" - }, - "no_debugger": { - "name": "no_debugger", - "level": "warn" - }, - "no_interpolation_in_single_quotes": { - "name": "no_interpolation_in_single_quotes", - "level": "ignore" - } -} diff --git a/chronos/static/images/Icons/bootstrap/bootstrap/composer.json b/chronos/static/images/Icons/bootstrap/bootstrap/composer.json deleted file mode 100644 index b3b9aee..0000000 --- a/chronos/static/images/Icons/bootstrap/bootstrap/composer.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "components/bootstrap-switch", - "description": "Turn checkboxes and radio buttons in toggle switches.", - "version": "3.0.2", - "type": "component", - "keywords": [ - "bootstrap", - "switch", - "javascript", - "js" - ], - "homepage": "http://www.bootstrap-switch.org", - "license": "Apache License Version 2.0", - "authors": [ - { - "name": "Mattia Larentis", - "homepage": "http://www.larentis.eu" - } - ], - "ignore": [ - "docs" - ], - "extra": { - "component": { - "name": "bootstrap-switch", - "files": [ - "dist/**" - ], - "scripts": [ - "dist/js/bootstrap-switch.js" - ], - "shim": { - "exports": "BootstrapSwitch" - } - } - } -} diff --git a/chronos/static/images/Icons/bootstrap/bootstrap/dist/css/bootstrap2/bootstrap-switch.css b/chronos/static/images/Icons/bootstrap/bootstrap/dist/css/bootstrap2/bootstrap-switch.css deleted file mode 100644 index 8cd5fa4..0000000 --- a/chronos/static/images/Icons/bootstrap/bootstrap/dist/css/bootstrap2/bootstrap-switch.css +++ /dev/null @@ -1,501 +0,0 @@ -/* ======================================================================== - * bootstrap-switch - v3.0.2 - * http://www.bootstrap-switch.org - * ======================================================================== - * Copyright 2012-2013 Mattia Larentis - * - * ======================================================================== - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ======================================================================== - */ - -.clearfix { - *zoom: 1; -} -.clearfix:before, -.clearfix:after { - display: table; - content: ""; - line-height: 0; -} -.clearfix:after { - clear: both; -} -.hide-text { - font: 0/0 a; - color: transparent; - text-shadow: none; - background-color: transparent; - border: 0; -} -.input-block-level { - display: block; - width: 100%; - min-height: 30px; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -.bootstrap-switch { - display: inline-block; - cursor: pointer; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; - border: 1px solid; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - position: relative; - text-align: left; - overflow: hidden; - line-height: 8px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - -o-user-select: none; - user-select: none; - vertical-align: middle; - min-width: 100px; - -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; - -moz-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; - -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; -} -.bootstrap-switch.bootstrap-switch-mini { - min-width: 71px; -} -.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-on, -.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-off, -.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-label { - padding-bottom: 4px; - padding-top: 4px; - font-size: 10px; - line-height: 9px; -} -.bootstrap-switch.bootstrap-switch-small { - min-width: 79px; -} -.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-on, -.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-off, -.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-label { - padding-bottom: 3px; - padding-top: 3px; - font-size: 12px; - line-height: 18px; -} -.bootstrap-switch.bootstrap-switch-large { - min-width: 120px; -} -.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-on, -.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-off, -.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-label { - padding-bottom: 9px; - padding-top: 9px; - font-size: 16px; - line-height: normal; -} -.bootstrap-switch.bootstrap-switch-animate .bootstrap-switch-container { - -webkit-transition: margin-left 0.5s; - -moz-transition: margin-left 0.5s; - -o-transition: margin-left 0.5s; - transition: margin-left 0.5s; -} -.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-container { - margin-left: 0%; -} -.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-label { - -webkit-border-top-right-radius: 4px; - -moz-border-radius-topright: 4px; - border-top-right-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -moz-border-radius-bottomright: 4px; - border-bottom-right-radius: 4px; -} -.bootstrap-switch.bootstrap-switch-off .bootstrap-switch-container { - margin-left: -50%; -} -.bootstrap-switch.bootstrap-switch-off .bootstrap-switch-label { - -webkit-border-top-left-radius: 4px; - -moz-border-radius-topleft: 4px; - border-top-left-radius: 4px; - -webkit-border-bottom-left-radius: 4px; - -moz-border-radius-bottomleft: 4px; - border-bottom-left-radius: 4px; -} -.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-container { - margin-left: -25%; -} -.bootstrap-switch.bootstrap-switch-disabled, -.bootstrap-switch.bootstrap-switch-readonly, -.bootstrap-switch.bootstrap-switch-indeterminate { - opacity: 0.5; - filter: alpha(opacity=50); - cursor: default !important; -} -.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-on, -.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-on, -.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-on, -.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-off, -.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-off, -.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-off, -.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-label, -.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-label, -.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-label { - cursor: default !important; -} -.bootstrap-switch.bootstrap-switch-focused { - border-color: rgba(82, 168, 236, 0.8); - outline: 0; - outline: thin dotted \9; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82, 168, 236, .6); - -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82, 168, 236, .6); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82, 168, 236, .6); -} -.bootstrap-switch .bootstrap-switch-container { - display: inline-block; - width: 150%; - top: 0; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - -webkit-transform: translate3d(0, 0, 0); - -moz-transform: translate3d(0, 0, 0); - -o-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.bootstrap-switch .bootstrap-switch-handle-on, -.bootstrap-switch .bootstrap-switch-handle-off, -.bootstrap-switch .bootstrap-switch-label { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - cursor: pointer; - display: inline-block !important; - height: 100%; - padding-bottom: 4px; - padding-top: 4px; - font-size: 14px; - line-height: 20px; -} -.bootstrap-switch .bootstrap-switch-handle-on, -.bootstrap-switch .bootstrap-switch-handle-off { - text-align: center; - z-index: 1; - width: 33.333333333%; -} -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #005fcc; - background-image: -moz-linear-gradient(top, #0044cc, #0088cc); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0044cc), to(#0088cc)); - background-image: -webkit-linear-gradient(top, #0044cc, #0088cc); - background-image: -o-linear-gradient(top, #0044cc, #0088cc); - background-image: linear-gradient(to bottom, #0044cc, #0088cc); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0044cc', endColorstr='#ff0088cc', GradientType=0); - border-color: #0088cc #0088cc #005580; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - *background-color: #0088cc; - /* Darken IE7 buttons by default so they stand out more given they won't have borders */ - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); -} -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary:hover, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary:hover, -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary:focus, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary:focus, -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary:active, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary:active, -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary.active, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary.active, -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary.disabled, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary.disabled, -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary[disabled], -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary[disabled] { - color: #ffffff; - background-color: #0088cc; - *background-color: #0077b3; -} -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary:active, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary:active, -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary.active, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary.active { - background-color: #006699 \9; -} -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #41a7c5; - background-image: -moz-linear-gradient(top, #2f96b4, #5bc0de); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#2f96b4), to(#5bc0de)); - background-image: -webkit-linear-gradient(top, #2f96b4, #5bc0de); - background-image: -o-linear-gradient(top, #2f96b4, #5bc0de); - background-image: linear-gradient(to bottom, #2f96b4, #5bc0de); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff2f96b4', endColorstr='#ff5bc0de', GradientType=0); - border-color: #5bc0de #5bc0de #28a1c5; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - *background-color: #5bc0de; - /* Darken IE7 buttons by default so they stand out more given they won't have borders */ - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); -} -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info:hover, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info:hover, -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info:focus, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info:focus, -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info:active, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info:active, -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info.active, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info.active, -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info.disabled, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info.disabled, -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info[disabled], -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info[disabled] { - color: #ffffff; - background-color: #5bc0de; - *background-color: #46b8da; -} -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info:active, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info:active, -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info.active, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info.active { - background-color: #31b0d5 \9; -} -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #58b058; - background-image: -moz-linear-gradient(top, #51a351, #62c462); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#51a351), to(#62c462)); - background-image: -webkit-linear-gradient(top, #51a351, #62c462); - background-image: -o-linear-gradient(top, #51a351, #62c462); - background-image: linear-gradient(to bottom, #51a351, #62c462); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff51a351', endColorstr='#ff62c462', GradientType=0); - border-color: #62c462 #62c462 #3b9e3b; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - *background-color: #62c462; - /* Darken IE7 buttons by default so they stand out more given they won't have borders */ - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); -} -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success:hover, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success:hover, -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success:focus, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success:focus, -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success:active, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success:active, -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success.active, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success.active, -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success.disabled, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success.disabled, -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success[disabled], -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success[disabled] { - color: #ffffff; - background-color: #62c462; - *background-color: #4fbd4f; -} -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success:active, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success:active, -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success.active, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success.active { - background-color: #42b142 \9; -} -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #f9a123; - background-image: -moz-linear-gradient(top, #f89406, #fbb450); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f89406), to(#fbb450)); - background-image: -webkit-linear-gradient(top, #f89406, #fbb450); - background-image: -o-linear-gradient(top, #f89406, #fbb450); - background-image: linear-gradient(to bottom, #f89406, #fbb450); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff89406', endColorstr='#fffbb450', GradientType=0); - border-color: #fbb450 #fbb450 #f89406; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - *background-color: #fbb450; - /* Darken IE7 buttons by default so they stand out more given they won't have borders */ - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); -} -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning:hover, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning:hover, -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning:focus, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning:focus, -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning:active, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning:active, -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning.active, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning.active, -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning.disabled, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning.disabled, -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning[disabled], -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning[disabled] { - color: #ffffff; - background-color: #fbb450; - *background-color: #faa937; -} -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning:active, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning:active, -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning.active, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning.active { - background-color: #fa9f1e \9; -} -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #d14641; - background-image: -moz-linear-gradient(top, #bd362f, #ee5f5b); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#bd362f), to(#ee5f5b)); - background-image: -webkit-linear-gradient(top, #bd362f, #ee5f5b); - background-image: -o-linear-gradient(top, #bd362f, #ee5f5b); - background-image: linear-gradient(to bottom, #bd362f, #ee5f5b); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffbd362f', endColorstr='#ffee5f5b', GradientType=0); - border-color: #ee5f5b #ee5f5b #e51d18; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - *background-color: #ee5f5b; - /* Darken IE7 buttons by default so they stand out more given they won't have borders */ - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); -} -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger:hover, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger:hover, -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger:focus, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger:focus, -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger:active, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger:active, -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger.active, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger.active, -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger.disabled, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger.disabled, -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger[disabled], -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger[disabled] { - color: #ffffff; - background-color: #ee5f5b; - *background-color: #ec4844; -} -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger:active, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger:active, -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger.active, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger.active { - background-color: #e9322d \9; -} -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default { - color: #333333; - text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); - background-color: #f0f0f0; - background-image: -moz-linear-gradient(top, #e6e6e6, #ffffff); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#e6e6e6), to(#ffffff)); - background-image: -webkit-linear-gradient(top, #e6e6e6, #ffffff); - background-image: -o-linear-gradient(top, #e6e6e6, #ffffff); - background-image: linear-gradient(to bottom, #e6e6e6, #ffffff); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6', endColorstr='#ffffffff', GradientType=0); - border-color: #ffffff #ffffff #d9d9d9; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - *background-color: #ffffff; - /* Darken IE7 buttons by default so they stand out more given they won't have borders */ - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); -} -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default:hover, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default:hover, -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default:focus, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default:focus, -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default:active, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default:active, -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default.active, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default.active, -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default.disabled, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default.disabled, -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default[disabled], -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default[disabled] { - color: #333333; - background-color: #ffffff; - *background-color: #f2f2f2; -} -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default:active, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default:active, -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default.active, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default.active { - background-color: #e6e6e6 \9; -} -.bootstrap-switch .bootstrap-switch-handle-on { - -webkit-border-top-left-radius: 4px; - -moz-border-radius-topleft: 4px; - border-top-left-radius: 4px; - -webkit-border-bottom-left-radius: 4px; - -moz-border-radius-bottomleft: 4px; - border-bottom-left-radius: 4px; -} -.bootstrap-switch .bootstrap-switch-handle-off { - -webkit-border-top-right-radius: 4px; - -moz-border-radius-topright: 4px; - border-top-right-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -moz-border-radius-bottomright: 4px; - border-bottom-right-radius: 4px; -} -.bootstrap-switch .bootstrap-switch-label { - text-align: center; - margin-top: -1px; - margin-bottom: -1px; - z-index: 100; - width: 33.333333333%; - border-left: 1px solid #cccccc; - border-right: 1px solid #cccccc; - color: #333333; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #f5f5f5; - background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6)); - background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6); - background-image: -o-linear-gradient(top, #ffffff, #e6e6e6); - background-image: linear-gradient(to bottom, #ffffff, #e6e6e6); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0); - border-color: #e6e6e6 #e6e6e6 #bfbfbf; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - *background-color: #e6e6e6; - /* Darken IE7 buttons by default so they stand out more given they won't have borders */ - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); -} -.bootstrap-switch .bootstrap-switch-label:hover, -.bootstrap-switch .bootstrap-switch-label:focus, -.bootstrap-switch .bootstrap-switch-label:active, -.bootstrap-switch .bootstrap-switch-label.active, -.bootstrap-switch .bootstrap-switch-label.disabled, -.bootstrap-switch .bootstrap-switch-label[disabled] { - color: #333333; - background-color: #e6e6e6; - *background-color: #d9d9d9; -} -.bootstrap-switch .bootstrap-switch-label:active, -.bootstrap-switch .bootstrap-switch-label.active { - background-color: #cccccc \9; -} -.bootstrap-switch input[type='radio'], -.bootstrap-switch input[type='checkbox'] { - position: absolute !important; - top: 0; - left: 0; - opacity: 0; - filter: alpha(opacity=0); - z-index: -1; -} -.bootstrap-switch input[type='radio'].form-control, -.bootstrap-switch input[type='checkbox'].form-control { - height: auto; -} diff --git a/chronos/static/images/Icons/bootstrap/bootstrap/dist/css/bootstrap2/bootstrap-switch.min.css b/chronos/static/images/Icons/bootstrap/bootstrap/dist/css/bootstrap2/bootstrap-switch.min.css deleted file mode 100644 index 4f1cfef..0000000 --- a/chronos/static/images/Icons/bootstrap/bootstrap/dist/css/bootstrap2/bootstrap-switch.min.css +++ /dev/null @@ -1,22 +0,0 @@ -/* ======================================================================== - * bootstrap-switch - v3.0.2 - * http://www.bootstrap-switch.org - * ======================================================================== - * Copyright 2012-2013 Mattia Larentis - * - * ======================================================================== - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ======================================================================== - */ - -.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-switch{display:inline-block;cursor:pointer;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;border:1px solid;border-color:rgba(0,0,0,.1)rgba(0,0,0,.1)rgba(0,0,0,.25);position:relative;text-align:left;overflow:hidden;line-height:8px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;vertical-align:middle;min-width:100px;-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-moz-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.bootstrap-switch.bootstrap-switch-mini{min-width:71px}.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-label{padding-bottom:4px;padding-top:4px;font-size:10px;line-height:9px}.bootstrap-switch.bootstrap-switch-small{min-width:79px}.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-label{padding-bottom:3px;padding-top:3px;font-size:12px;line-height:18px}.bootstrap-switch.bootstrap-switch-large{min-width:120px}.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-label{padding-bottom:9px;padding-top:9px;font-size:16px;line-height:normal}.bootstrap-switch.bootstrap-switch-animate .bootstrap-switch-container{-webkit-transition:margin-left .5s;-moz-transition:margin-left .5s;-o-transition:margin-left .5s;transition:margin-left .5s}.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-container{margin-left:0}.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-label{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px}.bootstrap-switch.bootstrap-switch-off .bootstrap-switch-container{margin-left:-50%}.bootstrap-switch.bootstrap-switch-off .bootstrap-switch-label{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px}.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-container{margin-left:-25%}.bootstrap-switch.bootstrap-switch-disabled,.bootstrap-switch.bootstrap-switch-readonly,.bootstrap-switch.bootstrap-switch-indeterminate{opacity:.5;filter:alpha(opacity=50);cursor:default!important}.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-label{cursor:default!important}.bootstrap-switch.bootstrap-switch-focused{border-color:rgba(82,168,236,.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6)}.bootstrap-switch .bootstrap-switch-container{display:inline-block;width:150%;top:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.bootstrap-switch .bootstrap-switch-handle-on,.bootstrap-switch .bootstrap-switch-handle-off,.bootstrap-switch .bootstrap-switch-label{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;cursor:pointer;display:inline-block!important;height:100%;padding-bottom:4px;padding-top:4px;font-size:14px;line-height:20px}.bootstrap-switch .bootstrap-switch-handle-on,.bootstrap-switch .bootstrap-switch-handle-off{text-align:center;z-index:1;width:33.33333333%}.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#005fcc;background-image:-moz-linear-gradient(top,#04c,#08c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#04c),to(#08c));background-image:-webkit-linear-gradient(top,#04c,#08c);background-image:-o-linear-gradient(top,#04c,#08c);background-image:linear-gradient(to bottom,#04c,#08c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0044cc', endColorstr='#ff0088cc', GradientType=0);border-color:#08c #08c #005580;border-color:rgba(0,0,0,.1)rgba(0,0,0,.1)rgba(0,0,0,.25);*background-color:#08c;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary:hover,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary:hover,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary:focus,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary:focus,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary:active,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary:active,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary.active,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary.active,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary.disabled,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary.disabled,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary[disabled],.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary[disabled]{color:#fff;background-color:#08c;*background-color:#0077b3}.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary:active,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary:active,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary.active,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary.active{background-color:#069 \9}.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#41a7c5;background-image:-moz-linear-gradient(top,#2f96b4,#5bc0de);background-image:-webkit-gradient(linear,0 0,0 100%,from(#2f96b4),to(#5bc0de));background-image:-webkit-linear-gradient(top,#2f96b4,#5bc0de);background-image:-o-linear-gradient(top,#2f96b4,#5bc0de);background-image:linear-gradient(to bottom,#2f96b4,#5bc0de);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff2f96b4', endColorstr='#ff5bc0de', GradientType=0);border-color:#5bc0de #5bc0de #28a1c5;border-color:rgba(0,0,0,.1)rgba(0,0,0,.1)rgba(0,0,0,.25);*background-color:#5bc0de;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info:hover,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info:hover,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info:focus,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info:focus,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info:active,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info:active,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info.active,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info.active,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info.disabled,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info.disabled,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info[disabled],.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info[disabled]{color:#fff;background-color:#5bc0de;*background-color:#46b8da}.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info:active,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info:active,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info.active,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info.active{background-color:#31b0d5 \9}.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#58b058;background-image:-moz-linear-gradient(top,#51a351,#62c462);background-image:-webkit-gradient(linear,0 0,0 100%,from(#51a351),to(#62c462));background-image:-webkit-linear-gradient(top,#51a351,#62c462);background-image:-o-linear-gradient(top,#51a351,#62c462);background-image:linear-gradient(to bottom,#51a351,#62c462);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff51a351', endColorstr='#ff62c462', GradientType=0);border-color:#62c462 #62c462 #3b9e3b;border-color:rgba(0,0,0,.1)rgba(0,0,0,.1)rgba(0,0,0,.25);*background-color:#62c462;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success:hover,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success:hover,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success:focus,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success:focus,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success:active,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success:active,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success.active,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success.active,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success.disabled,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success.disabled,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success[disabled],.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success[disabled]{color:#fff;background-color:#62c462;*background-color:#4fbd4f}.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success:active,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success:active,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success.active,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success.active{background-color:#42b142 \9}.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#f9a123;background-image:-moz-linear-gradient(top,#f89406,#fbb450);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f89406),to(#fbb450));background-image:-webkit-linear-gradient(top,#f89406,#fbb450);background-image:-o-linear-gradient(top,#f89406,#fbb450);background-image:linear-gradient(to bottom,#f89406,#fbb450);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff89406', endColorstr='#fffbb450', GradientType=0);border-color:#fbb450 #fbb450 #f89406;border-color:rgba(0,0,0,.1)rgba(0,0,0,.1)rgba(0,0,0,.25);*background-color:#fbb450;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning:hover,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning:hover,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning:focus,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning:focus,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning:active,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning:active,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning.active,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning.active,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning.disabled,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning.disabled,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning[disabled],.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning[disabled]{color:#fff;background-color:#fbb450;*background-color:#faa937}.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning:active,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning:active,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning.active,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning.active{background-color:#fa9f1e \9}.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#d14641;background-image:-moz-linear-gradient(top,#bd362f,#ee5f5b);background-image:-webkit-gradient(linear,0 0,0 100%,from(#bd362f),to(#ee5f5b));background-image:-webkit-linear-gradient(top,#bd362f,#ee5f5b);background-image:-o-linear-gradient(top,#bd362f,#ee5f5b);background-image:linear-gradient(to bottom,#bd362f,#ee5f5b);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffbd362f', endColorstr='#ffee5f5b', GradientType=0);border-color:#ee5f5b #ee5f5b #e51d18;border-color:rgba(0,0,0,.1)rgba(0,0,0,.1)rgba(0,0,0,.25);*background-color:#ee5f5b;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger:hover,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger:hover,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger:focus,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger:focus,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger:active,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger:active,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger.active,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger.active,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger.disabled,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger.disabled,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger[disabled],.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger[disabled]{color:#fff;background-color:#ee5f5b;*background-color:#ec4844}.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger:active,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger:active,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger.active,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger.active{background-color:#e9322d \9}.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default{color:#333;text-shadow:0 1px 1px rgba(255,255,255,.75);background-color:#f0f0f0;background-image:-moz-linear-gradient(top,#e6e6e6,#fff);background-image:-webkit-gradient(linear,0 0,0 100%,from(#e6e6e6),to(#fff));background-image:-webkit-linear-gradient(top,#e6e6e6,#fff);background-image:-o-linear-gradient(top,#e6e6e6,#fff);background-image:linear-gradient(to bottom,#e6e6e6,#fff);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6', endColorstr='#ffffffff', GradientType=0);border-color:#fff #fff #d9d9d9;border-color:rgba(0,0,0,.1)rgba(0,0,0,.1)rgba(0,0,0,.25);*background-color:#fff;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default:hover,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default:hover,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default:focus,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default:focus,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default:active,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default:active,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default.active,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default.active,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default.disabled,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default.disabled,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default[disabled],.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default[disabled]{color:#333;background-color:#fff;*background-color:#f2f2f2}.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default:active,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default:active,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default.active,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default.active{background-color:#e6e6e6 \9}.bootstrap-switch .bootstrap-switch-handle-on{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px}.bootstrap-switch .bootstrap-switch-handle-off{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px}.bootstrap-switch .bootstrap-switch-label{text-align:center;margin-top:-1px;margin-bottom:-1px;z-index:100;width:33.33333333%;border-left:1px solid #ccc;border-right:1px solid #ccc;color:#333;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#f5f5f5;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,.1)rgba(0,0,0,.1)rgba(0,0,0,.25);*background-color:#e6e6e6;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.bootstrap-switch .bootstrap-switch-label:hover,.bootstrap-switch .bootstrap-switch-label:focus,.bootstrap-switch .bootstrap-switch-label:active,.bootstrap-switch .bootstrap-switch-label.active,.bootstrap-switch .bootstrap-switch-label.disabled,.bootstrap-switch .bootstrap-switch-label[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.bootstrap-switch .bootstrap-switch-label:active,.bootstrap-switch .bootstrap-switch-label.active{background-color:#ccc \9}.bootstrap-switch input[type=radio],.bootstrap-switch input[type=checkbox]{position:absolute!important;top:0;left:0;opacity:0;filter:alpha(opacity=0);z-index:-1}.bootstrap-switch input[type=radio].form-control,.bootstrap-switch input[type=checkbox].form-control{height:auto} \ No newline at end of file diff --git a/chronos/static/images/Icons/bootstrap/bootstrap/dist/css/bootstrap3/bootstrap-switch.css b/chronos/static/images/Icons/bootstrap/bootstrap/dist/css/bootstrap3/bootstrap-switch.css deleted file mode 100644 index 8e9b762..0000000 --- a/chronos/static/images/Icons/bootstrap/bootstrap/dist/css/bootstrap3/bootstrap-switch.css +++ /dev/null @@ -1,206 +0,0 @@ -/* ======================================================================== - * bootstrap-switch - v3.0.2 - * http://www.bootstrap-switch.org - * ======================================================================== - * Copyright 2012-2013 Mattia Larentis - * - * ======================================================================== - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ======================================================================== - */ - -.bootstrap-switch { - display: inline-block; - cursor: pointer; - border-radius: 4px; - border: 1px solid; - border-color: #cccccc; - position: relative; - text-align: left; - overflow: hidden; - line-height: 8px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - vertical-align: middle; - min-width: 100px; - -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; -} -.bootstrap-switch.bootstrap-switch-mini { - min-width: 71px; -} -.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-on, -.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-off, -.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-label { - padding-bottom: 4px; - padding-top: 4px; - font-size: 10px; - line-height: 9px; -} -.bootstrap-switch.bootstrap-switch-small { - min-width: 79px; -} -.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-on, -.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-off, -.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-label { - padding-bottom: 3px; - padding-top: 3px; - font-size: 12px; - line-height: 18px; -} -.bootstrap-switch.bootstrap-switch-large { - min-width: 120px; -} -.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-on, -.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-off, -.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-label { - padding-bottom: 9px; - padding-top: 9px; - font-size: 16px; - line-height: normal; -} -.bootstrap-switch.bootstrap-switch-animate .bootstrap-switch-container { - -webkit-transition: margin-left 0.5s; - transition: margin-left 0.5s; -} -.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-container { - margin-left: 0%; -} -.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-label { - border-bottom-right-radius: 3px; - border-top-right-radius: 3px; -} -.bootstrap-switch.bootstrap-switch-off .bootstrap-switch-container { - margin-left: -50%; -} -.bootstrap-switch.bootstrap-switch-off .bootstrap-switch-label { - border-bottom-left-radius: 3px; - border-top-left-radius: 3px; -} -.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-container { - margin-left: -25%; -} -.bootstrap-switch.bootstrap-switch-disabled, -.bootstrap-switch.bootstrap-switch-readonly, -.bootstrap-switch.bootstrap-switch-indeterminate { - opacity: 0.5; - filter: alpha(opacity=50); - cursor: default !important; -} -.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-on, -.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-on, -.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-on, -.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-off, -.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-off, -.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-off, -.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-label, -.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-label, -.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-label { - cursor: default !important; -} -.bootstrap-switch.bootstrap-switch-focused { - border-color: #66afe9; - outline: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); -} -.bootstrap-switch .bootstrap-switch-container { - display: inline-block; - width: 150%; - top: 0; - border-radius: 4px; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.bootstrap-switch .bootstrap-switch-handle-on, -.bootstrap-switch .bootstrap-switch-handle-off, -.bootstrap-switch .bootstrap-switch-label { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - cursor: pointer; - display: inline-block !important; - height: 100%; - padding-bottom: 4px; - padding-top: 4px; - font-size: 14px; - line-height: 20px; -} -.bootstrap-switch .bootstrap-switch-handle-on, -.bootstrap-switch .bootstrap-switch-handle-off { - text-align: center; - z-index: 1; - width: 33.333333333%; -} -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary { - color: #fff; - background: #428bca; -} -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info { - color: #fff; - background: #5bc0de; -} -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success { - color: #fff; - background: #5cb85c; -} -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning { - background: #f0ad4e; - color: #fff; -} -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger { - color: #fff; - background: #d9534f; -} -.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default, -.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default { - color: #000; - background: #eeeeee; -} -.bootstrap-switch .bootstrap-switch-handle-on { - border-bottom-left-radius: 3px; - border-top-left-radius: 3px; -} -.bootstrap-switch .bootstrap-switch-handle-off { - border-bottom-right-radius: 3px; - border-top-right-radius: 3px; -} -.bootstrap-switch .bootstrap-switch-label { - text-align: center; - margin-top: -1px; - margin-bottom: -1px; - z-index: 100; - width: 33.333333333%; - color: #333333; - background: #ffffff; -} -.bootstrap-switch input[type='radio'], -.bootstrap-switch input[type='checkbox'] { - position: absolute !important; - top: 0; - left: 0; - opacity: 0; - filter: alpha(opacity=0); - z-index: -1; -} -.bootstrap-switch input[type='radio'].form-control, -.bootstrap-switch input[type='checkbox'].form-control { - height: auto; -} diff --git a/chronos/static/images/Icons/bootstrap/bootstrap/dist/css/bootstrap3/bootstrap-switch.min.css b/chronos/static/images/Icons/bootstrap/bootstrap/dist/css/bootstrap3/bootstrap-switch.min.css deleted file mode 100644 index 1f5986d..0000000 --- a/chronos/static/images/Icons/bootstrap/bootstrap/dist/css/bootstrap3/bootstrap-switch.min.css +++ /dev/null @@ -1,22 +0,0 @@ -/* ======================================================================== - * bootstrap-switch - v3.0.2 - * http://www.bootstrap-switch.org - * ======================================================================== - * Copyright 2012-2013 Mattia Larentis - * - * ======================================================================== - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ======================================================================== - */ - -.bootstrap-switch{display:inline-block;cursor:pointer;border-radius:4px;border:1px solid;border-color:#ccc;position:relative;text-align:left;overflow:hidden;line-height:8px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;min-width:100px;-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.bootstrap-switch.bootstrap-switch-mini{min-width:71px}.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-label{padding-bottom:4px;padding-top:4px;font-size:10px;line-height:9px}.bootstrap-switch.bootstrap-switch-small{min-width:79px}.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-label{padding-bottom:3px;padding-top:3px;font-size:12px;line-height:18px}.bootstrap-switch.bootstrap-switch-large{min-width:120px}.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-label{padding-bottom:9px;padding-top:9px;font-size:16px;line-height:normal}.bootstrap-switch.bootstrap-switch-animate .bootstrap-switch-container{-webkit-transition:margin-left .5s;transition:margin-left .5s}.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-container{margin-left:0}.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-label{border-bottom-right-radius:3px;border-top-right-radius:3px}.bootstrap-switch.bootstrap-switch-off .bootstrap-switch-container{margin-left:-50%}.bootstrap-switch.bootstrap-switch-off .bootstrap-switch-label{border-bottom-left-radius:3px;border-top-left-radius:3px}.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-container{margin-left:-25%}.bootstrap-switch.bootstrap-switch-disabled,.bootstrap-switch.bootstrap-switch-readonly,.bootstrap-switch.bootstrap-switch-indeterminate{opacity:.5;filter:alpha(opacity=50);cursor:default!important}.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-label{cursor:default!important}.bootstrap-switch.bootstrap-switch-focused{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.bootstrap-switch .bootstrap-switch-container{display:inline-block;width:150%;top:0;border-radius:4px;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.bootstrap-switch .bootstrap-switch-handle-on,.bootstrap-switch .bootstrap-switch-handle-off,.bootstrap-switch .bootstrap-switch-label{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;cursor:pointer;display:inline-block!important;height:100%;padding-bottom:4px;padding-top:4px;font-size:14px;line-height:20px}.bootstrap-switch .bootstrap-switch-handle-on,.bootstrap-switch .bootstrap-switch-handle-off{text-align:center;z-index:1;width:33.33333333%}.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary{color:#fff;background:#428bca}.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info{color:#fff;background:#5bc0de}.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success{color:#fff;background:#5cb85c}.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning{background:#f0ad4e;color:#fff}.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger{color:#fff;background:#d9534f}.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default{color:#000;background:#eee}.bootstrap-switch .bootstrap-switch-handle-on{border-bottom-left-radius:3px;border-top-left-radius:3px}.bootstrap-switch .bootstrap-switch-handle-off{border-bottom-right-radius:3px;border-top-right-radius:3px}.bootstrap-switch .bootstrap-switch-label{text-align:center;margin-top:-1px;margin-bottom:-1px;z-index:100;width:33.33333333%;color:#333;background:#fff}.bootstrap-switch input[type=radio],.bootstrap-switch input[type=checkbox]{position:absolute!important;top:0;left:0;opacity:0;filter:alpha(opacity=0);z-index:-1}.bootstrap-switch input[type=radio].form-control,.bootstrap-switch input[type=checkbox].form-control{height:auto} \ No newline at end of file diff --git a/chronos/static/images/Icons/bootstrap/bootstrap/dist/js/bootstrap-switch.js b/chronos/static/images/Icons/bootstrap/bootstrap/dist/js/bootstrap-switch.js deleted file mode 100644 index 778a25b..0000000 --- a/chronos/static/images/Icons/bootstrap/bootstrap/dist/js/bootstrap-switch.js +++ /dev/null @@ -1,532 +0,0 @@ -/* ======================================================================== - * bootstrap-switch - v3.0.2 - * http://www.bootstrap-switch.org - * ======================================================================== - * Copyright 2012-2013 Mattia Larentis - * - * ======================================================================== - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ======================================================================== - */ - -(function() { - var __slice = [].slice; - - (function($, window) { - "use strict"; - var BootstrapSwitch; - BootstrapSwitch = (function() { - function BootstrapSwitch(element, options) { - if (options == null) { - options = {}; - } - this.$element = $(element); - this.options = $.extend({}, $.fn.bootstrapSwitch.defaults, { - state: this.$element.is(":checked"), - size: this.$element.data("size"), - animate: this.$element.data("animate"), - disabled: this.$element.is(":disabled"), - readonly: this.$element.is("[readonly]"), - indeterminate: this.$element.data("indeterminate"), - onColor: this.$element.data("on-color"), - offColor: this.$element.data("off-color"), - onText: this.$element.data("on-text"), - offText: this.$element.data("off-text"), - labelText: this.$element.data("label-text"), - baseClass: this.$element.data("base-class"), - wrapperClass: this.$element.data("wrapper-class"), - radioAllOff: this.$element.data("radio-all-off") - }, options); - this.$wrapper = $("

", { - "class": (function(_this) { - return function() { - var classes; - classes = ["" + _this.options.baseClass].concat(_this._getClasses(_this.options.wrapperClass)); - classes.push(_this.options.state ? "" + _this.options.baseClass + "-on" : "" + _this.options.baseClass + "-off"); - if (_this.options.size != null) { - classes.push("" + _this.options.baseClass + "-" + _this.options.size); - } - if (_this.options.animate) { - classes.push("" + _this.options.baseClass + "-animate"); - } - if (_this.options.disabled) { - classes.push("" + _this.options.baseClass + "-disabled"); - } - if (_this.options.readonly) { - classes.push("" + _this.options.baseClass + "-readonly"); - } - if (_this.options.indeterminate) { - classes.push("" + _this.options.baseClass + "-indeterminate"); - } - if (_this.$element.attr("id")) { - classes.push("" + _this.options.baseClass + "-id-" + (_this.$element.attr("id"))); - } - return classes.join(" "); - }; - })(this)() - }); - this.$container = $("
", { - "class": "" + this.options.baseClass + "-container" - }); - this.$on = $("", { - html: this.options.onText, - "class": "" + this.options.baseClass + "-handle-on " + this.options.baseClass + "-" + this.options.onColor - }); - this.$off = $("", { - html: this.options.offText, - "class": "" + this.options.baseClass + "-handle-off " + this.options.baseClass + "-" + this.options.offColor - }); - this.$label = $("
",{"class":function(t){return function(){var e;return e=[""+t.options.baseClass].concat(t._getClasses(t.options.wrapperClass)),e.push(t.options.state?""+t.options.baseClass+"-on":""+t.options.baseClass+"-off"),null!=t.options.size&&e.push(""+t.options.baseClass+"-"+t.options.size),t.options.animate&&e.push(""+t.options.baseClass+"-animate"),t.options.disabled&&e.push(""+t.options.baseClass+"-disabled"),t.options.readonly&&e.push(""+t.options.baseClass+"-readonly"),t.options.indeterminate&&e.push(""+t.options.baseClass+"-indeterminate"),t.$element.attr("id")&&e.push(""+t.options.baseClass+"-id-"+t.$element.attr("id")),e.join(" ")}}(this)()}),this.$container=e("
",{"class":""+this.options.baseClass+"-container"}),this.$on=e("",{html:this.options.onText,"class":""+this.options.baseClass+"-handle-on "+this.options.baseClass+"-"+this.options.onColor}),this.$off=e("",{html:this.options.offText,"class":""+this.options.baseClass+"-handle-off "+this.options.baseClass+"-"+this.options.offColor}),this.$label=e(""}H+=I.r;I=I.parent}while(I!=W.parent);if(U.eE){D+=k(X)}C="";if(W.starts){P(W.starts,"")}return U.rE?0:X.length}if(A(X,I)){throw new Error('Illegal lexeme "'+X+'" for mode "'+(I.cN||"")+'"')}C+=X;return X.length||1}var M=j(S);if(!M){throw new Error('Unknown language: "'+S+'"')}m(M);var I=R||M;var D="";for(var K=I;K!=M;K=K.parent){if(K.cN){D=w(K.cN,D,true)}}var C="";var H=0;try{var B,y,x=0;while(true){I.t.lastIndex=x;B=I.t.exec(L);if(!B){break}y=G(L.substr(x,B.index-x),B[0]);x=B.index+y}G(L.substr(x));for(var K=I;K.parent;K=K.parent){if(K.cN){D+=""}}return{r:H,value:D,language:S,top:I}}catch(O){if(O.message.indexOf("Illegal")!=-1){return{r:0,value:k(L)}}else{throw O}}}function g(y,x){x=x||b.languages||Object.keys(f);var v={r:0,value:k(y)};var w=v;x.forEach(function(z){if(!j(z)){return}var A=c(z,y,false);A.language=z;if(A.r>w.r){w=A}if(A.r>v.r){w=v;v=A}});if(w.language){v.second_best=w}return v}function h(v){if(b.tabReplace){v=v.replace(/^((<[^>]+>|\t)+)/gm,function(w,z,y,x){return z.replace(/\t/g,b.tabReplace)})}if(b.useBR){v=v.replace(/\n/g,"
")}return v}function p(z){var y=d(z);var A=r(z);if(A=="no-highlight"){return}var v=A?c(A,y,true):g(y);var w=u(z);if(w.length){var x=document.createElementNS("http://www.w3.org/1999/xhtml","pre");x.innerHTML=v.value;v.value=q(w,u(x),y)}v.value=h(v.value);z.innerHTML=v.value;z.className+=" hljs "+(!A&&v.language||"");z.result={language:v.language,re:v.r};if(v.second_best){z.second_best={language:v.second_best.language,re:v.second_best.r}}}var b={classPrefix:"hljs-",tabReplace:null,useBR:false,languages:undefined};function s(v){b=o(b,v)}function l(){if(l.called){return}l.called=true;var v=document.querySelectorAll("pre code");Array.prototype.forEach.call(v,p)}function a(){addEventListener("DOMContentLoaded",l,false);addEventListener("load",l,false)}var f={};var n={};function e(v,x){var w=f[v]=x(this);if(w.aliases){w.aliases.forEach(function(y){n[y]=v})}}function j(v){return f[v]||f[n[v]]}this.highlight=c;this.highlightAuto=g;this.fixMarkup=h;this.highlightBlock=p;this.configure=s;this.initHighlighting=l;this.initHighlightingOnLoad=a;this.registerLanguage=e;this.getLanguage=j;this.inherit=o;this.IR="[a-zA-Z][a-zA-Z0-9_]*";this.UIR="[a-zA-Z_][a-zA-Z0-9_]*";this.NR="\\b\\d+(\\.\\d+)?";this.CNR="(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)";this.BNR="\\b(0b[01]+)";this.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";this.BE={b:"\\\\[\\s\\S]",r:0};this.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[this.BE]};this.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[this.BE]};this.CLCM={cN:"comment",b:"//",e:"$"};this.CBLCLM={cN:"comment",b:"/\\*",e:"\\*/"};this.HCM={cN:"comment",b:"#",e:"$"};this.NM={cN:"number",b:this.NR,r:0};this.CNM={cN:"number",b:this.CNR,r:0};this.BNM={cN:"number",b:this.BNR,r:0};this.REGEXP_MODE={cN:"regexp",b:/\//,e:/\/[gim]*/,i:/\n/,c:[this.BE,{b:/\[/,e:/\]/,r:0,c:[this.BE]}]};this.TM={cN:"title",b:this.IR,r:0};this.UTM={cN:"title",b:this.UIR,r:0}}();hljs.registerLanguage("bash",function(b){var a={cN:"variable",v:[{b:/\$[\w\d#@][\w\d_]*/},{b:/\$\{(.*?)\}/}]};var d={cN:"string",b:/"/,e:/"/,c:[b.BE,a,{cN:"variable",b:/\$\(/,e:/\)/,c:[b.BE]}]};var c={cN:"string",b:/'/,e:/'/};return{l:/-?[a-z\.]+/,k:{keyword:"if then else elif fi for break continue while in do done exit return set declare case esac export exec",literal:"true false",built_in:"printf echo read cd pwd pushd popd dirs let eval unset typeset readonly getopts source shopt caller type hash bind help sudo",operator:"-ne -eq -lt -gt -f -d -e -s -l -a"},c:[{cN:"shebang",b:/^#![^\n]+sh\s*$/,r:10},{cN:"function",b:/\w[\w\d_]*\s*\(\s*\)\s*\{/,rB:true,c:[b.inherit(b.TM,{b:/\w[\w\d_]*/})],r:0},b.HCM,b.NM,d,c,a]}});hljs.registerLanguage("javascript",function(a){return{aliases:["js"],k:{keyword:"in if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const class",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require"},c:[{cN:"pi",b:/^\s*('|")use strict('|")/,r:10},a.ASM,a.QSM,a.CLCM,a.CBLCLM,a.CNM,{b:"("+a.RSR+"|\\b(case|return|throw)\\b)\\s*",k:"return throw case",c:[a.CLCM,a.CBLCLM,a.REGEXP_MODE,{b:/;/,r:0,sL:"xml"}],r:0},{cN:"function",bK:"function",e:/\{/,c:[a.inherit(a.TM,{b:/[A-Za-z$_][0-9A-Za-z$_]*/}),{cN:"params",b:/\(/,e:/\)/,c:[a.CLCM,a.CBLCLM],i:/["'\(]/}],i:/\[|%/},{b:/\$[(.]/},{b:"\\."+a.IR,r:0}]}});hljs.registerLanguage("xml",function(a){var c="[A-Za-z0-9\\._:-]+";var d={b:/<\?(php)?(?!\w)/,e:/\?>/,sL:"php",subLanguageMode:"continuous"};var b={eW:true,i:/]+/}]}]}]};return{aliases:["html"],cI:true,c:[{cN:"doctype",b:"",r:10,c:[{b:"\\[",e:"\\]"}]},{cN:"comment",b:"",r:10},{cN:"cdata",b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"tag",b:"|$)",e:">",k:{title:"style"},c:[b],starts:{e:"",rE:true,sL:"css"}},{cN:"tag",b:"|$)",e:">",k:{title:"script"},c:[b],starts:{e:"<\/script>",rE:true,sL:"javascript"}},{b:"<%",e:"%>",sL:"vbscript"},d,{cN:"pi",b:/<\?\w+/,e:/\?>/,r:10},{cN:"tag",b:"",c:[{cN:"title",b:"[^ /><]+",r:0},b]}]}}); diff --git a/chronos/static/images/Icons/bootstrap/bootstrap/docs/js/jquery.min.js b/chronos/static/images/Icons/bootstrap/bootstrap/docs/js/jquery.min.js deleted file mode 100644 index 046e93a..0000000 --- a/chronos/static/images/Icons/bootstrap/bootstrap/docs/js/jquery.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! jQuery v1.11.0 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ -!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k="".trim,l={},m="1.11.0",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(n.isPlainObject(c)||(b=n.isArray(c)))?(b?(b=!1,f=a&&n.isArray(a)?a:[]):f=a&&n.isPlainObject(a)?a:{},g[d]=n.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray||function(a){return"array"===n.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(l.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&n.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:k&&!k.call("\ufeff\xa0")?function(a){return null==a?"":k.call(a)}:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),n.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||n.guid++,e):void 0},now:function(){return+new Date},support:l}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s="sizzle"+-new Date,t=a.document,u=0,v=0,w=eb(),x=eb(),y=eb(),z=function(a,b){return a===b&&(j=!0),0},A="undefined",B=1<<31,C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=D.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",M=L.replace("w","w#"),N="\\["+K+"*("+L+")"+K+"*(?:([*^$|!~]?=)"+K+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+M+")|)|)"+K+"*\\]",O=":("+L+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+N.replace(3,8)+")*)|.*)\\)|)",P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(O),U=new RegExp("^"+M+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L.replace("w","w*")+")"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=/'|\\/g,ab=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),bb=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{G.apply(D=H.call(t.childNodes),t.childNodes),D[t.childNodes.length].nodeType}catch(cb){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function db(a,b,d,e){var f,g,h,i,j,m,p,q,u,v;if((b?b.ownerDocument||b:t)!==l&&k(b),b=b||l,d=d||[],!a||"string"!=typeof a)return d;if(1!==(i=b.nodeType)&&9!==i)return[];if(n&&!e){if(f=Z.exec(a))if(h=f[1]){if(9===i){if(g=b.getElementById(h),!g||!g.parentNode)return d;if(g.id===h)return d.push(g),d}else if(b.ownerDocument&&(g=b.ownerDocument.getElementById(h))&&r(b,g)&&g.id===h)return d.push(g),d}else{if(f[2])return G.apply(d,b.getElementsByTagName(a)),d;if((h=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(h)),d}if(c.qsa&&(!o||!o.test(a))){if(q=p=s,u=b,v=9===i&&a,1===i&&"object"!==b.nodeName.toLowerCase()){m=ob(a),(p=b.getAttribute("id"))?q=p.replace(_,"\\$&"):b.setAttribute("id",q),q="[id='"+q+"'] ",j=m.length;while(j--)m[j]=q+pb(m[j]);u=$.test(a)&&mb(b.parentNode)||b,v=m.join(",")}if(v)try{return G.apply(d,u.querySelectorAll(v)),d}catch(w){}finally{p||b.removeAttribute("id")}}}return xb(a.replace(P,"$1"),b,d,e)}function eb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function fb(a){return a[s]=!0,a}function gb(a){var b=l.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function hb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function ib(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||B)-(~a.sourceIndex||B);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function jb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function kb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function lb(a){return fb(function(b){return b=+b,fb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function mb(a){return a&&typeof a.getElementsByTagName!==A&&a}c=db.support={},f=db.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},k=db.setDocument=function(a){var b,e=a?a.ownerDocument||a:t,g=e.defaultView;return e!==l&&9===e.nodeType&&e.documentElement?(l=e,m=e.documentElement,n=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){k()},!1):g.attachEvent&&g.attachEvent("onunload",function(){k()})),c.attributes=gb(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=gb(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(e.getElementsByClassName)&&gb(function(a){return a.innerHTML="
",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=gb(function(a){return m.appendChild(a).id=s,!e.getElementsByName||!e.getElementsByName(s).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==A&&n){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ab,bb);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ab,bb);return function(a){var c=typeof a.getAttributeNode!==A&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==A?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==A&&n?b.getElementsByClassName(a):void 0},p=[],o=[],(c.qsa=Y.test(e.querySelectorAll))&&(gb(function(a){a.innerHTML="",a.querySelectorAll("[t^='']").length&&o.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||o.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll(":checked").length||o.push(":checked")}),gb(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&o.push("name"+K+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||o.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),o.push(",.*:")})),(c.matchesSelector=Y.test(q=m.webkitMatchesSelector||m.mozMatchesSelector||m.oMatchesSelector||m.msMatchesSelector))&&gb(function(a){c.disconnectedMatch=q.call(a,"div"),q.call(a,"[s!='']:x"),p.push("!=",O)}),o=o.length&&new RegExp(o.join("|")),p=p.length&&new RegExp(p.join("|")),b=Y.test(m.compareDocumentPosition),r=b||Y.test(m.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},z=b?function(a,b){if(a===b)return j=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===t&&r(t,a)?-1:b===e||b.ownerDocument===t&&r(t,b)?1:i?I.call(i,a)-I.call(i,b):0:4&d?-1:1)}:function(a,b){if(a===b)return j=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],k=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:i?I.call(i,a)-I.call(i,b):0;if(f===g)return ib(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)k.unshift(c);while(h[d]===k[d])d++;return d?ib(h[d],k[d]):h[d]===t?-1:k[d]===t?1:0},e):l},db.matches=function(a,b){return db(a,null,null,b)},db.matchesSelector=function(a,b){if((a.ownerDocument||a)!==l&&k(a),b=b.replace(S,"='$1']"),!(!c.matchesSelector||!n||p&&p.test(b)||o&&o.test(b)))try{var d=q.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return db(b,l,null,[a]).length>0},db.contains=function(a,b){return(a.ownerDocument||a)!==l&&k(a),r(a,b)},db.attr=function(a,b){(a.ownerDocument||a)!==l&&k(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!n):void 0;return void 0!==f?f:c.attributes||!n?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},db.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},db.uniqueSort=function(a){var b,d=[],e=0,f=0;if(j=!c.detectDuplicates,i=!c.sortStable&&a.slice(0),a.sort(z),j){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return i=null,a},e=db.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=db.selectors={cacheLength:50,createPseudo:fb,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ab,bb),a[3]=(a[4]||a[5]||"").replace(ab,bb),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||db.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&db.error(a[0]),a},PSEUDO:function(a){var b,c=!a[5]&&a[2];return V.CHILD.test(a[0])?null:(a[3]&&void 0!==a[4]?a[2]=a[4]:c&&T.test(c)&&(b=ob(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ab,bb).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=w[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&w(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==A&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=db.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),t=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&t){k=q[s]||(q[s]={}),j=k[a]||[],n=j[0]===u&&j[1],m=j[0]===u&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[u,n,m];break}}else if(t&&(j=(b[s]||(b[s]={}))[a])&&j[0]===u)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(t&&((l[s]||(l[s]={}))[a]=[u,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||db.error("unsupported pseudo: "+a);return e[s]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?fb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:fb(function(a){var b=[],c=[],d=g(a.replace(P,"$1"));return d[s]?fb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:fb(function(a){return function(b){return db(a,b).length>0}}),contains:fb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:fb(function(a){return U.test(a||"")||db.error("unsupported lang: "+a),a=a.replace(ab,bb).toLowerCase(),function(b){var c;do if(c=n?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===m},focus:function(a){return a===l.activeElement&&(!l.hasFocus||l.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:lb(function(){return[0]}),last:lb(function(a,b){return[b-1]}),eq:lb(function(a,b,c){return[0>c?c+b:c]}),even:lb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:lb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:lb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:lb(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function qb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=v++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[u,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[s]||(b[s]={}),(h=i[d])&&h[0]===u&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function rb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function sb(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function tb(a,b,c,d,e,f){return d&&!d[s]&&(d=tb(d)),e&&!e[s]&&(e=tb(e,f)),fb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||wb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:sb(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=sb(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=sb(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ub(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],i=g||d.relative[" "],j=g?1:0,k=qb(function(a){return a===b},i,!0),l=qb(function(a){return I.call(b,a)>-1},i,!0),m=[function(a,c,d){return!g&&(d||c!==h)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>j;j++)if(c=d.relative[a[j].type])m=[qb(rb(m),c)];else{if(c=d.filter[a[j].type].apply(null,a[j].matches),c[s]){for(e=++j;f>e;e++)if(d.relative[a[e].type])break;return tb(j>1&&rb(m),j>1&&pb(a.slice(0,j-1).concat({value:" "===a[j-2].type?"*":""})).replace(P,"$1"),c,e>j&&ub(a.slice(j,e)),f>e&&ub(a=a.slice(e)),f>e&&pb(a))}m.push(c)}return rb(m)}function vb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,i,j,k){var m,n,o,p=0,q="0",r=f&&[],s=[],t=h,v=f||e&&d.find.TAG("*",k),w=u+=null==t?1:Math.random()||.1,x=v.length;for(k&&(h=g!==l&&g);q!==x&&null!=(m=v[q]);q++){if(e&&m){n=0;while(o=a[n++])if(o(m,g,i)){j.push(m);break}k&&(u=w)}c&&((m=!o&&m)&&p--,f&&r.push(m))}if(p+=q,c&&q!==p){n=0;while(o=b[n++])o(r,s,g,i);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=E.call(j));s=sb(s)}G.apply(j,s),k&&!f&&s.length>0&&p+b.length>1&&db.uniqueSort(j)}return k&&(u=w,h=t),r};return c?fb(f):f}g=db.compile=function(a,b){var c,d=[],e=[],f=y[a+" "];if(!f){b||(b=ob(a)),c=b.length;while(c--)f=ub(b[c]),f[s]?d.push(f):e.push(f);f=y(a,vb(e,d))}return f};function wb(a,b,c){for(var d=0,e=b.length;e>d;d++)db(a,b[d],c);return c}function xb(a,b,e,f){var h,i,j,k,l,m=ob(a);if(!f&&1===m.length){if(i=m[0]=m[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&c.getById&&9===b.nodeType&&n&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(ab,bb),b)||[])[0],!b)return e;a=a.slice(i.shift().value.length)}h=V.needsContext.test(a)?0:i.length;while(h--){if(j=i[h],d.relative[k=j.type])break;if((l=d.find[k])&&(f=l(j.matches[0].replace(ab,bb),$.test(i[0].type)&&mb(b.parentNode)||b))){if(i.splice(h,1),a=f.length&&pb(i),!a)return G.apply(e,f),e;break}}}return g(a,m)(f,b,!n,e,$.test(a)&&mb(b.parentNode)||b),e}return c.sortStable=s.split("").sort(z).join("")===s,c.detectDuplicates=!!j,k(),c.sortDetached=gb(function(a){return 1&a.compareDocumentPosition(l.createElement("div"))}),gb(function(a){return a.innerHTML="
","#"===a.firstChild.getAttribute("href")})||hb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&gb(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||hb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),gb(function(a){return null==a.getAttribute("disabled")})||hb(J,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),db}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return n.inArray(a,b)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;e>b;b++)if(n.contains(d[b],this))return!0}));for(b=0;e>b;b++)n.find(a,d[b],c);return c=this.pushStack(e>1?n.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=a.document,A=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,B=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:A.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:z,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=z.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return y.find(a);this.length=1,this[0]=d}return this.context=z,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};B.prototype=n.fn,y=n(z);var C=/^(?:parents|prev(?:Until|All))/,D={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!n(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b,c=n(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(n.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?n.inArray(this[0],n(a)):n.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function E(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return E(a,"nextSibling")},prev:function(a){return E(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return n.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(D[a]||(e=n.unique(e)),C.test(a)&&(e=e.reverse())),this.pushStack(e)}});var F=/\S+/g,G={};function H(a){var b=G[a]={};return n.each(a.match(F)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?G[a]||H(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&n.each(arguments,function(a,c){var d;while((d=n.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var I;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){if(a===!0?!--n.readyWait:!n.isReady){if(!z.body)return setTimeout(n.ready);n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(z,[n]),n.fn.trigger&&n(z).trigger("ready").off("ready"))}}});function J(){z.addEventListener?(z.removeEventListener("DOMContentLoaded",K,!1),a.removeEventListener("load",K,!1)):(z.detachEvent("onreadystatechange",K),a.detachEvent("onload",K))}function K(){(z.addEventListener||"load"===event.type||"complete"===z.readyState)&&(J(),n.ready())}n.ready.promise=function(b){if(!I)if(I=n.Deferred(),"complete"===z.readyState)setTimeout(n.ready);else if(z.addEventListener)z.addEventListener("DOMContentLoaded",K,!1),a.addEventListener("load",K,!1);else{z.attachEvent("onreadystatechange",K),a.attachEvent("onload",K);var c=!1;try{c=null==a.frameElement&&z.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!n.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}J(),n.ready()}}()}return I.promise(b)};var L="undefined",M;for(M in n(l))break;l.ownLast="0"!==M,l.inlineBlockNeedsLayout=!1,n(function(){var a,b,c=z.getElementsByTagName("body")[0];c&&(a=z.createElement("div"),a.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",b=z.createElement("div"),c.appendChild(a).appendChild(b),typeof b.style.zoom!==L&&(b.style.cssText="border:0;margin:0;width:1px;padding:1px;display:inline;zoom:1",(l.inlineBlockNeedsLayout=3===b.offsetWidth)&&(c.style.zoom=1)),c.removeChild(a),a=b=null)}),function(){var a=z.createElement("div");if(null==l.deleteExpando){l.deleteExpando=!0;try{delete a.test}catch(b){l.deleteExpando=!1}}a=null}(),n.acceptData=function(a){var b=n.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(O,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}n.data(a,b,c)}else c=void 0}return c}function Q(a){var b;for(b in a)if(("data"!==b||!n.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function R(a,b,d,e){if(n.acceptData(a)){var f,g,h=n.expando,i=a.nodeType,j=i?n.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||n.guid++:h),j[k]||(j[k]=i?{}:{toJSON:n.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=n.extend(j[k],b):j[k].data=n.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[n.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[n.camelCase(b)])):f=g,f -}}function S(a,b,c){if(n.acceptData(a)){var d,e,f=a.nodeType,g=f?n.cache:a,h=f?a[n.expando]:n.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){n.isArray(b)?b=b.concat(n.map(b,n.camelCase)):b in d?b=[b]:(b=n.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!Q(d):!n.isEmptyObject(d))return}(c||(delete g[h].data,Q(g[h])))&&(f?n.cleanData([a],!0):l.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}n.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?n.cache[a[n.expando]]:a[n.expando],!!a&&!Q(a)},data:function(a,b,c){return R(a,b,c)},removeData:function(a,b){return S(a,b)},_data:function(a,b,c){return R(a,b,c,!0)},_removeData:function(a,b){return S(a,b,!0)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=n.data(f),1===f.nodeType&&!n._data(f,"parsedAttrs"))){c=g.length;while(c--)d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d]));n._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){n.data(this,a)}):arguments.length>1?this.each(function(){n.data(this,a,b)}):f?P(f,a,n.data(f,a)):void 0},removeData:function(a){return this.each(function(){n.removeData(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=n._data(a,b),c&&(!d||n.isArray(c)?d=n._data(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return n._data(a,c)||n._data(a,c,{empty:n.Callbacks("once memory").add(function(){n._removeData(a,b+"queue"),n._removeData(a,c)})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},X=/^(?:checkbox|radio)$/i;!function(){var a=z.createDocumentFragment(),b=z.createElement("div"),c=z.createElement("input");if(b.setAttribute("className","t"),b.innerHTML="
a",l.leadingWhitespace=3===b.firstChild.nodeType,l.tbody=!b.getElementsByTagName("tbody").length,l.htmlSerialize=!!b.getElementsByTagName("link").length,l.html5Clone="<:nav>"!==z.createElement("nav").cloneNode(!0).outerHTML,c.type="checkbox",c.checked=!0,a.appendChild(c),l.appendChecked=c.checked,b.innerHTML="",l.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,a.appendChild(b),b.innerHTML="",l.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,l.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){l.noCloneEvent=!1}),b.cloneNode(!0).click()),null==l.deleteExpando){l.deleteExpando=!0;try{delete b.test}catch(d){l.deleteExpando=!1}}a=b=c=null}(),function(){var b,c,d=z.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(l[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),l[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var Y=/^(?:input|select|textarea)$/i,Z=/^key/,$=/^(?:mouse|contextmenu)|click/,_=/^(?:focusinfocus|focusoutblur)$/,ab=/^([^.]*)(?:\.(.+)|)$/;function bb(){return!0}function cb(){return!1}function db(){try{return z.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=n.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof n===L||a&&n.event.triggered===a.type?void 0:n.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(F)||[""],h=b.length;while(h--)f=ab.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=n.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=n.event.special[o]||{},l=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},i),(m=g[o])||(m=g[o]=[],m.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,l):m.push(l),n.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n.hasData(a)&&n._data(a);if(r&&(k=r.events)){b=(b||"").match(F)||[""],j=b.length;while(j--)if(h=ab.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=m.length;while(f--)g=m[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(m.splice(f,1),g.selector&&m.delegateCount--,l.remove&&l.remove.call(a,g));i&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(k)&&(delete r.handle,n._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,m,o=[d||z],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||z,3!==d.nodeType&&8!==d.nodeType&&!_.test(p+n.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[n.expando]?b:new n.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),k=n.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!n.isWindow(d)){for(i=k.delegateType||p,_.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||z)&&o.push(l.defaultView||l.parentWindow||a)}m=0;while((h=o[m++])&&!b.isPropagationStopped())b.type=m>1?i:k.bindType||p,f=(n._data(h,"events")||{})[b.type]&&n._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&n.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&n.acceptData(d)&&g&&d[p]&&!n.isWindow(d)){l=d[g],l&&(d[g]=null),n.event.triggered=p;try{d[p]()}catch(r){}n.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(n._data(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((n.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?n(c,this).index(i)>=0:n.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h]","i"),ib=/^\s+/,jb=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,kb=/<([\w:]+)/,lb=/\s*$/g,sb={option:[1,""],legend:[1,"
","
"],area:[1,"",""],param:[1,"",""],thead:[1,"","
"],tr:[2,"","
"],col:[2,"","
"],td:[3,"","
"],_default:l.htmlSerialize?[0,"",""]:[1,"X
","
"]},tb=eb(z),ub=tb.appendChild(z.createElement("div"));sb.optgroup=sb.option,sb.tbody=sb.tfoot=sb.colgroup=sb.caption=sb.thead,sb.th=sb.td;function vb(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==L?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==L?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||n.nodeName(d,b)?f.push(d):n.merge(f,vb(d,b));return void 0===b||b&&n.nodeName(a,b)?n.merge([a],f):f}function wb(a){X.test(a.type)&&(a.defaultChecked=a.checked)}function xb(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function yb(a){return a.type=(null!==n.find.attr(a,"type"))+"/"+a.type,a}function zb(a){var b=qb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ab(a,b){for(var c,d=0;null!=(c=a[d]);d++)n._data(c,"globalEval",!b||n._data(b[d],"globalEval"))}function Bb(a,b){if(1===b.nodeType&&n.hasData(a)){var c,d,e,f=n._data(a),g=n._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)n.event.add(b,c,h[c][d])}g.data&&(g.data=n.extend({},g.data))}}function Cb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!l.noCloneEvent&&b[n.expando]){e=n._data(b);for(d in e.events)n.removeEvent(b,d,e.handle);b.removeAttribute(n.expando)}"script"===c&&b.text!==a.text?(yb(b).text=a.text,zb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),l.html5Clone&&a.innerHTML&&!n.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&X.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}n.extend({clone:function(a,b,c){var d,e,f,g,h,i=n.contains(a.ownerDocument,a);if(l.html5Clone||n.isXMLDoc(a)||!hb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(ub.innerHTML=a.outerHTML,ub.removeChild(f=ub.firstChild)),!(l.noCloneEvent&&l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(d=vb(f),h=vb(a),g=0;null!=(e=h[g]);++g)d[g]&&Cb(e,d[g]);if(b)if(c)for(h=h||vb(a),d=d||vb(f),g=0;null!=(e=h[g]);g++)Bb(e,d[g]);else Bb(a,f);return d=vb(f,"script"),d.length>0&&Ab(d,!i&&vb(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k,m=a.length,o=eb(b),p=[],q=0;m>q;q++)if(f=a[q],f||0===f)if("object"===n.type(f))n.merge(p,f.nodeType?[f]:f);else if(mb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(kb.exec(f)||["",""])[1].toLowerCase(),k=sb[i]||sb._default,h.innerHTML=k[1]+f.replace(jb,"<$1>")+k[2],e=k[0];while(e--)h=h.lastChild;if(!l.leadingWhitespace&&ib.test(f)&&p.push(b.createTextNode(ib.exec(f)[0])),!l.tbody){f="table"!==i||lb.test(f)?""!==k[1]||lb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)n.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}n.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),l.appendChecked||n.grep(vb(p,"input"),wb),q=0;while(f=p[q++])if((!d||-1===n.inArray(f,d))&&(g=n.contains(f.ownerDocument,f),h=vb(o.appendChild(f),"script"),g&&Ab(h),c)){e=0;while(f=h[e++])pb.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=n.expando,j=n.cache,k=l.deleteExpando,m=n.event.special;null!=(d=a[h]);h++)if((b||n.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)m[e]?n.event.remove(d,e):n.removeEvent(d,e,g.handle);j[f]&&(delete j[f],k?delete d[i]:typeof d.removeAttribute!==L?d.removeAttribute(i):d[i]=null,c.push(f))}}}),n.fn.extend({text:function(a){return W(this,function(a){return void 0===a?n.text(this):this.empty().append((this[0]&&this[0].ownerDocument||z).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=xb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=xb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(vb(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&Ab(vb(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&n.cleanData(vb(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&n.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return W(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(gb,""):void 0;if(!("string"!=typeof a||nb.test(a)||!l.htmlSerialize&&hb.test(a)||!l.leadingWhitespace&&ib.test(a)||sb[(kb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(jb,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(vb(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(vb(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,k=this.length,m=this,o=k-1,p=a[0],q=n.isFunction(p);if(q||k>1&&"string"==typeof p&&!l.checkClone&&ob.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(k&&(i=n.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=n.map(vb(i,"script"),yb),f=g.length;k>j;j++)d=i,j!==o&&(d=n.clone(d,!0,!0),f&&n.merge(g,vb(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,n.map(g,zb),j=0;f>j;j++)d=g[j],pb.test(d.type||"")&&!n._data(d,"globalEval")&&n.contains(h,d)&&(d.src?n._evalUrl&&n._evalUrl(d.src):n.globalEval((d.text||d.textContent||d.innerHTML||"").replace(rb,"")));i=c=null}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=0,e=[],g=n(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),n(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Db,Eb={};function Fb(b,c){var d=n(c.createElement(b)).appendTo(c.body),e=a.getDefaultComputedStyle?a.getDefaultComputedStyle(d[0]).display:n.css(d[0],"display");return d.detach(),e}function Gb(a){var b=z,c=Eb[a];return c||(c=Fb(a,b),"none"!==c&&c||(Db=(Db||n(" -


- -
-

- Documentation in progress!
- It might not seem, but it's actually a lot of work. The goal is to make it as cleanest, most readable and - understandable as possible.
- If you feel there is something missing, submit a - pull request with your changes. Every - help is needed. Many thanks. -

-
-
-

What's new in version 3

-
    -
  • API redesign for a more intuitive use
  • -
  • Entire code source rewriting focused on cleanliness and performance
  • -
  • Initialization options can be passed as JavaScript object or written as data-*
  • -
  • Plugin constructor publicly available from $.fn.bootstrapSwitch.Constructor
  • -
  • Plugin instance publicly available calling .data('bootstrap-switch')
  • -
  • Global overridable defaults options
  • -
  • Improved flexibility with baseClass and wrapperClass options
  • -
  • New onInit event
  • -
  • Event namespacing
  • -
  • Full Bootstrap 3 support
  • -
  • A lot of fixed bug, as usual
  • -
-
-
-

Getting Started

-

Include the dependencies: jQuery, Bootstrap and Bootstrap Switch CSS + Javascript.

-
[...]
-<link href="bootstrap.css" rel="stylesheet">
-<link href="bootstrap-switch.css" rel="stylesheet">
-<script src="jquery.js"></script>
-<script src="bootstrap-switch.js"></script>
-[...]
-

Add your checkbox.

-
<input type="checkbox" name="my-checkbox" checked>
-

Initialize Bootstrap Switch.

-
$("[name='my-checkbox']").bootstrapSwitch();
-

Enjoy.

-
- -
-

- Licensed under the - Apache License, Version 2.0 - · Created by - Mattia Larentis - · Mantained by - Emanuele Marchi -

-
- - - - - - - \ No newline at end of file diff --git a/chronos/static/images/Icons/bootstrap/bootstrap/main.html b/chronos/static/images/Icons/bootstrap/bootstrap/main.html deleted file mode 100644 index 88f21e7..0000000 --- a/chronos/static/images/Icons/bootstrap/bootstrap/main.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - - - Bootstrap Switch · Turn checkboxes and radio buttons in toggle switches - - - - - - - - Fork me on GitHub - -
-
-
-

- Licensed under the - Apache License, Version 2.0 - · Created by - Mattia Larentis - · Mantained by - Emanuele Marchi -

-
- - - - - - - \ No newline at end of file diff --git a/chronos/static/images/Icons/bootstrap/bootstrap/package.json b/chronos/static/images/Icons/bootstrap/bootstrap/package.json deleted file mode 100644 index 85bae62..0000000 --- a/chronos/static/images/Icons/bootstrap/bootstrap/package.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "name": "bootstrap-switch", - "description": "Turn checkboxes and radio buttons in toggle switches.", - "version": "3.0.2", - "keywords": [ - "bootstrap", - "switch", - "javascript", - "js" - ], - "homepage": "http://www.bootstrap-switch.org", - "author": { - "name": "Mattia Larentis", - "email": "sorich87@gmail.com", - "url": "http://larentis.eu" - }, - "contributors": [ - { - "name": "Emanuele Marchi", - "email": "emanuele@lostcrew.it", - "url": "http://lostcrew.it" - }, - { - "name": "Peter Stein", - "url": "http://www.bdmdesign.org" - } - ], - "main": "dist/js/bootstrap-switch.js", - "dependencies": { - "jquery": ">=1.9.0" - }, - "repository": { - "type": "git", - "url": "git://github.com/nostalgiaz/bootstrap-switch.git" - }, - "bugs": "https://github.com/nostalgiaz/bootstrap-switch/issues", - "license": "Apache Version 2", - "readmeFilename": "README.md", - "devDependencies": { - "gulp-coffee": "~1.4.3", - "gulp-util": "~2.2.17", - "gulp-header": "~1.0.2", - "gulp-uglify": "~0.3.1", - "gulp-coffeelint": "~0.3.3", - "gulp": "~3.8.1", - "gulp-less": "~1.2.3", - "gulp-rename": "~1.2.0", - "gulp-open": "~0.2.8", - "gulp-load-plugins": "~0.5.1", - "gulp-jade": "~0.5.0", - "run-sequence": "~0.3.6", - "gulp-connect": "~2.0.5", - "coffee-script": "~1.7.1", - "gulp-changed": "~0.3.0" - } -} diff --git a/chronos/static/images/Icons/bootstrap/bootstrap/page.html b/chronos/static/images/Icons/bootstrap/bootstrap/page.html deleted file mode 100644 index ef40063..0000000 --- a/chronos/static/images/Icons/bootstrap/bootstrap/page.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - - Bootstrap Switch · Turn checkboxes and radio buttons in toggle switches - - - - - - - - Fork me on GitHub - -

try

- - - - - - - \ No newline at end of file diff --git a/chronos/static/images/Icons/bootstrap/bootstrap/src/coffee/bootstrap-switch.coffee b/chronos/static/images/Icons/bootstrap/bootstrap/src/coffee/bootstrap-switch.coffee deleted file mode 100644 index 4959bb6..0000000 --- a/chronos/static/images/Icons/bootstrap/bootstrap/src/coffee/bootstrap-switch.coffee +++ /dev/null @@ -1,391 +0,0 @@ -do ($ = window.jQuery, window) -> - "use strict" - - class BootstrapSwitch - constructor: (element, options = {}) -> - @$element = $ element - @options = $.extend {}, $.fn.bootstrapSwitch.defaults, - state: @$element.is ":checked" - size: @$element.data "size" - animate: @$element.data "animate" - disabled: @$element.is ":disabled" - readonly: @$element.is "[readonly]" - indeterminate: @$element.data "indeterminate" - onColor: @$element.data "on-color" - offColor: @$element.data "off-color" - onText: @$element.data "on-text" - offText: @$element.data "off-text" - labelText: @$element.data "label-text" - baseClass: @$element.data "base-class" - wrapperClass: @$element.data "wrapper-class" - radioAllOff: @$element.data "radio-all-off" - , options - @$wrapper = $ "
", - class: do => - classes = ["#{@options.baseClass}"].concat @_getClasses @options.wrapperClass - - classes.push if @options.state then "#{@options.baseClass}-on" else "#{@options.baseClass}-off" - classes.push "#{@options.baseClass}-#{@options.size}" if @options.size? - classes.push "#{@options.baseClass}-animate" if @options.animate - classes.push "#{@options.baseClass}-disabled" if @options.disabled - classes.push "#{@options.baseClass}-readonly" if @options.readonly - classes.push "#{@options.baseClass}-indeterminate" if @options.indeterminate - classes.push "#{@options.baseClass}-id-#{@$element.attr("id")}" if @$element.attr "id" - classes.join " " - @$container = $ "
", - class: "#{@options.baseClass}-container" - @$on = $ "", - html: @options.onText, - class: "#{@options.baseClass}-handle-on #{@options.baseClass}-#{@options.onColor}" - @$off = $ "", - html: @options.offText, - class: "#{@options.baseClass}-handle-off #{@options.baseClass}-#{@options.offColor}" - @$label = $ "
- * canvas.setOverlayImage('http://fabricjs.com/assets/jail_cell_bars.png', canvas.renderAll.bind(canvas), { - * // Needed to position overlayImage at 0/0 - * originX: 'left', - * originY: 'top' - * }); - * @example - * canvas.setOverlayImage('http://fabricjs.com/assets/jail_cell_bars.png', canvas.renderAll.bind(canvas), { - * opacity: 0.5, - * angle: 45, - * left: 400, - * top: 400, - * originX: 'left', - * originY: 'top' - * }); - * @example - * fabric.Image.fromURL('http://fabricjs.com/assets/jail_cell_bars.png', function(img) { - * img.set({width: canvas.width, height: canvas.height, originX: 'left', originY: 'top'}); - * canvas.setOverlayImage(img, canvas.renderAll.bind(canvas)); - * }); - * @example - * canvas.setOverlayImage('http://fabricjs.com/assets/jail_cell_bars.png', canvas.renderAll.bind(canvas), { - * width: canvas.width, - * height: canvas.height, - * // Needed to position overlayImage at 0/0 - * originX: 'left', - * originY: 'top' - * }); - * @example - * canvas.setOverlayImage('http://fabricjs.com/assets/jail_cell_bars.png', canvas.renderAll.bind(canvas), { - * opacity: 0.5, - * angle: 45, - * left: 400, - * top: 400, - * originX: 'left', - * originY: 'top', - * crossOrigin: 'anonymous' - * }); - */ - setOverlayImage: function (image, callback, options) { - return this.__setBgOverlayImage('overlayImage', image, callback, options); - }, - - /** - * Sets {@link fabric.StaticCanvas#backgroundImage|background image} for this canvas - * @param {(fabric.Image|String)} image fabric.Image instance or URL of an image to set background to - * @param {Function} callback Callback to invoke when image is loaded and set as background - * @param {Object} [options] Optional options to set for the {@link fabric.Image|background image}. - * @return {fabric.Canvas} thisArg - * @chainable - * @see {@link http://jsfiddle.net/fabricjs/YH9yD/|jsFiddle demo} - * @example - * canvas.setBackgroundImage('http://fabricjs.com/assets/honey_im_subtle.png', canvas.renderAll.bind(canvas), { - * // Needed to position backgroundImage at 0/0 - * originX: 'left', - * originY: 'top' - * }); - * @example - * canvas.setBackgroundImage('http://fabricjs.com/assets/honey_im_subtle.png', canvas.renderAll.bind(canvas), { - * opacity: 0.5, - * angle: 45, - * left: 400, - * top: 400, - * originX: 'left', - * originY: 'top' - * }); - * @example - * fabric.Image.fromURL('http://fabricjs.com/assets/honey_im_subtle.png', function(img) { - * img.set({width: canvas.width, height: canvas.height, originX: 'left', originY: 'top'}); - * canvas.setBackgroundImage(img, canvas.renderAll.bind(canvas)); - * }); - * @example - * canvas.setBackgroundImage('http://fabricjs.com/assets/honey_im_subtle.png', canvas.renderAll.bind(canvas), { - * width: canvas.width, - * height: canvas.height, - * // Needed to position backgroundImage at 0/0 - * originX: 'left', - * originY: 'top' - * }); - * @example - * canvas.setBackgroundImage('http://fabricjs.com/assets/honey_im_subtle.png', canvas.renderAll.bind(canvas), { - * opacity: 0.5, - * angle: 45, - * left: 400, - * top: 400, - * originX: 'left', - * originY: 'top', - * crossOrigin: 'anonymous' - * }); - */ - setBackgroundImage: function (image, callback, options) { - return this.__setBgOverlayImage('backgroundImage', image, callback, options); - }, - - /** - * Sets {@link fabric.StaticCanvas#overlayColor|background color} for this canvas - * @param {(String|fabric.Pattern)} overlayColor Color or pattern to set background color to - * @param {Function} callback Callback to invoke when background color is set - * @return {fabric.Canvas} thisArg - * @chainable - * @see {@link http://jsfiddle.net/fabricjs/pB55h/|jsFiddle demo} - * @example - * canvas.setOverlayColor('rgba(255, 73, 64, 0.6)', canvas.renderAll.bind(canvas)); - * @example - * canvas.setOverlayColor({ - * source: 'http://fabricjs.com/assets/escheresque_ste.png' - * }, canvas.renderAll.bind(canvas)); - * @example - * canvas.setOverlayColor({ - * source: 'http://fabricjs.com/assets/escheresque_ste.png', - * repeat: 'repeat', - * offsetX: 200, - * offsetY: 100 - * }, canvas.renderAll.bind(canvas)); - */ - setOverlayColor: function(overlayColor, callback) { - return this.__setBgOverlayColor('overlayColor', overlayColor, callback); - }, - - /** - * Sets {@link fabric.StaticCanvas#backgroundColor|background color} for this canvas - * @param {(String|fabric.Pattern)} backgroundColor Color or pattern to set background color to - * @param {Function} callback Callback to invoke when background color is set - * @return {fabric.Canvas} thisArg - * @chainable - * @see {@link http://jsfiddle.net/fabricjs/hXzvk/|jsFiddle demo} - * @example - * canvas.setBackgroundColor('rgba(255, 73, 64, 0.6)', canvas.renderAll.bind(canvas)); - * @example - * canvas.setBackgroundColor({ - * source: 'http://fabricjs.com/assets/escheresque_ste.png' - * }, canvas.renderAll.bind(canvas)); - * @example - * canvas.setBackgroundColor({ - * source: 'http://fabricjs.com/assets/escheresque_ste.png', - * repeat: 'repeat', - * offsetX: 200, - * offsetY: 100 - * }, canvas.renderAll.bind(canvas)); - */ - setBackgroundColor: function(backgroundColor, callback) { - return this.__setBgOverlayColor('backgroundColor', backgroundColor, callback); - }, - - /** - * @private - * @see {@link http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#dom-context-2d-imagesmoothingenabled|WhatWG Canvas Standard} - */ - _setImageSmoothing: function() { - var ctx = this.getContext(); - - ctx.imageSmoothingEnabled = this.imageSmoothingEnabled; - ctx.webkitImageSmoothingEnabled = this.imageSmoothingEnabled; - ctx.mozImageSmoothingEnabled = this.imageSmoothingEnabled; - ctx.msImageSmoothingEnabled = this.imageSmoothingEnabled; - ctx.oImageSmoothingEnabled = this.imageSmoothingEnabled; - }, - - /** - * @private - * @param {String} property Property to set ({@link fabric.StaticCanvas#backgroundImage|backgroundImage} - * or {@link fabric.StaticCanvas#overlayImage|overlayImage}) - * @param {(fabric.Image|String|null)} image fabric.Image instance, URL of an image or null to set background or overlay to - * @param {Function} callback Callback to invoke when image is loaded and set as background or overlay - * @param {Object} [options] Optional options to set for the {@link fabric.Image|image}. - */ - __setBgOverlayImage: function(property, image, callback, options) { - if (typeof image === 'string') { - fabric.util.loadImage(image, function(img) { - this[property] = new fabric.Image(img, options); - callback && callback(); - }, this, options && options.crossOrigin); - } - else { - options && image.setOptions(options); - this[property] = image; - callback && callback(); - } - - return this; - }, - - /** - * @private - * @param {String} property Property to set ({@link fabric.StaticCanvas#backgroundColor|backgroundColor} - * or {@link fabric.StaticCanvas#overlayColor|overlayColor}) - * @param {(Object|String|null)} color Object with pattern information, color value or null - * @param {Function} [callback] Callback is invoked when color is set - */ - __setBgOverlayColor: function(property, color, callback) { - if (color && color.source) { - var _this = this; - fabric.util.loadImage(color.source, function(img) { - _this[property] = new fabric.Pattern({ - source: img, - repeat: color.repeat, - offsetX: color.offsetX, - offsetY: color.offsetY - }); - callback && callback(); - }); - } - else { - this[property] = color; - callback && callback(); - } - - return this; - }, - - /** - * @private - */ - _createCanvasElement: function() { - var element = fabric.document.createElement('canvas'); - if (!element.style) { - element.style = { }; - } - if (!element) { - throw CANVAS_INIT_ERROR; - } - this._initCanvasElement(element); - return element; - }, - - /** - * @private - * @param {HTMLElement} element - */ - _initCanvasElement: function(element) { - fabric.util.createCanvasElement(element); - - if (typeof element.getContext === 'undefined') { - throw CANVAS_INIT_ERROR; - } - }, - - /** - * @private - * @param {Object} [options] Options object - */ - _initOptions: function (options) { - for (var prop in options) { - this[prop] = options[prop]; - } - - this.width = this.width || parseInt(this.lowerCanvasEl.width, 10) || 0; - this.height = this.height || parseInt(this.lowerCanvasEl.height, 10) || 0; - - if (!this.lowerCanvasEl.style) { - return; - } - - this.lowerCanvasEl.width = this.width; - this.lowerCanvasEl.height = this.height; - - this.lowerCanvasEl.style.width = this.width + 'px'; - this.lowerCanvasEl.style.height = this.height + 'px'; - - this.viewportTransform = this.viewportTransform.slice(); - }, - - /** - * Creates a bottom canvas - * @private - * @param {HTMLElement} [canvasEl] - */ - _createLowerCanvas: function (canvasEl) { - this.lowerCanvasEl = fabric.util.getById(canvasEl) || this._createCanvasElement(); - this._initCanvasElement(this.lowerCanvasEl); - - fabric.util.addClass(this.lowerCanvasEl, 'lower-canvas'); - - if (this.interactive) { - this._applyCanvasStyle(this.lowerCanvasEl); - } - - this.contextContainer = this.lowerCanvasEl.getContext('2d'); - }, - - /** - * Returns canvas width (in px) - * @return {Number} - */ - getWidth: function () { - return this.width; - }, - - /** - * Returns canvas height (in px) - * @return {Number} - */ - getHeight: function () { - return this.height; - }, - - /** - * Sets width of this canvas instance - * @param {Number|String} value Value to set width to - * @param {Object} [options] Options object - * @param {Boolean} [options.backstoreOnly=false] Set the given dimensions only as canvas backstore dimensions - * @param {Boolean} [options.cssOnly=false] Set the given dimensions only as css dimensions - * @return {fabric.Canvas} instance - * @chainable true - */ - setWidth: function (value, options) { - return this.setDimensions({ width: value }, options); - }, - - /** - * Sets height of this canvas instance - * @param {Number|String} value Value to set height to - * @param {Object} [options] Options object - * @param {Boolean} [options.backstoreOnly=false] Set the given dimensions only as canvas backstore dimensions - * @param {Boolean} [options.cssOnly=false] Set the given dimensions only as css dimensions - * @return {fabric.Canvas} instance - * @chainable true - */ - setHeight: function (value, options) { - return this.setDimensions({ height: value }, options); - }, - - /** - * Sets dimensions (width, height) of this canvas instance. when options.cssOnly flag active you should also supply the unit of measure (px/%/em) - * @param {Object} dimensions Object with width/height properties - * @param {Number|String} [dimensions.width] Width of canvas element - * @param {Number|String} [dimensions.height] Height of canvas element - * @param {Object} [options] Options object - * @param {Boolean} [options.backstoreOnly=false] Set the given dimensions only as canvas backstore dimensions - * @param {Boolean} [options.cssOnly=false] Set the given dimensions only as css dimensions - * @return {fabric.Canvas} thisArg - * @chainable - */ - setDimensions: function (dimensions, options) { - var cssValue; - - options = options || {}; - - for (var prop in dimensions) { - cssValue = dimensions[prop]; - - if (!options.cssOnly) { - this._setBackstoreDimension(prop, dimensions[prop]); - cssValue += 'px'; - } - - if (!options.backstoreOnly) { - this._setCssDimension(prop, cssValue); - } - } - - if (!options.cssOnly) { - this.renderAll(); - } - - this.calcOffset(); - - return this; - }, - - /** - * Helper for setting width/height - * @private - * @param {String} prop property (width|height) - * @param {Number} value value to set property to - * @return {fabric.Canvas} instance - * @chainable true - */ - _setBackstoreDimension: function (prop, value) { - this.lowerCanvasEl[prop] = value; - - if (this.upperCanvasEl) { - this.upperCanvasEl[prop] = value; - } - - if (this.cacheCanvasEl) { - this.cacheCanvasEl[prop] = value; - } - - this[prop] = value; - - return this; - }, - - /** - * Helper for setting css width/height - * @private - * @param {String} prop property (width|height) - * @param {String} value value to set property to - * @return {fabric.Canvas} instance - * @chainable true - */ - _setCssDimension: function (prop, value) { - this.lowerCanvasEl.style[prop] = value; - - if (this.upperCanvasEl) { - this.upperCanvasEl.style[prop] = value; - } - - if (this.wrapperEl) { - this.wrapperEl.style[prop] = value; - } - - return this; - }, - - /** - * Returns canvas zoom level - * @return {Number} - */ - getZoom: function () { - return Math.sqrt(this.viewportTransform[0] * this.viewportTransform[3]); - }, - - /** - * Sets viewport transform of this canvas instance - * @param {Array} vpt the transform in the form of context.transform - * @return {fabric.Canvas} instance - * @chainable true - */ - setViewportTransform: function (vpt) { - var activeGroup = this.getActiveGroup(); - this.viewportTransform = vpt; - this.renderAll(); - for (var i = 0, len = this._objects.length; i < len; i++) { - this._objects[i].setCoords(); - } - if (activeGroup) { - activeGroup.setCoords(); - } - return this; - }, - - /** - * Sets zoom level of this canvas instance, zoom centered around point - * @param {fabric.Point} point to zoom with respect to - * @param {Number} value to set zoom to, less than 1 zooms out - * @return {fabric.Canvas} instance - * @chainable true - */ - zoomToPoint: function (point, value) { - // TODO: just change the scale, preserve other transformations - var before = point; - point = fabric.util.transformPoint(point, fabric.util.invertTransform(this.viewportTransform)); - this.viewportTransform[0] = value; - this.viewportTransform[3] = value; - var after = fabric.util.transformPoint(point, this.viewportTransform); - this.viewportTransform[4] += before.x - after.x; - this.viewportTransform[5] += before.y - after.y; - this.renderAll(); - for (var i = 0, len = this._objects.length; i < len; i++) { - this._objects[i].setCoords(); - } - return this; - }, - - /** - * Sets zoom level of this canvas instance - * @param {Number} value to set zoom to, less than 1 zooms out - * @return {fabric.Canvas} instance - * @chainable true - */ - setZoom: function (value) { - this.zoomToPoint(new fabric.Point(0, 0), value); - return this; - }, - - /** - * Pan viewport so as to place point at top left corner of canvas - * @param {fabric.Point} point to move to - * @return {fabric.Canvas} instance - * @chainable true - */ - absolutePan: function (point) { - this.viewportTransform[4] = -point.x; - this.viewportTransform[5] = -point.y; - this.renderAll(); - for (var i = 0, len = this._objects.length; i < len; i++) { - this._objects[i].setCoords(); - } - return this; - }, - - /** - * Pans viewpoint relatively - * @param {fabric.Point} point (position vector) to move by - * @return {fabric.Canvas} instance - * @chainable true - */ - relativePan: function (point) { - return this.absolutePan(new fabric.Point( - -point.x - this.viewportTransform[4], - -point.y - this.viewportTransform[5] - )); - }, - - /** - * Returns <canvas> element corresponding to this instance - * @return {HTMLCanvasElement} - */ - getElement: function () { - return this.lowerCanvasEl; - }, - - /** - * Returns currently selected object, if any - * @return {fabric.Object} - */ - getActiveObject: function() { - return null; - }, - - /** - * Returns currently selected group of object, if any - * @return {fabric.Group} - */ - getActiveGroup: function() { - return null; - }, - - /** - * Given a context, renders an object on that context - * @param {CanvasRenderingContext2D} ctx Context to render object on - * @param {fabric.Object} object Object to render - * @private - */ - _draw: function (ctx, object) { - if (!object) { - return; - } - - ctx.save(); - var v = this.viewportTransform; - ctx.transform(v[0], v[1], v[2], v[3], v[4], v[5]); - if (this._shouldRenderObject(object)) { - object.render(ctx); - } - ctx.restore(); - if (!this.controlsAboveOverlay) { - object._renderControls(ctx); - } - }, - - _shouldRenderObject: function(object) { - if (!object) { - return false; - } - return (object !== this.getActiveGroup() || !this.preserveObjectStacking); - }, - - /** - * @private - * @param {fabric.Object} obj Object that was added - */ - _onObjectAdded: function(obj) { - this.stateful && obj.setupState(); - obj.canvas = this; - obj.setCoords(); - this.fire('object:added', { target: obj }); - obj.fire('added'); - }, - - /** - * @private - * @param {fabric.Object} obj Object that was removed - */ - _onObjectRemoved: function(obj) { - // removing active object should fire "selection:cleared" events - if (this.getActiveObject() === obj) { - this.fire('before:selection:cleared', { target: obj }); - this._discardActiveObject(); - this.fire('selection:cleared'); - } - - this.fire('object:removed', { target: obj }); - obj.fire('removed'); - }, - - /** - * Clears specified context of canvas element - * @param {CanvasRenderingContext2D} ctx Context to clear - * @return {fabric.Canvas} thisArg - * @chainable - */ - clearContext: function(ctx) { - ctx.clearRect(0, 0, this.width, this.height); - return this; - }, - - /** - * Returns context of canvas where objects are drawn - * @return {CanvasRenderingContext2D} - */ - getContext: function () { - return this.contextContainer; - }, - - /** - * Clears all contexts (background, main, top) of an instance - * @return {fabric.Canvas} thisArg - * @chainable - */ - clear: function () { - this._objects.length = 0; - if (this.discardActiveGroup) { - this.discardActiveGroup(); - } - if (this.discardActiveObject) { - this.discardActiveObject(); - } - this.clearContext(this.contextContainer); - if (this.contextTop) { - this.clearContext(this.contextTop); - } - this.fire('canvas:cleared'); - this.renderAll(); - return this; - }, - - /** - * Renders both the top canvas and the secondary container canvas. - * @param {Boolean} [allOnTop] Whether we want to force all images to be rendered on the top canvas - * @return {fabric.Canvas} instance - * @chainable - */ - renderAll: function (allOnTop) { - var canvasToDrawOn = this[(allOnTop === true && this.interactive) ? 'contextTop' : 'contextContainer'], - activeGroup = this.getActiveGroup(); - - if (this.contextTop && this.selection && !this._groupSelector) { - this.clearContext(this.contextTop); - } - - if (!allOnTop) { - this.clearContext(canvasToDrawOn); - } - - this.fire('before:render'); - - if (this.clipTo) { - fabric.util.clipContext(this, canvasToDrawOn); - } - - this._renderBackground(canvasToDrawOn); - this._renderObjects(canvasToDrawOn, activeGroup); - this._renderActiveGroup(canvasToDrawOn, activeGroup); - - if (this.clipTo) { - canvasToDrawOn.restore(); - } - - this._renderOverlay(canvasToDrawOn); - - if (this.controlsAboveOverlay && this.interactive) { - this.drawControls(canvasToDrawOn); - } - - this.fire('after:render'); - - return this; - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - * @param {fabric.Group} activeGroup - */ - _renderObjects: function(ctx, activeGroup) { - var i, length; - - // fast path - if (!activeGroup || this.preserveObjectStacking) { - for (i = 0, length = this._objects.length; i < length; ++i) { - this._draw(ctx, this._objects[i]); - } - } - else { - for (i = 0, length = this._objects.length; i < length; ++i) { - if (this._objects[i] && !activeGroup.contains(this._objects[i])) { - this._draw(ctx, this._objects[i]); - } - } - } - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - * @param {fabric.Group} activeGroup - */ - _renderActiveGroup: function(ctx, activeGroup) { - - // delegate rendering to group selection (if one exists) - if (activeGroup) { - - //Store objects in group preserving order, then replace - var sortedObjects = []; - this.forEachObject(function (object) { - if (activeGroup.contains(object)) { - sortedObjects.push(object); - } - }); - activeGroup._set('objects', sortedObjects); - this._draw(ctx, activeGroup); - } - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - _renderBackground: function(ctx) { - if (this.backgroundColor) { - ctx.fillStyle = this.backgroundColor.toLive - ? this.backgroundColor.toLive(ctx) - : this.backgroundColor; - - ctx.fillRect( - this.backgroundColor.offsetX || 0, - this.backgroundColor.offsetY || 0, - this.width, - this.height); - } - if (this.backgroundImage) { - this._draw(ctx, this.backgroundImage); - } - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - _renderOverlay: function(ctx) { - if (this.overlayColor) { - ctx.fillStyle = this.overlayColor.toLive - ? this.overlayColor.toLive(ctx) - : this.overlayColor; - - ctx.fillRect( - this.overlayColor.offsetX || 0, - this.overlayColor.offsetY || 0, - this.width, - this.height); - } - if (this.overlayImage) { - this._draw(ctx, this.overlayImage); - } - }, - - /** - * Method to render only the top canvas. - * Also used to render the group selection box. - * @return {fabric.Canvas} thisArg - * @chainable - */ - renderTop: function () { - var ctx = this.contextTop || this.contextContainer; - this.clearContext(ctx); - - // we render the top context - last object - if (this.selection && this._groupSelector) { - this._drawSelection(); - } - - // delegate rendering to group selection if one exists - // used for drawing selection borders/controls - var activeGroup = this.getActiveGroup(); - if (activeGroup) { - activeGroup.render(ctx); - } - - this._renderOverlay(ctx); - - this.fire('after:render'); - - return this; - }, - - /** - * Returns coordinates of a center of canvas. - * Returned value is an object with top and left properties - * @return {Object} object with "top" and "left" number values - */ - getCenter: function () { - return { - top: this.getHeight() / 2, - left: this.getWidth() / 2 - }; - }, - - /** - * Centers object horizontally. - * You might need to call `setCoords` on an object after centering, to update controls area. - * @param {fabric.Object} object Object to center horizontally - * @return {fabric.Canvas} thisArg - */ - centerObjectH: function (object) { - this._centerObject(object, new fabric.Point(this.getCenter().left, object.getCenterPoint().y)); - this.renderAll(); - return this; - }, - - /** - * Centers object vertically. - * You might need to call `setCoords` on an object after centering, to update controls area. - * @param {fabric.Object} object Object to center vertically - * @return {fabric.Canvas} thisArg - * @chainable - */ - centerObjectV: function (object) { - this._centerObject(object, new fabric.Point(object.getCenterPoint().x, this.getCenter().top)); - this.renderAll(); - return this; - }, - - /** - * Centers object vertically and horizontally. - * You might need to call `setCoords` on an object after centering, to update controls area. - * @param {fabric.Object} object Object to center vertically and horizontally - * @return {fabric.Canvas} thisArg - * @chainable - */ - centerObject: function(object) { - var center = this.getCenter(); - - this._centerObject(object, new fabric.Point(center.left, center.top)); - this.renderAll(); - return this; - }, - - /** - * @private - * @param {fabric.Object} object Object to center - * @param {fabric.Point} center Center point - * @return {fabric.Canvas} thisArg - * @chainable - */ - _centerObject: function(object, center) { - object.setPositionByOrigin(center, 'center', 'center'); - return this; - }, - - /** - * Returs dataless JSON representation of canvas - * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output - * @return {String} json string - */ - toDatalessJSON: function (propertiesToInclude) { - return this.toDatalessObject(propertiesToInclude); - }, - - /** - * Returns object representation of canvas - * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output - * @return {Object} object representation of an instance - */ - toObject: function (propertiesToInclude) { - return this._toObjectMethod('toObject', propertiesToInclude); - }, - - /** - * Returns dataless object representation of canvas - * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output - * @return {Object} object representation of an instance - */ - toDatalessObject: function (propertiesToInclude) { - return this._toObjectMethod('toDatalessObject', propertiesToInclude); - }, - - /** - * @private - */ - _toObjectMethod: function (methodName, propertiesToInclude) { - - var data = { - objects: this._toObjects(methodName, propertiesToInclude) - }; - - extend(data, this.__serializeBgOverlay()); - - fabric.util.populateWithProperties(this, data, propertiesToInclude); - - return data; - }, - - /** - * @private - */ - _toObjects: function(methodName, propertiesToInclude) { - return this.getObjects().map(function(instance) { - return this._toObject(instance, methodName, propertiesToInclude); - }, this); - }, - - /** - * @private - */ - _toObject: function(instance, methodName, propertiesToInclude) { - var originalValue; - - if (!this.includeDefaultValues) { - originalValue = instance.includeDefaultValues; - instance.includeDefaultValues = false; - } - - //If the object is part of the current selection group, it should - //be transformed appropriately - //i.e. it should be serialised as it would appear if the selection group - //were to be destroyed. - var originalProperties = this._realizeGroupTransformOnObject(instance), - object = instance[methodName](propertiesToInclude); - if (!this.includeDefaultValues) { - instance.includeDefaultValues = originalValue; - } - - //Undo the damage we did by changing all of its properties - this._unwindGroupTransformOnObject(instance, originalProperties); - - return object; - }, - - /** - * Realises an object's group transformation on it - * @private - * @param {fabric.Object} [instance] the object to transform (gets mutated) - * @returns the original values of instance which were changed - */ - _realizeGroupTransformOnObject: function(instance) { - var layoutProps = ['angle', 'flipX', 'flipY', 'height', 'left', 'scaleX', 'scaleY', 'top', 'width']; - if (instance.group && instance.group === this.getActiveGroup()) { - //Copy all the positionally relevant properties across now - var originalValues = {}; - layoutProps.forEach(function(prop) { - originalValues[prop] = instance[prop]; - }); - this.getActiveGroup().realizeTransform(instance); - return originalValues; - } - else { - return null; - } - }, - - /* - * Restores the changed properties of instance - * @private - * @param {fabric.Object} [instance] the object to un-transform (gets mutated) - * @param {Object} [originalValues] the original values of instance, as returned by _realizeGroupTransformOnObject - */ - _unwindGroupTransformOnObject: function(instance, originalValues) { - if (originalValues) { - instance.set(originalValues); - } - }, - - /** - * @private - */ - __serializeBgOverlay: function() { - var data = { - background: (this.backgroundColor && this.backgroundColor.toObject) - ? this.backgroundColor.toObject() - : this.backgroundColor - }; - - if (this.overlayColor) { - data.overlay = this.overlayColor.toObject - ? this.overlayColor.toObject() - : this.overlayColor; - } - if (this.backgroundImage) { - data.backgroundImage = this.backgroundImage.toObject(); - } - if (this.overlayImage) { - data.overlayImage = this.overlayImage.toObject(); - } - - return data; - }, - - /* _TO_SVG_START_ */ - /** - * When true, getSvgTransform() will apply the StaticCanvas.viewportTransform to the SVG transformation. When true, - * a zoomed canvas will then produce zoomed SVG output. - * @type Boolean - * @default - */ - svgViewportTransformation: true, - - /** - * Returns SVG representation of canvas - * @function - * @param {Object} [options] Options object for SVG output - * @param {Boolean} [options.suppressPreamble=false] If true xml tag is not included - * @param {Object} [options.viewBox] SVG viewbox object - * @param {Number} [options.viewBox.x] x-cooridnate of viewbox - * @param {Number} [options.viewBox.y] y-coordinate of viewbox - * @param {Number} [options.viewBox.width] Width of viewbox - * @param {Number} [options.viewBox.height] Height of viewbox - * @param {String} [options.encoding=UTF-8] Encoding of SVG output - * @param {Function} [reviver] Method for further parsing of svg elements, called after each fabric object converted into svg representation. - * @return {String} SVG string - * @tutorial {@link http://fabricjs.com/fabric-intro-part-3/#serialization} - * @see {@link http://jsfiddle.net/fabricjs/jQ3ZZ/|jsFiddle demo} - * @example - * var svg = canvas.toSVG(); - * @example - * var svg = canvas.toSVG({suppressPreamble: true}); - * @example - * var svg = canvas.toSVG({ - * viewBox: { - * x: 100, - * y: 100, - * width: 200, - * height: 300 - * } - * }); - * @example - * var svg = canvas.toSVG({encoding: 'ISO-8859-1'}); - * @example - * var svg = canvas.toSVG(null, function(svg) { - * return svg.replace('stroke-dasharray: ; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 10; ', ''); - * }); - */ - toSVG: function(options, reviver) { - options || (options = { }); - - var markup = []; - - this._setSVGPreamble(markup, options); - this._setSVGHeader(markup, options); - - this._setSVGBgOverlayColor(markup, 'backgroundColor'); - this._setSVGBgOverlayImage(markup, 'backgroundImage'); - - this._setSVGObjects(markup, reviver); - - this._setSVGBgOverlayColor(markup, 'overlayColor'); - this._setSVGBgOverlayImage(markup, 'overlayImage'); - - markup.push(''); - - return markup.join(''); - }, - - /** - * @private - */ - _setSVGPreamble: function(markup, options) { - if (!options.suppressPreamble) { - markup.push( - '', - '\n' - ); - } - }, - - /** - * @private - */ - _setSVGHeader: function(markup, options) { - var width, height, vpt; - - if (options.viewBox) { - width = options.viewBox.width; - height = options.viewBox.height; - } - else { - width = this.width; - height = this.height; - if (!this.svgViewportTransformation) { - vpt = this.viewportTransform; - width /= vpt[0]; - height /= vpt[3]; - } - } - - markup.push( - '', - 'Created with Fabric.js ', fabric.version, '', - '', - fabric.createSVGFontFacesMarkup(this.getObjects()), - fabric.createSVGRefElementsMarkup(this), - '' - ); - }, - - /** - * @private - */ - _setSVGObjects: function(markup, reviver) { - for (var i = 0, objects = this.getObjects(), len = objects.length; i < len; i++) { - var instance = objects[i], - //If the object is in a selection group, simulate what would happen to that - //object when the group is deselected - originalProperties = this._realizeGroupTransformOnObject(instance); - markup.push(instance.toSVG(reviver)); - this._unwindGroupTransformOnObject(instance, originalProperties); - } - }, - - /** - * @private - */ - _setSVGBgOverlayImage: function(markup, property) { - if (this[property] && this[property].toSVG) { - markup.push(this[property].toSVG()); - } - }, - - /** - * @private - */ - _setSVGBgOverlayColor: function(markup, property) { - if (this[property] && this[property].source) { - markup.push( - '' - ); - } - else if (this[property] && property === 'overlayColor') { - markup.push( - '' - ); - } - }, - /* _TO_SVG_END_ */ - - /** - * Moves an object to the bottom of the stack of drawn objects - * @param {fabric.Object} object Object to send to back - * @return {fabric.Canvas} thisArg - * @chainable - */ - sendToBack: function (object) { - removeFromArray(this._objects, object); - this._objects.unshift(object); - return this.renderAll && this.renderAll(); - }, - - /** - * Moves an object to the top of the stack of drawn objects - * @param {fabric.Object} object Object to send - * @return {fabric.Canvas} thisArg - * @chainable - */ - bringToFront: function (object) { - removeFromArray(this._objects, object); - this._objects.push(object); - return this.renderAll && this.renderAll(); - }, - - /** - * Moves an object down in stack of drawn objects - * @param {fabric.Object} object Object to send - * @param {Boolean} [intersecting] If `true`, send object behind next lower intersecting object - * @return {fabric.Canvas} thisArg - * @chainable - */ - sendBackwards: function (object, intersecting) { - var idx = this._objects.indexOf(object); - - // if object is not on the bottom of stack - if (idx !== 0) { - var newIdx = this._findNewLowerIndex(object, idx, intersecting); - - removeFromArray(this._objects, object); - this._objects.splice(newIdx, 0, object); - this.renderAll && this.renderAll(); - } - return this; - }, - - /** - * @private - */ - _findNewLowerIndex: function(object, idx, intersecting) { - var newIdx; - - if (intersecting) { - newIdx = idx; - - // traverse down the stack looking for the nearest intersecting object - for (var i = idx - 1; i >= 0; --i) { - - var isIntersecting = object.intersectsWithObject(this._objects[i]) || - object.isContainedWithinObject(this._objects[i]) || - this._objects[i].isContainedWithinObject(object); - - if (isIntersecting) { - newIdx = i; - break; - } - } - } - else { - newIdx = idx - 1; - } - - return newIdx; - }, - - /** - * Moves an object up in stack of drawn objects - * @param {fabric.Object} object Object to send - * @param {Boolean} [intersecting] If `true`, send object in front of next upper intersecting object - * @return {fabric.Canvas} thisArg - * @chainable - */ - bringForward: function (object, intersecting) { - var idx = this._objects.indexOf(object); - - // if object is not on top of stack (last item in an array) - if (idx !== this._objects.length - 1) { - var newIdx = this._findNewUpperIndex(object, idx, intersecting); - - removeFromArray(this._objects, object); - this._objects.splice(newIdx, 0, object); - this.renderAll && this.renderAll(); - } - return this; - }, - - /** - * @private - */ - _findNewUpperIndex: function(object, idx, intersecting) { - var newIdx; - - if (intersecting) { - newIdx = idx; - - // traverse up the stack looking for the nearest intersecting object - for (var i = idx + 1; i < this._objects.length; ++i) { - - var isIntersecting = object.intersectsWithObject(this._objects[i]) || - object.isContainedWithinObject(this._objects[i]) || - this._objects[i].isContainedWithinObject(object); - - if (isIntersecting) { - newIdx = i; - break; - } - } - } - else { - newIdx = idx + 1; - } - - return newIdx; - }, - - /** - * Moves an object to specified level in stack of drawn objects - * @param {fabric.Object} object Object to send - * @param {Number} index Position to move to - * @return {fabric.Canvas} thisArg - * @chainable - */ - moveTo: function (object, index) { - removeFromArray(this._objects, object); - this._objects.splice(index, 0, object); - return this.renderAll && this.renderAll(); - }, - - /** - * Clears a canvas element and removes all event listeners - * @return {fabric.Canvas} thisArg - * @chainable - */ - dispose: function () { - this.clear(); - this.interactive && this.removeListeners(); - return this; - }, - - /** - * Returns a string representation of an instance - * @return {String} string representation of an instance - */ - toString: function () { - return '#'; - } - }); - - extend(fabric.StaticCanvas.prototype, fabric.Observable); - extend(fabric.StaticCanvas.prototype, fabric.Collection); - extend(fabric.StaticCanvas.prototype, fabric.DataURLExporter); - - extend(fabric.StaticCanvas, /** @lends fabric.StaticCanvas */ { - - /** - * @static - * @type String - * @default - */ - EMPTY_JSON: '{"objects": [], "background": "white"}', - - /** - * Provides a way to check support of some of the canvas methods - * (either those of HTMLCanvasElement itself, or rendering context) - * - * @param {String} methodName Method to check support for; - * Could be one of "getImageData", "toDataURL", "toDataURLWithQuality" or "setLineDash" - * @return {Boolean | null} `true` if method is supported (or at least exists), - * `null` if canvas element or context can not be initialized - */ - supports: function (methodName) { - var el = fabric.util.createCanvasElement(); - - if (!el || !el.getContext) { - return null; - } - - var ctx = el.getContext('2d'); - if (!ctx) { - return null; - } - - switch (methodName) { - - case 'getImageData': - return typeof ctx.getImageData !== 'undefined'; - - case 'setLineDash': - return typeof ctx.setLineDash !== 'undefined'; - - case 'toDataURL': - return typeof el.toDataURL !== 'undefined'; - - case 'toDataURLWithQuality': - try { - el.toDataURL('image/jpeg', 0); - return true; - } - catch (e) { } - return false; - - default: - return null; - } - } - }); - - /** - * Returns JSON representation of canvas - * @function - * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output - * @return {String} JSON string - * @tutorial {@link http://fabricjs.com/fabric-intro-part-3/#serialization} - * @see {@link http://jsfiddle.net/fabricjs/pec86/|jsFiddle demo} - * @example JSON without additional properties - * var json = canvas.toJSON(); - * @example JSON with additional properties included - * var json = canvas.toJSON(['lockMovementX', 'lockMovementY', 'lockRotation', 'lockScalingX', 'lockScalingY', 'lockUniScaling']); - * @example JSON without default values - * canvas.includeDefaultValues = false; - * var json = canvas.toJSON(); - */ - fabric.StaticCanvas.prototype.toJSON = fabric.StaticCanvas.prototype.toObject; - -})(); - - -/** - * BaseBrush class - * @class fabric.BaseBrush - * @see {@link http://fabricjs.com/freedrawing/|Freedrawing demo} - */ -fabric.BaseBrush = fabric.util.createClass(/** @lends fabric.BaseBrush.prototype */ { - - /** - * Color of a brush - * @type String - * @default - */ - color: 'rgb(0, 0, 0)', - - /** - * Width of a brush - * @type Number - * @default - */ - width: 1, - - /** - * Shadow object representing shadow of this shape. - * Backwards incompatibility note: This property replaces "shadowColor" (String), "shadowOffsetX" (Number), - * "shadowOffsetY" (Number) and "shadowBlur" (Number) since v1.2.12 - * @type fabric.Shadow - * @default - */ - shadow: null, - - /** - * Line endings style of a brush (one of "butt", "round", "square") - * @type String - * @default - */ - strokeLineCap: 'round', - - /** - * Corner style of a brush (one of "bevil", "round", "miter") - * @type String - * @default - */ - strokeLineJoin: 'round', - - /** - * Stroke Dash Array. - * @type Array - * @default - */ - strokeDashArray: null, - - /** - * Sets shadow of an object - * @param {Object|String} [options] Options object or string (e.g. "2px 2px 10px rgba(0,0,0,0.2)") - * @return {fabric.Object} thisArg - * @chainable - */ - setShadow: function(options) { - this.shadow = new fabric.Shadow(options); - return this; - }, - - /** - * Sets brush styles - * @private - */ - _setBrushStyles: function() { - var ctx = this.canvas.contextTop; - - ctx.strokeStyle = this.color; - ctx.lineWidth = this.width; - ctx.lineCap = this.strokeLineCap; - ctx.lineJoin = this.strokeLineJoin; - if (this.strokeDashArray && fabric.StaticCanvas.supports('setLineDash')) { - ctx.setLineDash(this.strokeDashArray); - } - }, - - /** - * Sets brush shadow styles - * @private - */ - _setShadow: function() { - if (!this.shadow) { - return; - } - - var ctx = this.canvas.contextTop; - - ctx.shadowColor = this.shadow.color; - ctx.shadowBlur = this.shadow.blur; - ctx.shadowOffsetX = this.shadow.offsetX; - ctx.shadowOffsetY = this.shadow.offsetY; - }, - - /** - * Removes brush shadow styles - * @private - */ - _resetShadow: function() { - var ctx = this.canvas.contextTop; - - ctx.shadowColor = ''; - ctx.shadowBlur = ctx.shadowOffsetX = ctx.shadowOffsetY = 0; - } -}); - - -(function() { - - /** - * PencilBrush class - * @class fabric.PencilBrush - * @extends fabric.BaseBrush - */ - fabric.PencilBrush = fabric.util.createClass(fabric.BaseBrush, /** @lends fabric.PencilBrush.prototype */ { - - /** - * Constructor - * @param {fabric.Canvas} canvas - * @return {fabric.PencilBrush} Instance of a pencil brush - */ - initialize: function(canvas) { - this.canvas = canvas; - this._points = [ ]; - }, - - /** - * Inovoked on mouse down - * @param {Object} pointer - */ - onMouseDown: function(pointer) { - this._prepareForDrawing(pointer); - // capture coordinates immediately - // this allows to draw dots (when movement never occurs) - this._captureDrawingPath(pointer); - this._render(); - }, - - /** - * Inovoked on mouse move - * @param {Object} pointer - */ - onMouseMove: function(pointer) { - this._captureDrawingPath(pointer); - // redraw curve - // clear top canvas - this.canvas.clearContext(this.canvas.contextTop); - this._render(); - }, - - /** - * Invoked on mouse up - */ - onMouseUp: function() { - this._finalizeAndAddPath(); - }, - - /** - * @private - * @param {Object} pointer Actual mouse position related to the canvas. - */ - _prepareForDrawing: function(pointer) { - - var p = new fabric.Point(pointer.x, pointer.y); - - this._reset(); - this._addPoint(p); - - this.canvas.contextTop.moveTo(p.x, p.y); - }, - - /** - * @private - * @param {fabric.Point} point Point to be added to points array - */ - _addPoint: function(point) { - this._points.push(point); - }, - - /** - * Clear points array and set contextTop canvas style. - * @private - */ - _reset: function() { - this._points.length = 0; - - this._setBrushStyles(); - this._setShadow(); - }, - - /** - * @private - * @param {Object} pointer Actual mouse position related to the canvas. - */ - _captureDrawingPath: function(pointer) { - var pointerPoint = new fabric.Point(pointer.x, pointer.y); - this._addPoint(pointerPoint); - }, - - /** - * Draw a smooth path on the topCanvas using quadraticCurveTo - * @private - */ - _render: function() { - var ctx = this.canvas.contextTop, - v = this.canvas.viewportTransform, - p1 = this._points[0], - p2 = this._points[1]; - - ctx.save(); - ctx.transform(v[0], v[1], v[2], v[3], v[4], v[5]); - ctx.beginPath(); - - //if we only have 2 points in the path and they are the same - //it means that the user only clicked the canvas without moving the mouse - //then we should be drawing a dot. A path isn't drawn between two identical dots - //that's why we set them apart a bit - if (this._points.length === 2 && p1.x === p2.x && p1.y === p2.y) { - p1.x -= 0.5; - p2.x += 0.5; - } - ctx.moveTo(p1.x, p1.y); - - for (var i = 1, len = this._points.length; i < len; i++) { - // we pick the point between pi + 1 & pi + 2 as the - // end point and p1 as our control point. - var midPoint = p1.midPointFrom(p2); - ctx.quadraticCurveTo(p1.x, p1.y, midPoint.x, midPoint.y); - - p1 = this._points[i]; - p2 = this._points[i + 1]; - } - // Draw last line as a straight line while - // we wait for the next point to be able to calculate - // the bezier control point - ctx.lineTo(p1.x, p1.y); - ctx.stroke(); - ctx.restore(); - }, - - /** - * Converts points to SVG path - * @param {Array} points Array of points - * @param {Number} minX - * @param {Number} minY - * @return {String} SVG path - */ - convertPointsToSVGPath: function(points) { - var path = [], - p1 = new fabric.Point(points[0].x, points[0].y), - p2 = new fabric.Point(points[1].x, points[1].y); - - path.push('M ', points[0].x, ' ', points[0].y, ' '); - for (var i = 1, len = points.length; i < len; i++) { - var midPoint = p1.midPointFrom(p2); - // p1 is our bezier control point - // midpoint is our endpoint - // start point is p(i-1) value. - path.push('Q ', p1.x, ' ', p1.y, ' ', midPoint.x, ' ', midPoint.y, ' '); - p1 = new fabric.Point(points[i].x, points[i].y); - if ((i + 1) < points.length) { - p2 = new fabric.Point(points[i + 1].x, points[i + 1].y); - } - } - path.push('L ', p1.x, ' ', p1.y, ' '); - return path; - }, - - /** - * Creates fabric.Path object to add on canvas - * @param {String} pathData Path data - * @return {fabric.Path} Path to add on canvas - */ - createPath: function(pathData) { - var path = new fabric.Path(pathData, { - fill: null, - stroke: this.color, - strokeWidth: this.width, - strokeLineCap: this.strokeLineCap, - strokeLineJoin: this.strokeLineJoin, - strokeDashArray: this.strokeDashArray, - originX: 'center', - originY: 'center' - }); - - if (this.shadow) { - this.shadow.affectStroke = true; - path.setShadow(this.shadow); - } - - return path; - }, - - /** - * On mouseup after drawing the path on contextTop canvas - * we use the points captured to create an new fabric path object - * and add it to the fabric canvas. - */ - _finalizeAndAddPath: function() { - var ctx = this.canvas.contextTop; - ctx.closePath(); - - var pathData = this.convertPointsToSVGPath(this._points).join(''); - if (pathData === 'M 0 0 Q 0 0 0 0 L 0 0') { - // do not create 0 width/height paths, as they are - // rendered inconsistently across browsers - // Firefox 4, for example, renders a dot, - // whereas Chrome 10 renders nothing - this.canvas.renderAll(); - return; - } - - var path = this.createPath(pathData); - - this.canvas.add(path); - path.setCoords(); - - this.canvas.clearContext(this.canvas.contextTop); - this._resetShadow(); - this.canvas.renderAll(); - - // fire event 'path' created - this.canvas.fire('path:created', { path: path }); - } - }); -})(); - - -/** - * CircleBrush class - * @class fabric.CircleBrush - */ -fabric.CircleBrush = fabric.util.createClass(fabric.BaseBrush, /** @lends fabric.CircleBrush.prototype */ { - - /** - * Width of a brush - * @type Number - * @default - */ - width: 10, - - /** - * Constructor - * @param {fabric.Canvas} canvas - * @return {fabric.CircleBrush} Instance of a circle brush - */ - initialize: function(canvas) { - this.canvas = canvas; - this.points = [ ]; - }, - /** - * Invoked inside on mouse down and mouse move - * @param {Object} pointer - */ - drawDot: function(pointer) { - var point = this.addPoint(pointer), - ctx = this.canvas.contextTop, - v = this.canvas.viewportTransform; - ctx.save(); - ctx.transform(v[0], v[1], v[2], v[3], v[4], v[5]); - - ctx.fillStyle = point.fill; - ctx.beginPath(); - ctx.arc(point.x, point.y, point.radius, 0, Math.PI * 2, false); - ctx.closePath(); - ctx.fill(); - - ctx.restore(); - }, - - /** - * Invoked on mouse down - */ - onMouseDown: function(pointer) { - this.points.length = 0; - this.canvas.clearContext(this.canvas.contextTop); - this._setShadow(); - this.drawDot(pointer); - }, - - /** - * Invoked on mouse move - * @param {Object} pointer - */ - onMouseMove: function(pointer) { - this.drawDot(pointer); - }, - - /** - * Invoked on mouse up - */ - onMouseUp: function() { - var originalRenderOnAddRemove = this.canvas.renderOnAddRemove; - this.canvas.renderOnAddRemove = false; - - var circles = [ ]; - - for (var i = 0, len = this.points.length; i < len; i++) { - var point = this.points[i], - circle = new fabric.Circle({ - radius: point.radius, - left: point.x, - top: point.y, - originX: 'center', - originY: 'center', - fill: point.fill - }); - - this.shadow && circle.setShadow(this.shadow); - - circles.push(circle); - } - var group = new fabric.Group(circles, { originX: 'center', originY: 'center' }); - group.canvas = this.canvas; - - this.canvas.add(group); - this.canvas.fire('path:created', { path: group }); - - this.canvas.clearContext(this.canvas.contextTop); - this._resetShadow(); - this.canvas.renderOnAddRemove = originalRenderOnAddRemove; - this.canvas.renderAll(); - }, - - /** - * @param {Object} pointer - * @return {fabric.Point} Just added pointer point - */ - addPoint: function(pointer) { - var pointerPoint = new fabric.Point(pointer.x, pointer.y), - - circleRadius = fabric.util.getRandomInt( - Math.max(0, this.width - 20), this.width + 20) / 2, - - circleColor = new fabric.Color(this.color) - .setAlpha(fabric.util.getRandomInt(0, 100) / 100) - .toRgba(); - - pointerPoint.radius = circleRadius; - pointerPoint.fill = circleColor; - - this.points.push(pointerPoint); - - return pointerPoint; - } -}); - - -/** - * SprayBrush class - * @class fabric.SprayBrush - */ -fabric.SprayBrush = fabric.util.createClass( fabric.BaseBrush, /** @lends fabric.SprayBrush.prototype */ { - - /** - * Width of a spray - * @type Number - * @default - */ - width: 10, - - /** - * Density of a spray (number of dots per chunk) - * @type Number - * @default - */ - density: 20, - - /** - * Width of spray dots - * @type Number - * @default - */ - dotWidth: 1, - - /** - * Width variance of spray dots - * @type Number - * @default - */ - dotWidthVariance: 1, - - /** - * Whether opacity of a dot should be random - * @type Boolean - * @default - */ - randomOpacity: false, - - /** - * Whether overlapping dots (rectangles) should be removed (for performance reasons) - * @type Boolean - * @default - */ - optimizeOverlapping: true, - - /** - * Constructor - * @param {fabric.Canvas} canvas - * @return {fabric.SprayBrush} Instance of a spray brush - */ - initialize: function(canvas) { - this.canvas = canvas; - this.sprayChunks = [ ]; - }, - - /** - * Invoked on mouse down - * @param {Object} pointer - */ - onMouseDown: function(pointer) { - this.sprayChunks.length = 0; - this.canvas.clearContext(this.canvas.contextTop); - this._setShadow(); - - this.addSprayChunk(pointer); - this.render(); - }, - - /** - * Invoked on mouse move - * @param {Object} pointer - */ - onMouseMove: function(pointer) { - this.addSprayChunk(pointer); - this.render(); - }, - - /** - * Invoked on mouse up - */ - onMouseUp: function() { - var originalRenderOnAddRemove = this.canvas.renderOnAddRemove; - this.canvas.renderOnAddRemove = false; - - var rects = [ ]; - - for (var i = 0, ilen = this.sprayChunks.length; i < ilen; i++) { - var sprayChunk = this.sprayChunks[i]; - - for (var j = 0, jlen = sprayChunk.length; j < jlen; j++) { - - var rect = new fabric.Rect({ - width: sprayChunk[j].width, - height: sprayChunk[j].width, - left: sprayChunk[j].x + 1, - top: sprayChunk[j].y + 1, - originX: 'center', - originY: 'center', - fill: this.color - }); - - this.shadow && rect.setShadow(this.shadow); - rects.push(rect); - } - } - - if (this.optimizeOverlapping) { - rects = this._getOptimizedRects(rects); - } - - var group = new fabric.Group(rects, { originX: 'center', originY: 'center' }); - group.canvas = this.canvas; - - this.canvas.add(group); - this.canvas.fire('path:created', { path: group }); - - this.canvas.clearContext(this.canvas.contextTop); - this._resetShadow(); - this.canvas.renderOnAddRemove = originalRenderOnAddRemove; - this.canvas.renderAll(); - }, - - /** - * @private - * @param {Array} rects - */ - _getOptimizedRects: function(rects) { - - // avoid creating duplicate rects at the same coordinates - var uniqueRects = { }, key; - - for (var i = 0, len = rects.length; i < len; i++) { - key = rects[i].left + '' + rects[i].top; - if (!uniqueRects[key]) { - uniqueRects[key] = rects[i]; - } - } - var uniqueRectsArray = [ ]; - for (key in uniqueRects) { - uniqueRectsArray.push(uniqueRects[key]); - } - - return uniqueRectsArray; - }, - - /** - * Renders brush - */ - render: function() { - var ctx = this.canvas.contextTop; - ctx.fillStyle = this.color; - - var v = this.canvas.viewportTransform; - ctx.save(); - ctx.transform(v[0], v[1], v[2], v[3], v[4], v[5]); - - for (var i = 0, len = this.sprayChunkPoints.length; i < len; i++) { - var point = this.sprayChunkPoints[i]; - if (typeof point.opacity !== 'undefined') { - ctx.globalAlpha = point.opacity; - } - ctx.fillRect(point.x, point.y, point.width, point.width); - } - ctx.restore(); - }, - - /** - * @param {Object} pointer - */ - addSprayChunk: function(pointer) { - this.sprayChunkPoints = [ ]; - - var x, y, width, radius = this.width / 2; - - for (var i = 0; i < this.density; i++) { - - x = fabric.util.getRandomInt(pointer.x - radius, pointer.x + radius); - y = fabric.util.getRandomInt(pointer.y - radius, pointer.y + radius); - - if (this.dotWidthVariance) { - width = fabric.util.getRandomInt( - // bottom clamp width to 1 - Math.max(1, this.dotWidth - this.dotWidthVariance), - this.dotWidth + this.dotWidthVariance); - } - else { - width = this.dotWidth; - } - - var point = new fabric.Point(x, y); - point.width = width; - - if (this.randomOpacity) { - point.opacity = fabric.util.getRandomInt(0, 100) / 100; - } - - this.sprayChunkPoints.push(point); - } - - this.sprayChunks.push(this.sprayChunkPoints); - } -}); - - -/** - * PatternBrush class - * @class fabric.PatternBrush - * @extends fabric.BaseBrush - */ -fabric.PatternBrush = fabric.util.createClass(fabric.PencilBrush, /** @lends fabric.PatternBrush.prototype */ { - - getPatternSrc: function() { - - var dotWidth = 20, - dotDistance = 5, - patternCanvas = fabric.document.createElement('canvas'), - patternCtx = patternCanvas.getContext('2d'); - - patternCanvas.width = patternCanvas.height = dotWidth + dotDistance; - - patternCtx.fillStyle = this.color; - patternCtx.beginPath(); - patternCtx.arc(dotWidth / 2, dotWidth / 2, dotWidth / 2, 0, Math.PI * 2, false); - patternCtx.closePath(); - patternCtx.fill(); - - return patternCanvas; - }, - - getPatternSrcFunction: function() { - return String(this.getPatternSrc).replace('this.color', '"' + this.color + '"'); - }, - - /** - * Creates "pattern" instance property - */ - getPattern: function() { - return this.canvas.contextTop.createPattern(this.source || this.getPatternSrc(), 'repeat'); - }, - - /** - * Sets brush styles - */ - _setBrushStyles: function() { - this.callSuper('_setBrushStyles'); - this.canvas.contextTop.strokeStyle = this.getPattern(); - }, - - /** - * Creates path - */ - createPath: function(pathData) { - var path = this.callSuper('createPath', pathData); - path.stroke = new fabric.Pattern({ - source: this.source || this.getPatternSrcFunction() - }); - return path; - } -}); - - -(function() { - - var getPointer = fabric.util.getPointer, - degreesToRadians = fabric.util.degreesToRadians, - radiansToDegrees = fabric.util.radiansToDegrees, - atan2 = Math.atan2, - abs = Math.abs, - - STROKE_OFFSET = 0.5; - - /** - * Canvas class - * @class fabric.Canvas - * @extends fabric.StaticCanvas - * @tutorial {@link http://fabricjs.com/fabric-intro-part-1/#canvas} - * @see {@link fabric.Canvas#initialize} for constructor definition - * - * @fires object:modified - * @fires object:rotating - * @fires object:scaling - * @fires object:moving - * @fires object:selected - * - * @fires before:selection:cleared - * @fires selection:cleared - * @fires selection:created - * - * @fires path:created - * @fires mouse:down - * @fires mouse:move - * @fires mouse:up - * @fires mouse:over - * @fires mouse:out - * - */ - fabric.Canvas = fabric.util.createClass(fabric.StaticCanvas, /** @lends fabric.Canvas.prototype */ { - - /** - * Constructor - * @param {HTMLElement | String} el <canvas> element to initialize instance on - * @param {Object} [options] Options object - * @return {Object} thisArg - */ - initialize: function(el, options) { - options || (options = { }); - - this._initStatic(el, options); - this._initInteractive(); - this._createCacheCanvas(); - - fabric.Canvas.activeInstance = this; - }, - - /** - * When true, objects can be transformed by one side (unproportionally) - * @type Boolean - * @default - */ - uniScaleTransform: false, - - /** - * When true, objects use center point as the origin of scale transformation. - * Backwards incompatibility note: This property replaces "centerTransform" (Boolean). - * @since 1.3.4 - * @type Boolean - * @default - */ - centeredScaling: false, - - /** - * When true, objects use center point as the origin of rotate transformation. - * Backwards incompatibility note: This property replaces "centerTransform" (Boolean). - * @since 1.3.4 - * @type Boolean - * @default - */ - centeredRotation: false, - - /** - * Indicates that canvas is interactive. This property should not be changed. - * @type Boolean - * @default - */ - interactive: true, - - /** - * Indicates whether group selection should be enabled - * @type Boolean - * @default - */ - selection: true, - - /** - * Color of selection - * @type String - * @default - */ - selectionColor: 'rgba(100, 100, 255, 0.3)', // blue - - /** - * Default dash array pattern - * If not empty the selection border is dashed - * @type Array - */ - selectionDashArray: [ ], - - /** - * Color of the border of selection (usually slightly darker than color of selection itself) - * @type String - * @default - */ - selectionBorderColor: 'rgba(255, 255, 255, 0.3)', - - /** - * Width of a line used in object/group selection - * @type Number - * @default - */ - selectionLineWidth: 1, - - /** - * Default cursor value used when hovering over an object on canvas - * @type String - * @default - */ - hoverCursor: 'move', - - /** - * Default cursor value used when moving an object on canvas - * @type String - * @default - */ - moveCursor: 'move', - - /** - * Default cursor value used for the entire canvas - * @type String - * @default - */ - defaultCursor: 'default', - - /** - * Cursor value used during free drawing - * @type String - * @default - */ - freeDrawingCursor: 'crosshair', - - /** - * Cursor value used for rotation point - * @type String - * @default - */ - rotationCursor: 'crosshair', - - /** - * Default element class that's given to wrapper (div) element of canvas - * @type String - * @default - */ - containerClass: 'canvas-container', - - /** - * When true, object detection happens on per-pixel basis rather than on per-bounding-box - * @type Boolean - * @default - */ - perPixelTargetFind: false, - - /** - * Number of pixels around target pixel to tolerate (consider active) during object detection - * @type Number - * @default - */ - targetFindTolerance: 0, - - /** - * When true, target detection is skipped when hovering over canvas. This can be used to improve performance. - * @type Boolean - * @default - */ - skipTargetFind: false, - - /** - * @private - */ - _initInteractive: function() { - this._currentTransform = null; - this._groupSelector = null; - this._initWrapperElement(); - this._createUpperCanvas(); - this._initEventListeners(); - - this.freeDrawingBrush = fabric.PencilBrush && new fabric.PencilBrush(this); - - this.calcOffset(); - }, - - /** - * Resets the current transform to its original values and chooses the type of resizing based on the event - * @private - * @param {Event} e Event object fired on mousemove - */ - _resetCurrentTransform: function(e) { - var t = this._currentTransform; - - t.target.set({ - scaleX: t.original.scaleX, - scaleY: t.original.scaleY, - left: t.original.left, - top: t.original.top - }); - - if (this._shouldCenterTransform(e, t.target)) { - if (t.action === 'rotate') { - this._setOriginToCenter(t.target); - } - else { - if (t.originX !== 'center') { - if (t.originX === 'right') { - t.mouseXSign = -1; - } - else { - t.mouseXSign = 1; - } - } - if (t.originY !== 'center') { - if (t.originY === 'bottom') { - t.mouseYSign = -1; - } - else { - t.mouseYSign = 1; - } - } - - t.originX = 'center'; - t.originY = 'center'; - } - } - else { - t.originX = t.original.originX; - t.originY = t.original.originY; - } - }, - - /** - * Checks if point is contained within an area of given object - * @param {Event} e Event object - * @param {fabric.Object} target Object to test against - * @return {Boolean} true if point is contained within an area of given object - */ - containsPoint: function (e, target) { - var pointer = this.getPointer(e, true), - xy = this._normalizePointer(target, pointer); - - // http://www.geog.ubc.ca/courses/klink/gis.notes/ncgia/u32.html - // http://idav.ucdavis.edu/~okreylos/TAship/Spring2000/PointInPolygon.html - return (target.containsPoint(xy) || target._findTargetCorner(pointer)); - }, - - /** - * @private - */ - _normalizePointer: function (object, pointer) { - var activeGroup = this.getActiveGroup(), - x = pointer.x, - y = pointer.y, - isObjectInGroup = ( - activeGroup && - object.type !== 'group' && - activeGroup.contains(object)), - lt; - - if (isObjectInGroup) { - lt = new fabric.Point(activeGroup.left, activeGroup.top); - lt = fabric.util.transformPoint(lt, this.viewportTransform, true); - x -= lt.x; - y -= lt.y; - } - return { x: x, y: y }; - }, - - /** - * Returns true if object is transparent at a certain location - * @param {fabric.Object} target Object to check - * @param {Number} x Left coordinate - * @param {Number} y Top coordinate - * @return {Boolean} - */ - isTargetTransparent: function (target, x, y) { - var hasBorders = target.hasBorders, - transparentCorners = target.transparentCorners; - - target.hasBorders = target.transparentCorners = false; - - this._draw(this.contextCache, target); - - target.hasBorders = hasBorders; - target.transparentCorners = transparentCorners; - - var isTransparent = fabric.util.isTransparent( - this.contextCache, x, y, this.targetFindTolerance); - - this.clearContext(this.contextCache); - - return isTransparent; - }, - - /** - * @private - * @param {Event} e Event object - * @param {fabric.Object} target - */ - _shouldClearSelection: function (e, target) { - var activeGroup = this.getActiveGroup(), - activeObject = this.getActiveObject(); - - return ( - !target - || - (target && - activeGroup && - !activeGroup.contains(target) && - activeGroup !== target && - !e.shiftKey) - || - (target && !target.evented) - || - (target && - !target.selectable && - activeObject && - activeObject !== target) - ); - }, - - /** - * @private - * @param {Event} e Event object - * @param {fabric.Object} target - */ - _shouldCenterTransform: function (e, target) { - if (!target) { - return; - } - - var t = this._currentTransform, - centerTransform; - - if (t.action === 'scale' || t.action === 'scaleX' || t.action === 'scaleY') { - centerTransform = this.centeredScaling || target.centeredScaling; - } - else if (t.action === 'rotate') { - centerTransform = this.centeredRotation || target.centeredRotation; - } - - return centerTransform ? !e.altKey : e.altKey; - }, - - /** - * @private - */ - _getOriginFromCorner: function(target, corner) { - var origin = { - x: target.originX, - y: target.originY - }; - - if (corner === 'ml' || corner === 'tl' || corner === 'bl') { - origin.x = 'right'; - } - else if (corner === 'mr' || corner === 'tr' || corner === 'br') { - origin.x = 'left'; - } - - if (corner === 'tl' || corner === 'mt' || corner === 'tr') { - origin.y = 'bottom'; - } - else if (corner === 'bl' || corner === 'mb' || corner === 'br') { - origin.y = 'top'; - } - - return origin; - }, - - /** - * @private - */ - _getActionFromCorner: function(target, corner) { - var action = 'drag'; - if (corner) { - action = (corner === 'ml' || corner === 'mr') - ? 'scaleX' - : (corner === 'mt' || corner === 'mb') - ? 'scaleY' - : corner === 'mtr' - ? 'rotate' - : 'scale'; - } - return action; - }, - - /** - * @private - * @param {Event} e Event object - * @param {fabric.Object} target - */ - _setupCurrentTransform: function (e, target) { - if (!target) { - return; - } - - var pointer = this.getPointer(e), - corner = target._findTargetCorner(this.getPointer(e, true)), - action = this._getActionFromCorner(target, corner), - origin = this._getOriginFromCorner(target, corner); - - this._currentTransform = { - target: target, - action: action, - scaleX: target.scaleX, - scaleY: target.scaleY, - offsetX: pointer.x - target.left, - offsetY: pointer.y - target.top, - originX: origin.x, - originY: origin.y, - ex: pointer.x, - ey: pointer.y, - left: target.left, - top: target.top, - theta: degreesToRadians(target.angle), - width: target.width * target.scaleX, - mouseXSign: 1, - mouseYSign: 1 - }; - - this._currentTransform.original = { - left: target.left, - top: target.top, - scaleX: target.scaleX, - scaleY: target.scaleY, - originX: origin.x, - originY: origin.y - }; - - this._resetCurrentTransform(e); - }, - - /** - * Translates object by "setting" its left/top - * @private - * @param {Number} x pointer's x coordinate - * @param {Number} y pointer's y coordinate - */ - _translateObject: function (x, y) { - var target = this._currentTransform.target; - - if (!target.get('lockMovementX')) { - target.set('left', x - this._currentTransform.offsetX); - } - if (!target.get('lockMovementY')) { - target.set('top', y - this._currentTransform.offsetY); - } - }, - - /** - * Scales object by invoking its scaleX/scaleY methods - * @private - * @param {Number} x pointer's x coordinate - * @param {Number} y pointer's y coordinate - * @param {String} by Either 'x' or 'y' - specifies dimension constraint by which to scale an object. - * When not provided, an object is scaled by both dimensions equally - */ - _scaleObject: function (x, y, by) { - var t = this._currentTransform, - target = t.target, - lockScalingX = target.get('lockScalingX'), - lockScalingY = target.get('lockScalingY'), - lockScalingFlip = target.get('lockScalingFlip'); - - if (lockScalingX && lockScalingY) { - return; - } - - // Get the constraint point - var constraintPosition = target.translateToOriginPoint(target.getCenterPoint(), t.originX, t.originY), - localMouse = target.toLocalPoint(new fabric.Point(x, y), t.originX, t.originY); - - this._setLocalMouse(localMouse, t); - - // Actually scale the object - this._setObjectScale(localMouse, t, lockScalingX, lockScalingY, by, lockScalingFlip); - - // Make sure the constraints apply - target.setPositionByOrigin(constraintPosition, t.originX, t.originY); - }, - - /** - * @private - */ - _setObjectScale: function(localMouse, transform, lockScalingX, lockScalingY, by, lockScalingFlip) { - var target = transform.target, forbidScalingX = false, forbidScalingY = false, - strokeWidth = target.stroke ? target.strokeWidth : 0; - - transform.newScaleX = localMouse.x / (target.width + strokeWidth / 2); - transform.newScaleY = localMouse.y / (target.height + strokeWidth / 2); - - if (lockScalingFlip && transform.newScaleX <= 0 && transform.newScaleX < target.scaleX) { - forbidScalingX = true; - } - - if (lockScalingFlip && transform.newScaleY <= 0 && transform.newScaleY < target.scaleY) { - forbidScalingY = true; - } - - if (by === 'equally' && !lockScalingX && !lockScalingY) { - forbidScalingX || forbidScalingY || this._scaleObjectEqually(localMouse, target, transform); - } - else if (!by) { - forbidScalingX || lockScalingX || target.set('scaleX', transform.newScaleX); - forbidScalingY || lockScalingY || target.set('scaleY', transform.newScaleY); - } - else if (by === 'x' && !target.get('lockUniScaling')) { - forbidScalingX || lockScalingX || target.set('scaleX', transform.newScaleX); - } - else if (by === 'y' && !target.get('lockUniScaling')) { - forbidScalingY || lockScalingY || target.set('scaleY', transform.newScaleY); - } - - forbidScalingX || forbidScalingY || this._flipObject(transform, by); - - }, - - /** - * @private - */ - _scaleObjectEqually: function(localMouse, target, transform) { - - var dist = localMouse.y + localMouse.x, - strokeWidth = target.stroke ? target.strokeWidth : 0, - lastDist = (target.height + (strokeWidth / 2)) * transform.original.scaleY + - (target.width + (strokeWidth / 2)) * transform.original.scaleX; - - // We use transform.scaleX/Y instead of target.scaleX/Y - // because the object may have a min scale and we'll loose the proportions - transform.newScaleX = transform.original.scaleX * dist / lastDist; - transform.newScaleY = transform.original.scaleY * dist / lastDist; - - target.set('scaleX', transform.newScaleX); - target.set('scaleY', transform.newScaleY); - }, - - /** - * @private - */ - _flipObject: function(transform, by) { - if (transform.newScaleX < 0 && by !== 'y') { - if (transform.originX === 'left') { - transform.originX = 'right'; - } - else if (transform.originX === 'right') { - transform.originX = 'left'; - } - } - - if (transform.newScaleY < 0 && by !== 'x') { - if (transform.originY === 'top') { - transform.originY = 'bottom'; - } - else if (transform.originY === 'bottom') { - transform.originY = 'top'; - } - } - }, - - /** - * @private - */ - _setLocalMouse: function(localMouse, t) { - var target = t.target; - - if (t.originX === 'right') { - localMouse.x *= -1; - } - else if (t.originX === 'center') { - localMouse.x *= t.mouseXSign * 2; - - if (localMouse.x < 0) { - t.mouseXSign = -t.mouseXSign; - } - } - - if (t.originY === 'bottom') { - localMouse.y *= -1; - } - else if (t.originY === 'center') { - localMouse.y *= t.mouseYSign * 2; - - if (localMouse.y < 0) { - t.mouseYSign = -t.mouseYSign; - } - } - - // adjust the mouse coordinates when dealing with padding - if (abs(localMouse.x) > target.padding) { - if (localMouse.x < 0) { - localMouse.x += target.padding; - } - else { - localMouse.x -= target.padding; - } - } - else { // mouse is within the padding, set to 0 - localMouse.x = 0; - } - - if (abs(localMouse.y) > target.padding) { - if (localMouse.y < 0) { - localMouse.y += target.padding; - } - else { - localMouse.y -= target.padding; - } - } - else { - localMouse.y = 0; - } - }, - - /** - * Rotates object by invoking its rotate method - * @private - * @param {Number} x pointer's x coordinate - * @param {Number} y pointer's y coordinate - */ - _rotateObject: function (x, y) { - - var t = this._currentTransform; - - if (t.target.get('lockRotation')) { - return; - } - - var lastAngle = atan2(t.ey - t.top, t.ex - t.left), - curAngle = atan2(y - t.top, x - t.left), - angle = radiansToDegrees(curAngle - lastAngle + t.theta); - - // normalize angle to positive value - if (angle < 0) { - angle = 360 + angle; - } - - t.target.angle = angle % 360; - }, - - /** - * Set the cursor type of the canvas element - * @param {String} value Cursor type of the canvas element. - * @see http://www.w3.org/TR/css3-ui/#cursor - */ - setCursor: function (value) { - this.upperCanvasEl.style.cursor = value; - }, - - /** - * @private - */ - _resetObjectTransform: function (target) { - target.scaleX = 1; - target.scaleY = 1; - target.setAngle(0); - }, - - /** - * @private - */ - _drawSelection: function () { - var ctx = this.contextTop, - groupSelector = this._groupSelector, - left = groupSelector.left, - top = groupSelector.top, - aleft = abs(left), - atop = abs(top); - - ctx.fillStyle = this.selectionColor; - - ctx.fillRect( - groupSelector.ex - ((left > 0) ? 0 : -left), - groupSelector.ey - ((top > 0) ? 0 : -top), - aleft, - atop - ); - - ctx.lineWidth = this.selectionLineWidth; - ctx.strokeStyle = this.selectionBorderColor; - - // selection border - if (this.selectionDashArray.length > 1) { - - var px = groupSelector.ex + STROKE_OFFSET - ((left > 0) ? 0: aleft), - py = groupSelector.ey + STROKE_OFFSET - ((top > 0) ? 0: atop); - - ctx.beginPath(); - - fabric.util.drawDashedLine(ctx, px, py, px + aleft, py, this.selectionDashArray); - fabric.util.drawDashedLine(ctx, px, py + atop - 1, px + aleft, py + atop - 1, this.selectionDashArray); - fabric.util.drawDashedLine(ctx, px, py, px, py + atop, this.selectionDashArray); - fabric.util.drawDashedLine(ctx, px + aleft - 1, py, px + aleft - 1, py + atop, this.selectionDashArray); - - ctx.closePath(); - ctx.stroke(); - } - else { - ctx.strokeRect( - groupSelector.ex + STROKE_OFFSET - ((left > 0) ? 0 : aleft), - groupSelector.ey + STROKE_OFFSET - ((top > 0) ? 0 : atop), - aleft, - atop - ); - } - }, - - /** - * @private - */ - _isLastRenderedObject: function(e) { - return ( - this.controlsAboveOverlay && - this.lastRenderedObjectWithControlsAboveOverlay && - this.lastRenderedObjectWithControlsAboveOverlay.visible && - this.containsPoint(e, this.lastRenderedObjectWithControlsAboveOverlay) && - this.lastRenderedObjectWithControlsAboveOverlay._findTargetCorner(this.getPointer(e, true))); - }, - - /** - * Method that determines what object we are clicking on - * @param {Event} e mouse event - * @param {Boolean} skipGroup when true, group is skipped and only objects are traversed through - */ - findTarget: function (e, skipGroup) { - if (this.skipTargetFind) { - return; - } - - if (this._isLastRenderedObject(e)) { - return this.lastRenderedObjectWithControlsAboveOverlay; - } - - // first check current group (if one exists) - var activeGroup = this.getActiveGroup(); - if (activeGroup && !skipGroup && this.containsPoint(e, activeGroup)) { - return activeGroup; - } - - var target = this._searchPossibleTargets(e); - this._fireOverOutEvents(target); - - return target; - }, - - /** - * @private - */ - _fireOverOutEvents: function(target) { - if (target) { - if (this._hoveredTarget !== target) { - this.fire('mouse:over', { target: target }); - target.fire('mouseover'); - if (this._hoveredTarget) { - this.fire('mouse:out', { target: this._hoveredTarget }); - this._hoveredTarget.fire('mouseout'); - } - this._hoveredTarget = target; - } - } - else if (this._hoveredTarget) { - this.fire('mouse:out', { target: this._hoveredTarget }); - this._hoveredTarget.fire('mouseout'); - this._hoveredTarget = null; - } - }, - - /** - * @private - */ - _checkTarget: function(e, obj, pointer) { - if (obj && - obj.visible && - obj.evented && - this.containsPoint(e, obj)){ - if ((this.perPixelTargetFind || obj.perPixelTargetFind) && !obj.isEditing) { - var isTransparent = this.isTargetTransparent(obj, pointer.x, pointer.y); - if (!isTransparent) { - return true; - } - } - else { - return true; - } - } - }, - - /** - * @private - */ - _searchPossibleTargets: function(e) { - - // Cache all targets where their bounding box contains point. - var target, - pointer = this.getPointer(e, true), - i = this._objects.length; - // Do not check for currently grouped objects, since we check the parent group itself. - while (i--) { - if (!this._objects[i].group && this._checkTarget(e, this._objects[i], pointer)){ - this.relatedTarget = this._objects[i]; - target = this._objects[i]; - break; - } - } - - return target; - }, - - /** - * Returns pointer coordinates relative to canvas. - * @param {Event} e - * @return {Object} object with "x" and "y" number values - */ - getPointer: function (e, ignoreZoom, upperCanvasEl) { - if (!upperCanvasEl) { - upperCanvasEl = this.upperCanvasEl; - } - var pointer = getPointer(e, upperCanvasEl), - bounds = upperCanvasEl.getBoundingClientRect(), - boundsWidth = bounds.width || 0, - boundsHeight = bounds.height || 0, - cssScale; - - if (!boundsWidth || !boundsHeight ) { - if ('top' in bounds && 'bottom' in bounds) { - boundsHeight = Math.abs( bounds.top - bounds.bottom ); - } - if ('right' in bounds && 'left' in bounds) { - boundsWidth = Math.abs( bounds.right - bounds.left ); - } - } - - this.calcOffset(); - - pointer.x = pointer.x - this._offset.left; - pointer.y = pointer.y - this._offset.top; - if (!ignoreZoom) { - pointer = fabric.util.transformPoint( - pointer, - fabric.util.invertTransform(this.viewportTransform) - ); - } - - if (boundsWidth === 0 || boundsHeight === 0) { - // If bounds are not available (i.e. not visible), do not apply scale. - cssScale = { width: 1, height: 1 }; - } - else { - cssScale = { - width: upperCanvasEl.width / boundsWidth, - height: upperCanvasEl.height / boundsHeight - }; - } - - return { - x: pointer.x * cssScale.width, - y: pointer.y * cssScale.height - }; - }, - - /** - * @private - * @throws {CANVAS_INIT_ERROR} If canvas can not be initialized - */ - _createUpperCanvas: function () { - var lowerCanvasClass = this.lowerCanvasEl.className.replace(/\s*lower-canvas\s*/, ''); - - this.upperCanvasEl = this._createCanvasElement(); - fabric.util.addClass(this.upperCanvasEl, 'upper-canvas ' + lowerCanvasClass); - - this.wrapperEl.appendChild(this.upperCanvasEl); - - this._copyCanvasStyle(this.lowerCanvasEl, this.upperCanvasEl); - this._applyCanvasStyle(this.upperCanvasEl); - this.contextTop = this.upperCanvasEl.getContext('2d'); - }, - - /** - * @private - */ - _createCacheCanvas: function () { - this.cacheCanvasEl = this._createCanvasElement(); - this.cacheCanvasEl.setAttribute('width', this.width); - this.cacheCanvasEl.setAttribute('height', this.height); - this.contextCache = this.cacheCanvasEl.getContext('2d'); - }, - - /** - * @private - */ - _initWrapperElement: function () { - this.wrapperEl = fabric.util.wrapElement(this.lowerCanvasEl, 'div', { - 'class': this.containerClass - }); - fabric.util.setStyle(this.wrapperEl, { - width: this.getWidth() + 'px', - height: this.getHeight() + 'px', - position: 'relative' - }); - fabric.util.makeElementUnselectable(this.wrapperEl); - }, - - /** - * @private - * @param {HTMLElement} element canvas element to apply styles on - */ - _applyCanvasStyle: function (element) { - var width = this.getWidth() || element.width, - height = this.getHeight() || element.height; - - fabric.util.setStyle(element, { - position: 'absolute', - width: width + 'px', - height: height + 'px', - left: 0, - top: 0 - }); - element.width = width; - element.height = height; - fabric.util.makeElementUnselectable(element); - }, - - /** - * Copys the the entire inline style from one element (fromEl) to another (toEl) - * @private - * @param {Element} fromEl Element style is copied from - * @param {Element} toEl Element copied style is applied to - */ - _copyCanvasStyle: function (fromEl, toEl) { - toEl.style.cssText = fromEl.style.cssText; - }, - - /** - * Returns context of canvas where object selection is drawn - * @return {CanvasRenderingContext2D} - */ - getSelectionContext: function() { - return this.contextTop; - }, - - /** - * Returns <canvas> element on which object selection is drawn - * @return {HTMLCanvasElement} - */ - getSelectionElement: function () { - return this.upperCanvasEl; - }, - - /** - * @private - * @param {Object} object - */ - _setActiveObject: function(object) { - if (this._activeObject) { - this._activeObject.set('active', false); - } - this._activeObject = object; - object.set('active', true); - }, - - /** - * Sets given object as the only active object on canvas - * @param {fabric.Object} object Object to set as an active one - * @param {Event} [e] Event (passed along when firing "object:selected") - * @return {fabric.Canvas} thisArg - * @chainable - */ - setActiveObject: function (object, e) { - this._setActiveObject(object); - this.renderAll(); - this.fire('object:selected', { target: object, e: e }); - object.fire('selected', { e: e }); - return this; - }, - - /** - * Returns currently active object - * @return {fabric.Object} active object - */ - getActiveObject: function () { - return this._activeObject; - }, - - /** - * @private - */ - _discardActiveObject: function() { - if (this._activeObject) { - this._activeObject.set('active', false); - } - this._activeObject = null; - }, - - /** - * Discards currently active object - * @return {fabric.Canvas} thisArg - * @chainable - */ - discardActiveObject: function (e) { - this._discardActiveObject(); - this.renderAll(); - this.fire('selection:cleared', { e: e }); - return this; - }, - - /** - * @private - * @param {fabric.Group} group - */ - _setActiveGroup: function(group) { - this._activeGroup = group; - if (group) { - group.set('active', true); - } - }, - - /** - * Sets active group to a speicified one - * @param {fabric.Group} group Group to set as a current one - * @return {fabric.Canvas} thisArg - * @chainable - */ - setActiveGroup: function (group, e) { - this._setActiveGroup(group); - if (group) { - this.fire('object:selected', { target: group, e: e }); - group.fire('selected', { e: e }); - } - return this; - }, - - /** - * Returns currently active group - * @return {fabric.Group} Current group - */ - getActiveGroup: function () { - return this._activeGroup; - }, - - /** - * @private - */ - _discardActiveGroup: function() { - var g = this.getActiveGroup(); - if (g) { - g.destroy(); - } - this.setActiveGroup(null); - }, - - /** - * Discards currently active group - * @return {fabric.Canvas} thisArg - */ - discardActiveGroup: function (e) { - this._discardActiveGroup(); - this.fire('selection:cleared', { e: e }); - return this; - }, - - /** - * Deactivates all objects on canvas, removing any active group or object - * @return {fabric.Canvas} thisArg - */ - deactivateAll: function () { - var allObjects = this.getObjects(), - i = 0, - len = allObjects.length; - for ( ; i < len; i++) { - allObjects[i].set('active', false); - } - this._discardActiveGroup(); - this._discardActiveObject(); - return this; - }, - - /** - * Deactivates all objects and dispatches appropriate events - * @return {fabric.Canvas} thisArg - */ - deactivateAllWithDispatch: function (e) { - var activeObject = this.getActiveGroup() || this.getActiveObject(); - if (activeObject) { - this.fire('before:selection:cleared', { target: activeObject, e: e }); - } - this.deactivateAll(); - if (activeObject) { - this.fire('selection:cleared', { e: e }); - } - return this; - }, - - /** - * Draws objects' controls (borders/controls) - * @param {CanvasRenderingContext2D} ctx Context to render controls on - */ - drawControls: function(ctx) { - var activeGroup = this.getActiveGroup(); - if (activeGroup) { - this._drawGroupControls(ctx, activeGroup); - } - else { - this._drawObjectsControls(ctx); - } - }, - - /** - * @private - */ - _drawGroupControls: function(ctx, activeGroup) { - activeGroup._renderControls(ctx); - }, - - /** - * @private - */ - _drawObjectsControls: function(ctx) { - for (var i = 0, len = this._objects.length; i < len; ++i) { - if (!this._objects[i] || !this._objects[i].active) { - continue; - } - this._objects[i]._renderControls(ctx); - this.lastRenderedObjectWithControlsAboveOverlay = this._objects[i]; - } - } - }); - - // copying static properties manually to work around Opera's bug, - // where "prototype" property is enumerable and overrides existing prototype - for (var prop in fabric.StaticCanvas) { - if (prop !== 'prototype') { - fabric.Canvas[prop] = fabric.StaticCanvas[prop]; - } - } - - if (fabric.isTouchSupported) { - /** @ignore */ - fabric.Canvas.prototype._setCursorFromEvent = function() { }; - } - - /** - * @class fabric.Element - * @alias fabric.Canvas - * @deprecated Use {@link fabric.Canvas} instead. - * @constructor - */ - fabric.Element = fabric.Canvas; -})(); - - -(function() { - - var cursorOffset = { - mt: 0, // n - tr: 1, // ne - mr: 2, // e - br: 3, // se - mb: 4, // s - bl: 5, // sw - ml: 6, // w - tl: 7 // nw - }, - addListener = fabric.util.addListener, - removeListener = fabric.util.removeListener; - - fabric.util.object.extend(fabric.Canvas.prototype, /** @lends fabric.Canvas.prototype */ { - - /** - * Map of cursor style values for each of the object controls - * @private - */ - cursorMap: [ - 'n-resize', - 'ne-resize', - 'e-resize', - 'se-resize', - 's-resize', - 'sw-resize', - 'w-resize', - 'nw-resize' - ], - - /** - * Adds mouse listeners to canvas - * @private - */ - _initEventListeners: function () { - - this._bindEvents(); - - addListener(fabric.window, 'resize', this._onResize); - - // mouse events - addListener(this.upperCanvasEl, 'mousedown', this._onMouseDown); - addListener(this.upperCanvasEl, 'mousemove', this._onMouseMove); - addListener(this.upperCanvasEl, 'mousewheel', this._onMouseWheel); - - // touch events - addListener(this.upperCanvasEl, 'touchstart', this._onMouseDown); - addListener(this.upperCanvasEl, 'touchmove', this._onMouseMove); - - if (typeof eventjs !== 'undefined' && 'add' in eventjs) { - eventjs.add(this.upperCanvasEl, 'gesture', this._onGesture); - eventjs.add(this.upperCanvasEl, 'drag', this._onDrag); - eventjs.add(this.upperCanvasEl, 'orientation', this._onOrientationChange); - eventjs.add(this.upperCanvasEl, 'shake', this._onShake); - eventjs.add(this.upperCanvasEl, 'longpress', this._onLongPress); - } - }, - - /** - * @private - */ - _bindEvents: function() { - this._onMouseDown = this._onMouseDown.bind(this); - this._onMouseMove = this._onMouseMove.bind(this); - this._onMouseUp = this._onMouseUp.bind(this); - this._onResize = this._onResize.bind(this); - this._onGesture = this._onGesture.bind(this); - this._onDrag = this._onDrag.bind(this); - this._onShake = this._onShake.bind(this); - this._onLongPress = this._onLongPress.bind(this); - this._onOrientationChange = this._onOrientationChange.bind(this); - this._onMouseWheel = this._onMouseWheel.bind(this); - }, - - /** - * Removes all event listeners - */ - removeListeners: function() { - removeListener(fabric.window, 'resize', this._onResize); - - removeListener(this.upperCanvasEl, 'mousedown', this._onMouseDown); - removeListener(this.upperCanvasEl, 'mousemove', this._onMouseMove); - removeListener(this.upperCanvasEl, 'mousewheel', this._onMouseWheel); - - removeListener(this.upperCanvasEl, 'touchstart', this._onMouseDown); - removeListener(this.upperCanvasEl, 'touchmove', this._onMouseMove); - - if (typeof eventjs !== 'undefined' && 'remove' in eventjs) { - eventjs.remove(this.upperCanvasEl, 'gesture', this._onGesture); - eventjs.remove(this.upperCanvasEl, 'drag', this._onDrag); - eventjs.remove(this.upperCanvasEl, 'orientation', this._onOrientationChange); - eventjs.remove(this.upperCanvasEl, 'shake', this._onShake); - eventjs.remove(this.upperCanvasEl, 'longpress', this._onLongPress); - } - }, - - /** - * @private - * @param {Event} [e] Event object fired on Event.js gesture - * @param {Event} [self] Inner Event object - */ - _onGesture: function(e, self) { - this.__onTransformGesture && this.__onTransformGesture(e, self); - }, - - /** - * @private - * @param {Event} [e] Event object fired on Event.js drag - * @param {Event} [self] Inner Event object - */ - _onDrag: function(e, self) { - this.__onDrag && this.__onDrag(e, self); - }, - - /** - * @private - * @param {Event} [e] Event object fired on Event.js wheel event - * @param {Event} [self] Inner Event object - */ - _onMouseWheel: function(e, self) { - this.__onMouseWheel && this.__onMouseWheel(e, self); - }, - - /** - * @private - * @param {Event} [e] Event object fired on Event.js orientation change - * @param {Event} [self] Inner Event object - */ - _onOrientationChange: function(e, self) { - this.__onOrientationChange && this.__onOrientationChange(e, self); - }, - - /** - * @private - * @param {Event} [e] Event object fired on Event.js shake - * @param {Event} [self] Inner Event object - */ - _onShake: function(e, self) { - this.__onShake && this.__onShake(e, self); - }, - /** - * @private - * @param {Event} [e] Event object fired on Event.js shake - * @param {Event} [self] Inner Event object - */ - _onLongPress: function(e, self) { - this.__onLongPress && this.__onLongPress(e, self); - }, - - /** - * @private - * @param {Event} e Event object fired on mousedown - */ - _onMouseDown: function (e) { - this.__onMouseDown(e); - - addListener(fabric.document, 'touchend', this._onMouseUp); - addListener(fabric.document, 'touchmove', this._onMouseMove); - - removeListener(this.upperCanvasEl, 'mousemove', this._onMouseMove); - removeListener(this.upperCanvasEl, 'touchmove', this._onMouseMove); - - if (e.type === 'touchstart') { - // Unbind mousedown to prevent double triggers from touch devices - removeListener(this.upperCanvasEl, 'mousedown', this._onMouseDown); - } - else { - addListener(fabric.document, 'mouseup', this._onMouseUp); - addListener(fabric.document, 'mousemove', this._onMouseMove); - } - }, - - /** - * @private - * @param {Event} e Event object fired on mouseup - */ - _onMouseUp: function (e) { - this.__onMouseUp(e); - - removeListener(fabric.document, 'mouseup', this._onMouseUp); - removeListener(fabric.document, 'touchend', this._onMouseUp); - - removeListener(fabric.document, 'mousemove', this._onMouseMove); - removeListener(fabric.document, 'touchmove', this._onMouseMove); - - addListener(this.upperCanvasEl, 'mousemove', this._onMouseMove); - addListener(this.upperCanvasEl, 'touchmove', this._onMouseMove); - - if (e.type === 'touchend') { - // Wait 400ms before rebinding mousedown to prevent double triggers - // from touch devices - var _this = this; - setTimeout(function() { - addListener(_this.upperCanvasEl, 'mousedown', _this._onMouseDown); - }, 400); - } - }, - - /** - * @private - * @param {Event} e Event object fired on mousemove - */ - _onMouseMove: function (e) { - !this.allowTouchScrolling && e.preventDefault && e.preventDefault(); - this.__onMouseMove(e); - }, - - /** - * @private - */ - _onResize: function () { - this.calcOffset(); - }, - - /** - * Decides whether the canvas should be redrawn in mouseup and mousedown events. - * @private - * @param {Object} target - * @param {Object} pointer - */ - _shouldRender: function(target, pointer) { - var activeObject = this.getActiveGroup() || this.getActiveObject(); - - return !!( - (target && ( - target.isMoving || - target !== activeObject)) - || - (!target && !!activeObject) - || - (!target && !activeObject && !this._groupSelector) - || - (pointer && - this._previousPointer && - this.selection && ( - pointer.x !== this._previousPointer.x || - pointer.y !== this._previousPointer.y)) - ); - }, - - /** - * Method that defines the actions when mouse is released on canvas. - * The method resets the currentTransform parameters, store the image corner - * position in the image object and render the canvas on top. - * @private - * @param {Event} e Event object fired on mouseup - */ - __onMouseUp: function (e) { - var target; - - if (this.isDrawingMode && this._isCurrentlyDrawing) { - this._onMouseUpInDrawingMode(e); - return; - } - - if (this._currentTransform) { - this._finalizeCurrentTransform(); - target = this._currentTransform.target; - } - else { - target = this.findTarget(e, true); - } - - var shouldRender = this._shouldRender(target, this.getPointer(e)); - - this._maybeGroupObjects(e); - - if (target) { - target.isMoving = false; - } - - shouldRender && this.renderAll(); - - this._handleCursorAndEvent(e, target); - }, - - _handleCursorAndEvent: function(e, target) { - this._setCursorFromEvent(e, target); - - // TODO: why are we doing this? - var _this = this; - setTimeout(function () { - _this._setCursorFromEvent(e, target); - }, 50); - - this.fire('mouse:up', { target: target, e: e }); - target && target.fire('mouseup', { e: e }); - }, - - /** - * @private - */ - _finalizeCurrentTransform: function() { - - var transform = this._currentTransform, - target = transform.target; - - if (target._scaling) { - target._scaling = false; - } - - target.setCoords(); - - // only fire :modified event if target coordinates were changed during mousedown-mouseup - if (this.stateful && target.hasStateChanged()) { - this.fire('object:modified', { target: target }); - target.fire('modified'); - } - - this._restoreOriginXY(target); - }, - - /** - * @private - * @param {Object} target Object to restore - */ - _restoreOriginXY: function(target) { - if (this._previousOriginX && this._previousOriginY) { - - var originPoint = target.translateToOriginPoint( - target.getCenterPoint(), - this._previousOriginX, - this._previousOriginY); - - target.originX = this._previousOriginX; - target.originY = this._previousOriginY; - - target.left = originPoint.x; - target.top = originPoint.y; - - this._previousOriginX = null; - this._previousOriginY = null; - } - }, - - /** - * @private - * @param {Event} e Event object fired on mousedown - */ - _onMouseDownInDrawingMode: function(e) { - this._isCurrentlyDrawing = true; - this.discardActiveObject(e).renderAll(); - if (this.clipTo) { - fabric.util.clipContext(this, this.contextTop); - } - var ivt = fabric.util.invertTransform(this.viewportTransform), - pointer = fabric.util.transformPoint(this.getPointer(e, true), ivt); - this.freeDrawingBrush.onMouseDown(pointer); - this.fire('mouse:down', { e: e }); - - var target = this.findTarget(e); - if (typeof target !== 'undefined') { - target.fire('mousedown', { e: e, target: target }); - } - }, - - /** - * @private - * @param {Event} e Event object fired on mousemove - */ - _onMouseMoveInDrawingMode: function(e) { - if (this._isCurrentlyDrawing) { - var ivt = fabric.util.invertTransform(this.viewportTransform), - pointer = fabric.util.transformPoint(this.getPointer(e, true), ivt); - this.freeDrawingBrush.onMouseMove(pointer); - } - this.setCursor(this.freeDrawingCursor); - this.fire('mouse:move', { e: e }); - - var target = this.findTarget(e); - if (typeof target !== 'undefined') { - target.fire('mousemove', { e: e, target: target }); - } - }, - - /** - * @private - * @param {Event} e Event object fired on mouseup - */ - _onMouseUpInDrawingMode: function(e) { - this._isCurrentlyDrawing = false; - if (this.clipTo) { - this.contextTop.restore(); - } - this.freeDrawingBrush.onMouseUp(); - this.fire('mouse:up', { e: e }); - - var target = this.findTarget(e); - if (typeof target !== 'undefined') { - target.fire('mouseup', { e: e, target: target }); - } - }, - - /** - * Method that defines the actions when mouse is clic ked on canvas. - * The method inits the currentTransform parameters and renders all the - * canvas so the current image can be placed on the top canvas and the rest - * in on the container one. - * @private - * @param {Event} e Event object fired on mousedown - */ - __onMouseDown: function (e) { - - // accept only left clicks - var isLeftClick = 'which' in e ? e.which === 1 : e.button === 1; - if (!isLeftClick && !fabric.isTouchSupported) { - return; - } - - if (this.isDrawingMode) { - this._onMouseDownInDrawingMode(e); - return; - } - - // ignore if some object is being transformed at this moment - if (this._currentTransform) { - return; - } - - var target = this.findTarget(e), - pointer = this.getPointer(e, true); - - // save pointer for check in __onMouseUp event - this._previousPointer = pointer; - - var shouldRender = this._shouldRender(target, pointer), - shouldGroup = this._shouldGroup(e, target); - - if (this._shouldClearSelection(e, target)) { - this._clearSelection(e, target, pointer); - } - else if (shouldGroup) { - this._handleGrouping(e, target); - target = this.getActiveGroup(); - } - - if (target && target.selectable && !shouldGroup) { - this._beforeTransform(e, target); - this._setupCurrentTransform(e, target); - } - // we must renderAll so that active image is placed on the top canvas - shouldRender && this.renderAll(); - - this.fire('mouse:down', { target: target, e: e }); - target && target.fire('mousedown', { e: e }); - }, - - /** - * @private - */ - _beforeTransform: function(e, target) { - this.stateful && target.saveState(); - - // determine if it's a drag or rotate case - if (target._findTargetCorner(this.getPointer(e))) { - this.onBeforeScaleRotate(target); - } - - if (target !== this.getActiveGroup() && target !== this.getActiveObject()) { - this.deactivateAll(); - this.setActiveObject(target, e); - } - }, - - /** - * @private - */ - _clearSelection: function(e, target, pointer) { - this.deactivateAllWithDispatch(e); - - if (target && target.selectable) { - this.setActiveObject(target, e); - } - else if (this.selection) { - this._groupSelector = { - ex: pointer.x, - ey: pointer.y, - top: 0, - left: 0 - }; - } - }, - - /** - * @private - * @param {Object} target Object for that origin is set to center - */ - _setOriginToCenter: function(target) { - this._previousOriginX = this._currentTransform.target.originX; - this._previousOriginY = this._currentTransform.target.originY; - - var center = target.getCenterPoint(); - - target.originX = 'center'; - target.originY = 'center'; - - target.left = center.x; - target.top = center.y; - - this._currentTransform.left = target.left; - this._currentTransform.top = target.top; - }, - - /** - * @private - * @param {Object} target Object for that center is set to origin - */ - _setCenterToOrigin: function(target) { - var originPoint = target.translateToOriginPoint( - target.getCenterPoint(), - this._previousOriginX, - this._previousOriginY); - - target.originX = this._previousOriginX; - target.originY = this._previousOriginY; - - target.left = originPoint.x; - target.top = originPoint.y; - - this._previousOriginX = null; - this._previousOriginY = null; - }, - - /** - * Method that defines the actions when mouse is hovering the canvas. - * The currentTransform parameter will definde whether the user is rotating/scaling/translating - * an image or neither of them (only hovering). A group selection is also possible and would cancel - * all any other type of action. - * In case of an image transformation only the top canvas will be rendered. - * @private - * @param {Event} e Event object fired on mousemove - */ - __onMouseMove: function (e) { - - var target, pointer; - - if (this.isDrawingMode) { - this._onMouseMoveInDrawingMode(e); - return; - } - if (typeof e.touches !== 'undefined' && e.touches.length > 1) { - return; - } - - var groupSelector = this._groupSelector; - - // We initially clicked in an empty area, so we draw a box for multiple selection - if (groupSelector) { - pointer = this.getPointer(e, true); - - groupSelector.left = pointer.x - groupSelector.ex; - groupSelector.top = pointer.y - groupSelector.ey; - - this.renderTop(); - } - else if (!this._currentTransform) { - - target = this.findTarget(e); - - if (!target || target && !target.selectable) { - this.setCursor(this.defaultCursor); - } - else { - this._setCursorFromEvent(e, target); - } - } - else { - this._transformObject(e); - } - - this.fire('mouse:move', { target: target, e: e }); - target && target.fire('mousemove', { e: e }); - }, - - /** - * @private - * @param {Event} e Event fired on mousemove - */ - _transformObject: function(e) { - var pointer = this.getPointer(e), - transform = this._currentTransform; - - transform.reset = false, - transform.target.isMoving = true; - - this._beforeScaleTransform(e, transform); - this._performTransformAction(e, transform, pointer); - - this.renderAll(); - }, - - /** - * @private - */ - _performTransformAction: function(e, transform, pointer) { - var x = pointer.x, - y = pointer.y, - target = transform.target, - action = transform.action; - - if (action === 'rotate') { - this._rotateObject(x, y); - this._fire('rotating', target, e); - } - else if (action === 'scale') { - this._onScale(e, transform, x, y); - this._fire('scaling', target, e); - } - else if (action === 'scaleX') { - this._scaleObject(x, y, 'x'); - this._fire('scaling', target, e); - } - else if (action === 'scaleY') { - this._scaleObject(x, y, 'y'); - this._fire('scaling', target, e); - } - else { - this._translateObject(x, y); - this._fire('moving', target, e); - this.setCursor(this.moveCursor); - } - }, - - /** - * @private - */ - _fire: function(eventName, target, e) { - this.fire('object:' + eventName, { target: target, e: e }); - target.fire(eventName, { e: e }); - }, - - /** - * @private - */ - _beforeScaleTransform: function(e, transform) { - if (transform.action === 'scale' || transform.action === 'scaleX' || transform.action === 'scaleY') { - var centerTransform = this._shouldCenterTransform(e, transform.target); - - // Switch from a normal resize to center-based - if ((centerTransform && (transform.originX !== 'center' || transform.originY !== 'center')) || - // Switch from center-based resize to normal one - (!centerTransform && transform.originX === 'center' && transform.originY === 'center') - ) { - this._resetCurrentTransform(e); - transform.reset = true; - } - } - }, - - /** - * @private - */ - _onScale: function(e, transform, x, y) { - // rotate object only if shift key is not pressed - // and if it is not a group we are transforming - if ((e.shiftKey || this.uniScaleTransform) && !transform.target.get('lockUniScaling')) { - transform.currentAction = 'scale'; - this._scaleObject(x, y); - } - else { - // Switch from a normal resize to proportional - if (!transform.reset && transform.currentAction === 'scale') { - this._resetCurrentTransform(e, transform.target); - } - - transform.currentAction = 'scaleEqually'; - this._scaleObject(x, y, 'equally'); - } - }, - - /** - * Sets the cursor depending on where the canvas is being hovered. - * Note: very buggy in Opera - * @param {Event} e Event object - * @param {Object} target Object that the mouse is hovering, if so. - */ - _setCursorFromEvent: function (e, target) { - if (!target || !target.selectable) { - this.setCursor(this.defaultCursor); - return false; - } - else { - var activeGroup = this.getActiveGroup(), - // only show proper corner when group selection is not active - corner = target._findTargetCorner - && (!activeGroup || !activeGroup.contains(target)) - && target._findTargetCorner(this.getPointer(e, true)); - - if (!corner) { - this.setCursor(target.hoverCursor || this.hoverCursor); - } - else { - this._setCornerCursor(corner, target); - } - } - return true; - }, - - /** - * @private - */ - _setCornerCursor: function(corner, target) { - if (corner in cursorOffset) { - this.setCursor(this._getRotatedCornerCursor(corner, target)); - } - else if (corner === 'mtr' && target.hasRotatingPoint) { - this.setCursor(this.rotationCursor); - } - else { - this.setCursor(this.defaultCursor); - return false; - } - }, - - /** - * @private - */ - _getRotatedCornerCursor: function(corner, target) { - var n = Math.round((target.getAngle() % 360) / 45); - - if (n < 0) { - n += 8; // full circle ahead - } - n += cursorOffset[corner]; - // normalize n to be from 0 to 7 - n %= 8; - - return this.cursorMap[n]; - } - }); -})(); - - -(function() { - - var min = Math.min, - max = Math.max; - - fabric.util.object.extend(fabric.Canvas.prototype, /** @lends fabric.Canvas.prototype */ { - - /** - * @private - * @param {Event} e Event object - * @param {fabric.Object} target - * @return {Boolean} - */ - _shouldGroup: function(e, target) { - var activeObject = this.getActiveObject(); - return e.shiftKey && - (this.getActiveGroup() || (activeObject && activeObject !== target)) - && this.selection; - }, - - /** - * @private - * @param {Event} e Event object - * @param {fabric.Object} target - */ - _handleGrouping: function (e, target) { - - if (target === this.getActiveGroup()) { - - // if it's a group, find target again, this time skipping group - target = this.findTarget(e, true); - - // if even object is not found, bail out - if (!target || target.isType('group')) { - return; - } - } - if (this.getActiveGroup()) { - this._updateActiveGroup(target, e); - } - else { - this._createActiveGroup(target, e); - } - - if (this._activeGroup) { - this._activeGroup.saveCoords(); - } - }, - - /** - * @private - */ - _updateActiveGroup: function(target, e) { - var activeGroup = this.getActiveGroup(); - - if (activeGroup.contains(target)) { - - activeGroup.removeWithUpdate(target); - this._resetObjectTransform(activeGroup); - target.set('active', false); - - if (activeGroup.size() === 1) { - // remove group alltogether if after removal it only contains 1 object - this.discardActiveGroup(e); - // activate last remaining object - this.setActiveObject(activeGroup.item(0)); - return; - } - } - else { - activeGroup.addWithUpdate(target); - this._resetObjectTransform(activeGroup); - } - this.fire('selection:created', { target: activeGroup, e: e }); - activeGroup.set('active', true); - }, - - /** - * @private - */ - _createActiveGroup: function(target, e) { - - if (this._activeObject && target !== this._activeObject) { - - var group = this._createGroup(target); - group.addWithUpdate(); - - this.setActiveGroup(group); - this._activeObject = null; - - this.fire('selection:created', { target: group, e: e }); - } - - target.set('active', true); - }, - - /** - * @private - * @param {Object} target - */ - _createGroup: function(target) { - - var objects = this.getObjects(), - isActiveLower = objects.indexOf(this._activeObject) < objects.indexOf(target), - groupObjects = isActiveLower - ? [ this._activeObject, target ] - : [ target, this._activeObject ]; - - return new fabric.Group(groupObjects, { - canvas: this - }); - }, - - /** - * @private - * @param {Event} e mouse event - */ - _groupSelectedObjects: function (e) { - - var group = this._collectObjects(); - - // do not create group for 1 element only - if (group.length === 1) { - this.setActiveObject(group[0], e); - } - else if (group.length > 1) { - group = new fabric.Group(group.reverse(), { - canvas: this - }); - group.addWithUpdate(); - this.setActiveGroup(group, e); - group.saveCoords(); - this.fire('selection:created', { target: group }); - this.renderAll(); - } - }, - - /** - * @private - */ - _collectObjects: function() { - var group = [ ], - currentObject, - x1 = this._groupSelector.ex, - y1 = this._groupSelector.ey, - x2 = x1 + this._groupSelector.left, - y2 = y1 + this._groupSelector.top, - selectionX1Y1 = new fabric.Point(min(x1, x2), min(y1, y2)), - selectionX2Y2 = new fabric.Point(max(x1, x2), max(y1, y2)), - isClick = x1 === x2 && y1 === y2; - - for (var i = this._objects.length; i--; ) { - currentObject = this._objects[i]; - - if (!currentObject || !currentObject.selectable || !currentObject.visible) { - continue; - } - - if (currentObject.intersectsWithRect(selectionX1Y1, selectionX2Y2) || - currentObject.isContainedWithinRect(selectionX1Y1, selectionX2Y2) || - currentObject.containsPoint(selectionX1Y1) || - currentObject.containsPoint(selectionX2Y2) - ) { - currentObject.set('active', true); - group.push(currentObject); - - // only add one object if it's a click - if (isClick) { - break; - } - } - } - - return group; - }, - - /** - * @private - */ - _maybeGroupObjects: function(e) { - if (this.selection && this._groupSelector) { - this._groupSelectedObjects(e); - } - - var activeGroup = this.getActiveGroup(); - if (activeGroup) { - activeGroup.setObjectsCoords().setCoords(); - activeGroup.isMoving = false; - this.setCursor(this.defaultCursor); - } - - // clear selection and current transformation - this._groupSelector = null; - this._currentTransform = null; - } - }); - -})(); - - -fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @lends fabric.StaticCanvas.prototype */ { - - /** - * Exports canvas element to a dataurl image. Note that when multiplier is used, cropping is scaled appropriately - * @param {Object} [options] Options object - * @param {String} [options.format=png] The format of the output image. Either "jpeg" or "png" - * @param {Number} [options.quality=1] Quality level (0..1). Only used for jpeg. - * @param {Number} [options.multiplier=1] Multiplier to scale by - * @param {Number} [options.left] Cropping left offset. Introduced in v1.2.14 - * @param {Number} [options.top] Cropping top offset. Introduced in v1.2.14 - * @param {Number} [options.width] Cropping width. Introduced in v1.2.14 - * @param {Number} [options.height] Cropping height. Introduced in v1.2.14 - * @return {String} Returns a data: URL containing a representation of the object in the format specified by options.format - * @see {@link http://jsfiddle.net/fabricjs/NfZVb/|jsFiddle demo} - * @example - * var dataURL = canvas.toDataURL({ - * format: 'jpeg', - * quality: 0.8 - * }); - * @example - * var dataURL = canvas.toDataURL({ - * format: 'png', - * left: 100, - * top: 100, - * width: 200, - * height: 200 - * }); - * @example - * var dataURL = canvas.toDataURL({ - * format: 'png', - * multiplier: 2 - * }); - */ - toDataURL: function (options) { - options || (options = { }); - - var format = options.format || 'png', - quality = options.quality || 1, - multiplier = options.multiplier || 1, - cropping = { - left: options.left, - top: options.top, - width: options.width, - height: options.height - }; - - if (multiplier !== 1) { - return this.__toDataURLWithMultiplier(format, quality, cropping, multiplier); - } - else { - return this.__toDataURL(format, quality, cropping); - } - }, - - /** - * @private - */ - __toDataURL: function(format, quality, cropping) { - - this.renderAll(true); - - var canvasEl = this.upperCanvasEl || this.lowerCanvasEl, - croppedCanvasEl = this.__getCroppedCanvas(canvasEl, cropping); - - // to avoid common confusion https://github.com/kangax/fabric.js/issues/806 - if (format === 'jpg') { - format = 'jpeg'; - } - - var data = (fabric.StaticCanvas.supports('toDataURLWithQuality')) - ? (croppedCanvasEl || canvasEl).toDataURL('image/' + format, quality) - : (croppedCanvasEl || canvasEl).toDataURL('image/' + format); - - this.contextTop && this.clearContext(this.contextTop); - this.renderAll(); - - if (croppedCanvasEl) { - croppedCanvasEl = null; - } - - return data; - }, - - /** - * @private - */ - __getCroppedCanvas: function(canvasEl, cropping) { - - var croppedCanvasEl, - croppedCtx, - shouldCrop = 'left' in cropping || - 'top' in cropping || - 'width' in cropping || - 'height' in cropping; - - if (shouldCrop) { - - croppedCanvasEl = fabric.util.createCanvasElement(); - croppedCtx = croppedCanvasEl.getContext('2d'); - - croppedCanvasEl.width = cropping.width || this.width; - croppedCanvasEl.height = cropping.height || this.height; - - croppedCtx.drawImage(canvasEl, -cropping.left || 0, -cropping.top || 0); - } - - return croppedCanvasEl; - }, - - /** - * @private - */ - __toDataURLWithMultiplier: function(format, quality, cropping, multiplier) { - - var origWidth = this.getWidth(), - origHeight = this.getHeight(), - scaledWidth = origWidth * multiplier, - scaledHeight = origHeight * multiplier, - activeObject = this.getActiveObject(), - activeGroup = this.getActiveGroup(), - - ctx = this.contextTop || this.contextContainer; - - if (multiplier > 1) { - this.setWidth(scaledWidth).setHeight(scaledHeight); - } - ctx.scale(multiplier, multiplier); - - if (cropping.left) { - cropping.left *= multiplier; - } - if (cropping.top) { - cropping.top *= multiplier; - } - if (cropping.width) { - cropping.width *= multiplier; - } - else if (multiplier < 1) { - cropping.width = scaledWidth; - } - if (cropping.height) { - cropping.height *= multiplier; - } - else if (multiplier < 1) { - cropping.height = scaledHeight; - } - - if (activeGroup) { - // not removing group due to complications with restoring it with correct state afterwords - this._tempRemoveBordersControlsFromGroup(activeGroup); - } - else if (activeObject && this.deactivateAll) { - this.deactivateAll(); - } - - this.renderAll(true); - - var data = this.__toDataURL(format, quality, cropping); - - // restoring width, height for `renderAll` to draw - // background properly (while context is scaled) - this.width = origWidth; - this.height = origHeight; - - ctx.scale(1 / multiplier, 1 / multiplier); - this.setWidth(origWidth).setHeight(origHeight); - - if (activeGroup) { - this._restoreBordersControlsOnGroup(activeGroup); - } - else if (activeObject && this.setActiveObject) { - this.setActiveObject(activeObject); - } - - this.contextTop && this.clearContext(this.contextTop); - this.renderAll(); - - return data; - }, - - /** - * Exports canvas element to a dataurl image (allowing to change image size via multiplier). - * @deprecated since 1.0.13 - * @param {String} format (png|jpeg) - * @param {Number} multiplier - * @param {Number} quality (0..1) - * @return {String} - */ - toDataURLWithMultiplier: function (format, multiplier, quality) { - return this.toDataURL({ - format: format, - multiplier: multiplier, - quality: quality - }); - }, - - /** - * @private - */ - _tempRemoveBordersControlsFromGroup: function(group) { - group.origHasControls = group.hasControls; - group.origBorderColor = group.borderColor; - - group.hasControls = true; - group.borderColor = 'rgba(0,0,0,0)'; - - group.forEachObject(function(o) { - o.origBorderColor = o.borderColor; - o.borderColor = 'rgba(0,0,0,0)'; - }); - }, - - /** - * @private - */ - _restoreBordersControlsOnGroup: function(group) { - group.hideControls = group.origHideControls; - group.borderColor = group.origBorderColor; - - group.forEachObject(function(o) { - o.borderColor = o.origBorderColor; - delete o.origBorderColor; - }); - } -}); - - -fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @lends fabric.StaticCanvas.prototype */ { - - /** - * Populates canvas with data from the specified dataless JSON. - * JSON format must conform to the one of {@link fabric.Canvas#toDatalessJSON} - * @deprecated since 1.2.2 - * @param {String|Object} json JSON string or object - * @param {Function} callback Callback, invoked when json is parsed - * and corresponding objects (e.g: {@link fabric.Image}) - * are initialized - * @param {Function} [reviver] Method for further parsing of JSON elements, called after each fabric object created. - * @return {fabric.Canvas} instance - * @chainable - * @tutorial {@link http://fabricjs.com/fabric-intro-part-3/#deserialization} - */ - loadFromDatalessJSON: function (json, callback, reviver) { - return this.loadFromJSON(json, callback, reviver); - }, - - /** - * Populates canvas with data from the specified JSON. - * JSON format must conform to the one of {@link fabric.Canvas#toJSON} - * @param {String|Object} json JSON string or object - * @param {Function} callback Callback, invoked when json is parsed - * and corresponding objects (e.g: {@link fabric.Image}) - * are initialized - * @param {Function} [reviver] Method for further parsing of JSON elements, called after each fabric object created. - * @return {fabric.Canvas} instance - * @chainable - * @tutorial {@link http://fabricjs.com/fabric-intro-part-3/#deserialization} - * @see {@link http://jsfiddle.net/fabricjs/fmgXt/|jsFiddle demo} - * @example - * canvas.loadFromJSON(json, canvas.renderAll.bind(canvas)); - * @example - * canvas.loadFromJSON(json, canvas.renderAll.bind(canvas), function(o, object) { - * // `o` = json object - * // `object` = fabric.Object instance - * // ... do some stuff ... - * }); - */ - loadFromJSON: function (json, callback, reviver) { - if (!json) { - return; - } - - // serialize if it wasn't already - var serialized = (typeof json === 'string') - ? JSON.parse(json) - : json; - - this.clear(); - - var _this = this; - this._enlivenObjects(serialized.objects, function () { - _this._setBgOverlay(serialized, callback); - }, reviver); - - return this; - }, - - /** - * @private - * @param {Object} serialized Object with background and overlay information - * @param {Function} callback Invoked after all background and overlay images/patterns loaded - */ - _setBgOverlay: function(serialized, callback) { - var _this = this, - loaded = { - backgroundColor: false, - overlayColor: false, - backgroundImage: false, - overlayImage: false - }; - - if (!serialized.backgroundImage && !serialized.overlayImage && !serialized.background && !serialized.overlay) { - callback && callback(); - return; - } - - var cbIfLoaded = function () { - if (loaded.backgroundImage && loaded.overlayImage && loaded.backgroundColor && loaded.overlayColor) { - _this.renderAll(); - callback && callback(); - } - }; - - this.__setBgOverlay('backgroundImage', serialized.backgroundImage, loaded, cbIfLoaded); - this.__setBgOverlay('overlayImage', serialized.overlayImage, loaded, cbIfLoaded); - this.__setBgOverlay('backgroundColor', serialized.background, loaded, cbIfLoaded); - this.__setBgOverlay('overlayColor', serialized.overlay, loaded, cbIfLoaded); - - cbIfLoaded(); - }, - - /** - * @private - * @param {String} property Property to set (backgroundImage, overlayImage, backgroundColor, overlayColor) - * @param {(Object|String)} value Value to set - * @param {Object} loaded Set loaded property to true if property is set - * @param {Object} callback Callback function to invoke after property is set - */ - __setBgOverlay: function(property, value, loaded, callback) { - var _this = this; - - if (!value) { - loaded[property] = true; - return; - } - - if (property === 'backgroundImage' || property === 'overlayImage') { - fabric.Image.fromObject(value, function(img) { - _this[property] = img; - loaded[property] = true; - callback && callback(); - }); - } - else { - this['set' + fabric.util.string.capitalize(property, true)](value, function() { - loaded[property] = true; - callback && callback(); - }); - } - }, - - /** - * @private - * @param {Array} objects - * @param {Function} callback - * @param {Function} [reviver] - */ - _enlivenObjects: function (objects, callback, reviver) { - var _this = this; - - if (!objects || objects.length === 0) { - callback && callback(); - return; - } - - var renderOnAddRemove = this.renderOnAddRemove; - this.renderOnAddRemove = false; - - fabric.util.enlivenObjects(objects, function(enlivenedObjects) { - enlivenedObjects.forEach(function(obj, index) { - _this.insertAt(obj, index, true); - }); - - _this.renderOnAddRemove = renderOnAddRemove; - callback && callback(); - }, null, reviver); - }, - - /** - * @private - * @param {String} format - * @param {Function} callback - */ - _toDataURL: function (format, callback) { - this.clone(function (clone) { - callback(clone.toDataURL(format)); - }); - }, - - /** - * @private - * @param {String} format - * @param {Number} multiplier - * @param {Function} callback - */ - _toDataURLWithMultiplier: function (format, multiplier, callback) { - this.clone(function (clone) { - callback(clone.toDataURLWithMultiplier(format, multiplier)); - }); - }, - - /** - * Clones canvas instance - * @param {Object} [callback] Receives cloned instance as a first argument - * @param {Array} [properties] Array of properties to include in the cloned canvas and children - */ - clone: function (callback, properties) { - var data = JSON.stringify(this.toJSON(properties)); - this.cloneWithoutData(function(clone) { - clone.loadFromJSON(data, function() { - callback && callback(clone); - }); - }); - }, - - /** - * Clones canvas instance without cloning existing data. - * This essentially copies canvas dimensions, clipping properties, etc. - * but leaves data empty (so that you can populate it with your own) - * @param {Object} [callback] Receives cloned instance as a first argument - */ - cloneWithoutData: function(callback) { - var el = fabric.document.createElement('canvas'); - - el.width = this.getWidth(); - el.height = this.getHeight(); - - var clone = new fabric.Canvas(el); - clone.clipTo = this.clipTo; - if (this.backgroundImage) { - clone.setBackgroundImage(this.backgroundImage.src, function() { - clone.renderAll(); - callback && callback(clone); - }); - clone.backgroundImageOpacity = this.backgroundImageOpacity; - clone.backgroundImageStretch = this.backgroundImageStretch; - } - else { - callback && callback(clone); - } - } -}); - - -(function(global) { - - 'use strict'; - - var fabric = global.fabric || (global.fabric = { }), - extend = fabric.util.object.extend, - toFixed = fabric.util.toFixed, - capitalize = fabric.util.string.capitalize, - degreesToRadians = fabric.util.degreesToRadians, - supportsLineDash = fabric.StaticCanvas.supports('setLineDash'); - - if (fabric.Object) { - return; - } - - /** - * Root object class from which all 2d shape classes inherit from - * @class fabric.Object - * @tutorial {@link http://fabricjs.com/fabric-intro-part-1/#objects} - * @see {@link fabric.Object#initialize} for constructor definition - * - * @fires added - * @fires removed - * - * @fires selected - * @fires modified - * @fires rotating - * @fires scaling - * @fires moving - * - * @fires mousedown - * @fires mouseup - */ - fabric.Object = fabric.util.createClass(/** @lends fabric.Object.prototype */ { - - /** - * Retrieves object's {@link fabric.Object#clipTo|clipping function} - * @method getClipTo - * @memberOf fabric.Object.prototype - * @return {Function} - */ - - /** - * Sets object's {@link fabric.Object#clipTo|clipping function} - * @method setClipTo - * @memberOf fabric.Object.prototype - * @param {Function} clipTo Clipping function - * @return {fabric.Object} thisArg - * @chainable - */ - - /** - * Retrieves object's {@link fabric.Object#transformMatrix|transformMatrix} - * @method getTransformMatrix - * @memberOf fabric.Object.prototype - * @return {Array} transformMatrix - */ - - /** - * Sets object's {@link fabric.Object#transformMatrix|transformMatrix} - * @method setTransformMatrix - * @memberOf fabric.Object.prototype - * @param {Array} transformMatrix - * @return {fabric.Object} thisArg - * @chainable - */ - - /** - * Retrieves object's {@link fabric.Object#visible|visible} state - * @method getVisible - * @memberOf fabric.Object.prototype - * @return {Boolean} True if visible - */ - - /** - * Sets object's {@link fabric.Object#visible|visible} state - * @method setVisible - * @memberOf fabric.Object.prototype - * @param {Boolean} value visible value - * @return {fabric.Object} thisArg - * @chainable - */ - - /** - * Retrieves object's {@link fabric.Object#shadow|shadow} - * @method getShadow - * @memberOf fabric.Object.prototype - * @return {Object} Shadow instance - */ - - /** - * Retrieves object's {@link fabric.Object#stroke|stroke} - * @method getStroke - * @memberOf fabric.Object.prototype - * @return {String} stroke value - */ - - /** - * Sets object's {@link fabric.Object#stroke|stroke} - * @method setStroke - * @memberOf fabric.Object.prototype - * @param {String} value stroke value - * @return {fabric.Object} thisArg - * @chainable - */ - - /** - * Retrieves object's {@link fabric.Object#strokeWidth|strokeWidth} - * @method getStrokeWidth - * @memberOf fabric.Object.prototype - * @return {Number} strokeWidth value - */ - - /** - * Sets object's {@link fabric.Object#strokeWidth|strokeWidth} - * @method setStrokeWidth - * @memberOf fabric.Object.prototype - * @param {Number} value strokeWidth value - * @return {fabric.Object} thisArg - * @chainable - */ - - /** - * Retrieves object's {@link fabric.Object#originX|originX} - * @method getOriginX - * @memberOf fabric.Object.prototype - * @return {String} originX value - */ - - /** - * Sets object's {@link fabric.Object#originX|originX} - * @method setOriginX - * @memberOf fabric.Object.prototype - * @param {String} value originX value - * @return {fabric.Object} thisArg - * @chainable - */ - - /** - * Retrieves object's {@link fabric.Object#originY|originY} - * @method getOriginY - * @memberOf fabric.Object.prototype - * @return {String} originY value - */ - - /** - * Sets object's {@link fabric.Object#originY|originY} - * @method setOriginY - * @memberOf fabric.Object.prototype - * @param {String} value originY value - * @return {fabric.Object} thisArg - * @chainable - */ - - /** - * Retrieves object's {@link fabric.Object#fill|fill} - * @method getFill - * @memberOf fabric.Object.prototype - * @return {String} Fill value - */ - - /** - * Sets object's {@link fabric.Object#fill|fill} - * @method setFill - * @memberOf fabric.Object.prototype - * @param {String} value Fill value - * @return {fabric.Object} thisArg - * @chainable - */ - - /** - * Retrieves object's {@link fabric.Object#opacity|opacity} - * @method getOpacity - * @memberOf fabric.Object.prototype - * @return {Number} Opacity value (0-1) - */ - - /** - * Sets object's {@link fabric.Object#opacity|opacity} - * @method setOpacity - * @memberOf fabric.Object.prototype - * @param {Number} value Opacity value (0-1) - * @return {fabric.Object} thisArg - * @chainable - */ - - /** - * Retrieves object's {@link fabric.Object#angle|angle} (in degrees) - * @method getAngle - * @memberOf fabric.Object.prototype - * @return {Number} - */ - - /** - * Retrieves object's {@link fabric.Object#top|top position} - * @method getTop - * @memberOf fabric.Object.prototype - * @return {Number} Top value (in pixels) - */ - - /** - * Sets object's {@link fabric.Object#top|top position} - * @method setTop - * @memberOf fabric.Object.prototype - * @param {Number} value Top value (in pixels) - * @return {fabric.Object} thisArg - * @chainable - */ - - /** - * Retrieves object's {@link fabric.Object#left|left position} - * @method getLeft - * @memberOf fabric.Object.prototype - * @return {Number} Left value (in pixels) - */ - - /** - * Sets object's {@link fabric.Object#left|left position} - * @method setLeft - * @memberOf fabric.Object.prototype - * @param {Number} value Left value (in pixels) - * @return {fabric.Object} thisArg - * @chainable - */ - - /** - * Retrieves object's {@link fabric.Object#scaleX|scaleX} value - * @method getScaleX - * @memberOf fabric.Object.prototype - * @return {Number} scaleX value - */ - - /** - * Sets object's {@link fabric.Object#scaleX|scaleX} value - * @method setScaleX - * @memberOf fabric.Object.prototype - * @param {Number} value scaleX value - * @return {fabric.Object} thisArg - * @chainable - */ - - /** - * Retrieves object's {@link fabric.Object#scaleY|scaleY} value - * @method getScaleY - * @memberOf fabric.Object.prototype - * @return {Number} scaleY value - */ - - /** - * Sets object's {@link fabric.Object#scaleY|scaleY} value - * @method setScaleY - * @memberOf fabric.Object.prototype - * @param {Number} value scaleY value - * @return {fabric.Object} thisArg - * @chainable - */ - - /** - * Retrieves object's {@link fabric.Object#flipX|flipX} value - * @method getFlipX - * @memberOf fabric.Object.prototype - * @return {Boolean} flipX value - */ - - /** - * Sets object's {@link fabric.Object#flipX|flipX} value - * @method setFlipX - * @memberOf fabric.Object.prototype - * @param {Boolean} value flipX value - * @return {fabric.Object} thisArg - * @chainable - */ - - /** - * Retrieves object's {@link fabric.Object#flipY|flipY} value - * @method getFlipY - * @memberOf fabric.Object.prototype - * @return {Boolean} flipY value - */ - - /** - * Sets object's {@link fabric.Object#flipY|flipY} value - * @method setFlipY - * @memberOf fabric.Object.prototype - * @param {Boolean} value flipY value - * @return {fabric.Object} thisArg - * @chainable - */ - - /** - * Type of an object (rect, circle, path, etc.). - * Note that this property is meant to be read-only and not meant to be modified. - * If you modify, certain parts of Fabric (such as JSON loading) won't work correctly. - * @type String - * @default - */ - type: 'object', - - /** - * Horizontal origin of transformation of an object (one of "left", "right", "center") - * See http://jsfiddle.net/1ow02gea/40/ on how originX/originY affect objects in groups - * @type String - * @default - */ - originX: 'left', - - /** - * Vertical origin of transformation of an object (one of "top", "bottom", "center") - * See http://jsfiddle.net/1ow02gea/40/ on how originX/originY affect objects in groups - * @type String - * @default - */ - originY: 'top', - - /** - * Top position of an object. Note that by default it's relative to object center. You can change this by setting originY={top/center/bottom} - * @type Number - * @default - */ - top: 0, - - /** - * Left position of an object. Note that by default it's relative to object center. You can change this by setting originX={left/center/right} - * @type Number - * @default - */ - left: 0, - - /** - * Object width - * @type Number - * @default - */ - width: 0, - - /** - * Object height - * @type Number - * @default - */ - height: 0, - - /** - * Object scale factor (horizontal) - * @type Number - * @default - */ - scaleX: 1, - - /** - * Object scale factor (vertical) - * @type Number - * @default - */ - scaleY: 1, - - /** - * When true, an object is rendered as flipped horizontally - * @type Boolean - * @default - */ - flipX: false, - - /** - * When true, an object is rendered as flipped vertically - * @type Boolean - * @default - */ - flipY: false, - - /** - * Opacity of an object - * @type Number - * @default - */ - opacity: 1, - - /** - * Angle of rotation of an object (in degrees) - * @type Number - * @default - */ - angle: 0, - - /** - * Size of object's controlling corners (in pixels) - * @type Number - * @default - */ - cornerSize: 12, - - /** - * When true, object's controlling corners are rendered as transparent inside (i.e. stroke instead of fill) - * @type Boolean - * @default - */ - transparentCorners: true, - - /** - * Default cursor value used when hovering over this object on canvas - * @type String - * @default - */ - hoverCursor: null, - - /** - * Padding between object and its controlling borders (in pixels) - * @type Number - * @default - */ - padding: 0, - - /** - * Color of controlling borders of an object (when it's active) - * @type String - * @default - */ - borderColor: 'rgba(102,153,255,0.75)', - - /** - * Color of controlling corners of an object (when it's active) - * @type String - * @default - */ - cornerColor: 'rgba(102,153,255,0.5)', - - /** - * When true, this object will use center point as the origin of transformation - * when being scaled via the controls. - * Backwards incompatibility note: This property replaces "centerTransform" (Boolean). - * @since 1.3.4 - * @type Boolean - * @default - */ - centeredScaling: false, - - /** - * When true, this object will use center point as the origin of transformation - * when being rotated via the controls. - * Backwards incompatibility note: This property replaces "centerTransform" (Boolean). - * @since 1.3.4 - * @type Boolean - * @default - */ - centeredRotation: true, - - /** - * Color of object's fill - * @type String - * @default - */ - fill: 'rgb(0,0,0)', - - /** - * Fill rule used to fill an object - * accepted values are nonzero, evenodd - * Backwards incompatibility note: This property was used for setting globalCompositeOperation until v1.4.12 (use `fabric.Object#globalCompositeOperation` instead) - * @type String - * @default - */ - fillRule: 'nonzero', - - /** - * Composite rule used for canvas globalCompositeOperation - * @type String - * @default - */ - globalCompositeOperation: 'source-over', - - /** - * Background color of an object. Only works with text objects at the moment. - * @type String - * @default - */ - backgroundColor: '', - - /** - * When defined, an object is rendered via stroke and this property specifies its color - * @type String - * @default - */ - stroke: null, - - /** - * Width of a stroke used to render this object - * @type Number - * @default - */ - strokeWidth: 1, - - /** - * Array specifying dash pattern of an object's stroke (stroke must be defined) - * @type Array - */ - strokeDashArray: null, - - /** - * Line endings style of an object's stroke (one of "butt", "round", "square") - * @type String - * @default - */ - strokeLineCap: 'butt', - - /** - * Corner style of an object's stroke (one of "bevil", "round", "miter") - * @type String - * @default - */ - strokeLineJoin: 'miter', - - /** - * Maximum miter length (used for strokeLineJoin = "miter") of an object's stroke - * @type Number - * @default - */ - strokeMiterLimit: 10, - - /** - * Shadow object representing shadow of this shape - * @type fabric.Shadow - * @default - */ - shadow: null, - - /** - * Opacity of object's controlling borders when object is active and moving - * @type Number - * @default - */ - borderOpacityWhenMoving: 0.4, - - /** - * Scale factor of object's controlling borders - * @type Number - * @default - */ - borderScaleFactor: 1, - - /** - * Transform matrix (similar to SVG's transform matrix) - * @type Array - */ - transformMatrix: null, - - /** - * Minimum allowed scale value of an object - * @type Number - * @default - */ - minScaleLimit: 0.01, - - /** - * When set to `false`, an object can not be selected for modification (using either point-click-based or group-based selection). - * But events still fire on it. - * @type Boolean - * @default - */ - selectable: true, - - /** - * When set to `false`, an object can not be a target of events. All events propagate through it. Introduced in v1.3.4 - * @type Boolean - * @default - */ - evented: true, - - /** - * When set to `false`, an object is not rendered on canvas - * @type Boolean - * @default - */ - visible: true, - - /** - * When set to `false`, object's controls are not displayed and can not be used to manipulate object - * @type Boolean - * @default - */ - hasControls: true, - - /** - * When set to `false`, object's controlling borders are not rendered - * @type Boolean - * @default - */ - hasBorders: true, - - /** - * When set to `false`, object's controlling rotating point will not be visible or selectable - * @type Boolean - * @default - */ - hasRotatingPoint: true, - - /** - * Offset for object's controlling rotating point (when enabled via `hasRotatingPoint`) - * @type Number - * @default - */ - rotatingPointOffset: 40, - - /** - * When set to `true`, objects are "found" on canvas on per-pixel basis rather than according to bounding box - * @type Boolean - * @default - */ - perPixelTargetFind: false, - - /** - * When `false`, default object's values are not included in its serialization - * @type Boolean - * @default - */ - includeDefaultValues: true, - - /** - * Function that determines clipping of an object (context is passed as a first argument) - * Note that context origin is at the object's center point (not left/top corner) - * @type Function - */ - clipTo: null, - - /** - * When `true`, object horizontal movement is locked - * @type Boolean - * @default - */ - lockMovementX: false, - - /** - * When `true`, object vertical movement is locked - * @type Boolean - * @default - */ - lockMovementY: false, - - /** - * When `true`, object rotation is locked - * @type Boolean - * @default - */ - lockRotation: false, - - /** - * When `true`, object horizontal scaling is locked - * @type Boolean - * @default - */ - lockScalingX: false, - - /** - * When `true`, object vertical scaling is locked - * @type Boolean - * @default - */ - lockScalingY: false, - - /** - * When `true`, object non-uniform scaling is locked - * @type Boolean - * @default - */ - lockUniScaling: false, - - /** - * When `true`, object cannot be flipped by scaling into negative values - * @type Boolean - * @default - */ - - lockScalingFlip: false, - /** - * List of properties to consider when checking if state - * of an object is changed (fabric.Object#hasStateChanged) - * as well as for history (undo/redo) purposes - * @type Array - */ - stateProperties: ( - 'top left width height scaleX scaleY flipX flipY originX originY transformMatrix ' + - 'stroke strokeWidth strokeDashArray strokeLineCap strokeLineJoin strokeMiterLimit ' + - 'angle opacity fill fillRule globalCompositeOperation shadow clipTo visible backgroundColor' - ).split(' '), - - /** - * Constructor - * @param {Object} [options] Options object - */ - initialize: function(options) { - if (options) { - this.setOptions(options); - } - }, - - /** - * @private - * @param {Object} [options] Options object - */ - _initGradient: function(options) { - if (options.fill && options.fill.colorStops && !(options.fill instanceof fabric.Gradient)) { - this.set('fill', new fabric.Gradient(options.fill)); - } - }, - - /** - * @private - * @param {Object} [options] Options object - */ - _initPattern: function(options) { - if (options.fill && options.fill.source && !(options.fill instanceof fabric.Pattern)) { - this.set('fill', new fabric.Pattern(options.fill)); - } - if (options.stroke && options.stroke.source && !(options.stroke instanceof fabric.Pattern)) { - this.set('stroke', new fabric.Pattern(options.stroke)); - } - }, - - /** - * @private - * @param {Object} [options] Options object - */ - _initClipping: function(options) { - if (!options.clipTo || typeof options.clipTo !== 'string') { - return; - } - - var functionBody = fabric.util.getFunctionBody(options.clipTo); - if (typeof functionBody !== 'undefined') { - this.clipTo = new Function('ctx', functionBody); - } - }, - - /** - * Sets object's properties from options - * @param {Object} [options] Options object - */ - setOptions: function(options) { - for (var prop in options) { - this.set(prop, options[prop]); - } - this._initGradient(options); - this._initPattern(options); - this._initClipping(options); - }, - - /** - * Transforms context when rendering an object - * @param {CanvasRenderingContext2D} ctx Context - * @param {Boolean} fromLeft When true, context is transformed to object's top/left corner. This is used when rendering text on Node - */ - transform: function(ctx, fromLeft) { - var center = fromLeft ? this._getLeftTopCoords() : this.getCenterPoint(); - ctx.translate(center.x, center.y); - ctx.rotate(degreesToRadians(this.angle)); - ctx.scale( - this.scaleX * (this.flipX ? -1 : 1), - this.scaleY * (this.flipY ? -1 : 1) - ); - }, - - /** - * Returns an object representation of an instance - * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output - * @return {Object} Object representation of an instance - */ - toObject: function(propertiesToInclude) { - var NUM_FRACTION_DIGITS = fabric.Object.NUM_FRACTION_DIGITS, - - object = { - type: this.type, - originX: this.originX, - originY: this.originY, - left: toFixed(this.left, NUM_FRACTION_DIGITS), - top: toFixed(this.top, NUM_FRACTION_DIGITS), - width: toFixed(this.width, NUM_FRACTION_DIGITS), - height: toFixed(this.height, NUM_FRACTION_DIGITS), - fill: (this.fill && this.fill.toObject) ? this.fill.toObject() : this.fill, - stroke: (this.stroke && this.stroke.toObject) ? this.stroke.toObject() : this.stroke, - strokeWidth: toFixed(this.strokeWidth, NUM_FRACTION_DIGITS), - strokeDashArray: this.strokeDashArray, - strokeLineCap: this.strokeLineCap, - strokeLineJoin: this.strokeLineJoin, - strokeMiterLimit: toFixed(this.strokeMiterLimit, NUM_FRACTION_DIGITS), - scaleX: toFixed(this.scaleX, NUM_FRACTION_DIGITS), - scaleY: toFixed(this.scaleY, NUM_FRACTION_DIGITS), - angle: toFixed(this.getAngle(), NUM_FRACTION_DIGITS), - flipX: this.flipX, - flipY: this.flipY, - opacity: toFixed(this.opacity, NUM_FRACTION_DIGITS), - shadow: (this.shadow && this.shadow.toObject) ? this.shadow.toObject() : this.shadow, - visible: this.visible, - clipTo: this.clipTo && String(this.clipTo), - backgroundColor: this.backgroundColor, - fillRule: this.fillRule, - globalCompositeOperation: this.globalCompositeOperation - }; - - if (!this.includeDefaultValues) { - object = this._removeDefaultValues(object); - } - - fabric.util.populateWithProperties(this, object, propertiesToInclude); - - return object; - }, - - /** - * Returns (dataless) object representation of an instance - * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output - * @return {Object} Object representation of an instance - */ - toDatalessObject: function(propertiesToInclude) { - // will be overwritten by subclasses - return this.toObject(propertiesToInclude); - }, - - /** - * @private - * @param {Object} object - */ - _removeDefaultValues: function(object) { - var prototype = fabric.util.getKlass(object.type).prototype, - stateProperties = prototype.stateProperties; - - stateProperties.forEach(function(prop) { - if (object[prop] === prototype[prop]) { - delete object[prop]; - } - }); - - return object; - }, - - /** - * Returns a string representation of an instance - * @return {String} - */ - toString: function() { - return '#'; - }, - - /** - * Basic getter - * @param {String} property Property name - * @return {Any} value of a property - */ - get: function(property) { - return this[property]; - }, - - /** - * @private - */ - _setObject: function(obj) { - for (var prop in obj) { - this._set(prop, obj[prop]); - } - }, - - /** - * Sets property to a given value. When changing position/dimension -related properties (left, top, scale, angle, etc.) `set` does not update position of object's borders/controls. If you need to update those, call `setCoords()`. - * @param {String|Object} key Property name or object (if object, iterate over the object properties) - * @param {Object|Function} value Property value (if function, the value is passed into it and its return value is used as a new one) - * @return {fabric.Object} thisArg - * @chainable - */ - set: function(key, value) { - if (typeof key === 'object') { - this._setObject(key); - } - else { - if (typeof value === 'function' && key !== 'clipTo') { - this._set(key, value(this.get(key))); - } - else { - this._set(key, value); - } - } - return this; - }, - - /** - * @private - * @param {String} key - * @param {Any} value - * @return {fabric.Object} thisArg - */ - _set: function(key, value) { - var shouldConstrainValue = (key === 'scaleX' || key === 'scaleY'); - - if (shouldConstrainValue) { - value = this._constrainScale(value); - } - if (key === 'scaleX' && value < 0) { - this.flipX = !this.flipX; - value *= -1; - } - else if (key === 'scaleY' && value < 0) { - this.flipY = !this.flipY; - value *= -1; - } - else if (key === 'width' || key === 'height') { - this.minScaleLimit = toFixed(Math.min(0.1, 1/Math.max(this.width, this.height)), 2); - } - else if (key === 'shadow' && value && !(value instanceof fabric.Shadow)) { - value = new fabric.Shadow(value); - } - - this[key] = value; - - return this; - }, - - /** - * Toggles specified property from `true` to `false` or from `false` to `true` - * @param {String} property Property to toggle - * @return {fabric.Object} thisArg - * @chainable - */ - toggle: function(property) { - var value = this.get(property); - if (typeof value === 'boolean') { - this.set(property, !value); - } - return this; - }, - - /** - * Sets sourcePath of an object - * @param {String} value Value to set sourcePath to - * @return {fabric.Object} thisArg - * @chainable - */ - setSourcePath: function(value) { - this.sourcePath = value; - return this; - }, - - /** - * Retrieves viewportTransform from Object's canvas if possible - * @method getViewportTransform - * @memberOf fabric.Object.prototype - * @return {Boolean} flipY value // TODO - */ - getViewportTransform: function() { - if (this.canvas && this.canvas.viewportTransform) { - return this.canvas.viewportTransform; - } - return [1, 0, 0, 1, 0, 0]; - }, - - /** - * Renders an object on a specified context - * @param {CanvasRenderingContext2D} ctx Context to render on - * @param {Boolean} [noTransform] When true, context is not transformed - */ - render: function(ctx, noTransform) { - // do not render if width/height are zeros or object is not visible - if ((this.width === 0 && this.height === 0) || !this.visible) { - return; - } - - ctx.save(); - - //setup fill rule for current object - this._setupCompositeOperation(ctx); - if (!noTransform) { - this.transform(ctx); - } - this._setStrokeStyles(ctx); - this._setFillStyles(ctx); - if (this.transformMatrix) { - ctx.transform.apply(ctx, this.transformMatrix); - } - this._setOpacity(ctx); - this._setShadow(ctx); - this.clipTo && fabric.util.clipContext(this, ctx); - this._render(ctx, noTransform); - this.clipTo && ctx.restore(); - this._removeShadow(ctx); - this._restoreCompositeOperation(ctx); - - ctx.restore(); - }, - - /* @private - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - _setOpacity: function(ctx) { - if (this.group) { - this.group._setOpacity(ctx); - } - ctx.globalAlpha *= this.opacity; - }, - - _setStrokeStyles: function(ctx) { - if (this.stroke) { - ctx.lineWidth = this.strokeWidth; - ctx.lineCap = this.strokeLineCap; - ctx.lineJoin = this.strokeLineJoin; - ctx.miterLimit = this.strokeMiterLimit; - ctx.strokeStyle = this.stroke.toLive - ? this.stroke.toLive(ctx, this) - : this.stroke; - } - }, - - _setFillStyles: function(ctx) { - if (this.fill) { - ctx.fillStyle = this.fill.toLive - ? this.fill.toLive(ctx, this) - : this.fill; - } - }, - - /** - * Renders controls and borders for the object - * @param {CanvasRenderingContext2D} ctx Context to render on - * @param {Boolean} [noTransform] When true, context is not transformed - */ - _renderControls: function(ctx, noTransform) { - if (!this.active || noTransform) { - return; - } - var vpt = this.getViewportTransform(); - ctx.save(); - var center; - if (this.group) { - center = fabric.util.transformPoint(this.group.getCenterPoint(), vpt); - ctx.translate(center.x, center.y); - ctx.rotate(degreesToRadians(this.group.angle)); - } - center = fabric.util.transformPoint(this.getCenterPoint(), vpt, null != this.group); - if (this.group) { - center.x *= this.group.scaleX; - center.y *= this.group.scaleY; - } - ctx.translate(center.x, center.y); - ctx.rotate(degreesToRadians(this.angle)); - this.drawBorders(ctx); - this.drawControls(ctx); - ctx.restore(); - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - _setShadow: function(ctx) { - if (!this.shadow) { - return; - } - - var multX = (this.canvas && this.canvas.viewportTransform[0]) || 1, - multY = (this.canvas && this.canvas.viewportTransform[3]) || 1; - - ctx.shadowColor = this.shadow.color; - ctx.shadowBlur = this.shadow.blur * (multX + multY) * (this.scaleX + this.scaleY) / 4; - ctx.shadowOffsetX = this.shadow.offsetX * multX * this.scaleX; - ctx.shadowOffsetY = this.shadow.offsetY * multY * this.scaleY; - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - _removeShadow: function(ctx) { - if (!this.shadow) { - return; - } - - ctx.shadowColor = ''; - ctx.shadowBlur = ctx.shadowOffsetX = ctx.shadowOffsetY = 0; - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - _renderFill: function(ctx) { - if (!this.fill) { - return; - } - - ctx.save(); - if (this.fill.gradientTransform) { - var g = this.fill.gradientTransform; - ctx.transform.apply(ctx, g); - } - if (this.fill.toLive) { - ctx.translate( - -this.width / 2 + this.fill.offsetX || 0, - -this.height / 2 + this.fill.offsetY || 0); - } - if (this.fillRule === 'evenodd') { - ctx.fill('evenodd'); - } - else { - ctx.fill(); - } - ctx.restore(); - if (this.shadow && !this.shadow.affectStroke) { - this._removeShadow(ctx); - } - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - _renderStroke: function(ctx) { - if (!this.stroke || this.strokeWidth === 0) { - return; - } - - ctx.save(); - if (this.strokeDashArray) { - // Spec requires the concatenation of two copies the dash list when the number of elements is odd - if (1 & this.strokeDashArray.length) { - this.strokeDashArray.push.apply(this.strokeDashArray, this.strokeDashArray); - } - if (supportsLineDash) { - ctx.setLineDash(this.strokeDashArray); - this._stroke && this._stroke(ctx); - } - else { - this._renderDashedStroke && this._renderDashedStroke(ctx); - } - ctx.stroke(); - } - else { - if (this.stroke.gradientTransform) { - var g = this.stroke.gradientTransform; - ctx.transform.apply(ctx, g); - } - this._stroke ? this._stroke(ctx) : ctx.stroke(); - } - this._removeShadow(ctx); - ctx.restore(); - }, - - /** - * Clones an instance - * @param {Function} callback Callback is invoked with a clone as a first argument - * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output - * @return {fabric.Object} clone of an instance - */ - clone: function(callback, propertiesToInclude) { - if (this.constructor.fromObject) { - return this.constructor.fromObject(this.toObject(propertiesToInclude), callback); - } - return new fabric.Object(this.toObject(propertiesToInclude)); - }, - - /** - * Creates an instance of fabric.Image out of an object - * @param {Function} callback callback, invoked with an instance as a first argument - * @return {fabric.Object} thisArg - */ - cloneAsImage: function(callback) { - var dataUrl = this.toDataURL(); - fabric.util.loadImage(dataUrl, function(img) { - if (callback) { - callback(new fabric.Image(img)); - } - }); - return this; - }, - - /** - * Converts an object into a data-url-like string - * @param {Object} options Options object - * @param {String} [options.format=png] The format of the output image. Either "jpeg" or "png" - * @param {Number} [options.quality=1] Quality level (0..1). Only used for jpeg. - * @param {Number} [options.multiplier=1] Multiplier to scale by - * @param {Number} [options.left] Cropping left offset. Introduced in v1.2.14 - * @param {Number} [options.top] Cropping top offset. Introduced in v1.2.14 - * @param {Number} [options.width] Cropping width. Introduced in v1.2.14 - * @param {Number} [options.height] Cropping height. Introduced in v1.2.14 - * @return {String} Returns a data: URL containing a representation of the object in the format specified by options.format - */ - toDataURL: function(options) { - options || (options = { }); - - var el = fabric.util.createCanvasElement(), - boundingRect = this.getBoundingRect(); - - el.width = boundingRect.width; - el.height = boundingRect.height; - - fabric.util.wrapElement(el, 'div'); - var canvas = new fabric.StaticCanvas(el); - - // to avoid common confusion https://github.com/kangax/fabric.js/issues/806 - if (options.format === 'jpg') { - options.format = 'jpeg'; - } - - if (options.format === 'jpeg') { - canvas.backgroundColor = '#fff'; - } - - var origParams = { - active: this.get('active'), - left: this.getLeft(), - top: this.getTop() - }; - - this.set('active', false); - this.setPositionByOrigin(new fabric.Point(el.width / 2, el.height / 2), 'center', 'center'); - - var originalCanvas = this.canvas; - canvas.add(this); - var data = canvas.toDataURL(options); - - this.set(origParams).setCoords(); - this.canvas = originalCanvas; - - canvas.dispose(); - canvas = null; - - return data; - }, - - /** - * Returns true if specified type is identical to the type of an instance - * @param {String} type Type to check against - * @return {Boolean} - */ - isType: function(type) { - return this.type === type; - }, - - /** - * Returns complexity of an instance - * @return {Number} complexity of this instance - */ - complexity: function() { - return 0; - }, - - /** - * Returns a JSON representation of an instance - * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output - * @return {Object} JSON - */ - toJSON: function(propertiesToInclude) { - // delegate, not alias - return this.toObject(propertiesToInclude); - }, - - /** - * Sets gradient (fill or stroke) of an object - * Backwards incompatibility note: This method was named "setGradientFill" until v1.1.0 - * @param {String} property Property name 'stroke' or 'fill' - * @param {Object} [options] Options object - * @param {String} [options.type] Type of gradient 'radial' or 'linear' - * @param {Number} [options.x1=0] x-coordinate of start point - * @param {Number} [options.y1=0] y-coordinate of start point - * @param {Number} [options.x2=0] x-coordinate of end point - * @param {Number} [options.y2=0] y-coordinate of end point - * @param {Number} [options.r1=0] Radius of start point (only for radial gradients) - * @param {Number} [options.r2=0] Radius of end point (only for radial gradients) - * @param {Object} [options.colorStops] Color stops object eg. {0: 'ff0000', 1: '000000'} - * @return {fabric.Object} thisArg - * @chainable - * @see {@link http://jsfiddle.net/fabricjs/58y8b/|jsFiddle demo} - * @example - * object.setGradient('fill', { - * type: 'linear', - * x1: -object.width / 2, - * y1: 0, - * x2: object.width / 2, - * y2: 0, - * colorStops: { - * 0: 'red', - * 0.5: '#005555', - * 1: 'rgba(0,0,255,0.5)' - * } - * }); - * canvas.renderAll(); - * @example - * object.setGradient('fill', { - * type: 'radial', - * x1: 0, - * y1: 0, - * x2: 0, - * y2: 0, - * r1: object.width / 2, - * r2: 10, - * colorStops: { - * 0: 'red', - * 0.5: '#005555', - * 1: 'rgba(0,0,255,0.5)' - * } - * }); - * canvas.renderAll(); - */ - setGradient: function(property, options) { - options || (options = { }); - - var gradient = { colorStops: [] }; - - gradient.type = options.type || (options.r1 || options.r2 ? 'radial' : 'linear'); - gradient.coords = { - x1: options.x1, - y1: options.y1, - x2: options.x2, - y2: options.y2 - }; - - if (options.r1 || options.r2) { - gradient.coords.r1 = options.r1; - gradient.coords.r2 = options.r2; - } - - for (var position in options.colorStops) { - var color = new fabric.Color(options.colorStops[position]); - gradient.colorStops.push({ - offset: position, - color: color.toRgb(), - opacity: color.getAlpha() - }); - } - - return this.set(property, fabric.Gradient.forObject(this, gradient)); - }, - - /** - * Sets pattern fill of an object - * @param {Object} options Options object - * @param {(String|HTMLImageElement)} options.source Pattern source - * @param {String} [options.repeat=repeat] Repeat property of a pattern (one of repeat, repeat-x, repeat-y or no-repeat) - * @param {Number} [options.offsetX=0] Pattern horizontal offset from object's left/top corner - * @param {Number} [options.offsetY=0] Pattern vertical offset from object's left/top corner - * @return {fabric.Object} thisArg - * @chainable - * @see {@link http://jsfiddle.net/fabricjs/QT3pa/|jsFiddle demo} - * @example - * fabric.util.loadImage('http://fabricjs.com/assets/escheresque_ste.png', function(img) { - * object.setPatternFill({ - * source: img, - * repeat: 'repeat' - * }); - * canvas.renderAll(); - * }); - */ - setPatternFill: function(options) { - return this.set('fill', new fabric.Pattern(options)); - }, - - /** - * Sets {@link fabric.Object#shadow|shadow} of an object - * @param {Object|String} [options] Options object or string (e.g. "2px 2px 10px rgba(0,0,0,0.2)") - * @param {String} [options.color=rgb(0,0,0)] Shadow color - * @param {Number} [options.blur=0] Shadow blur - * @param {Number} [options.offsetX=0] Shadow horizontal offset - * @param {Number} [options.offsetY=0] Shadow vertical offset - * @return {fabric.Object} thisArg - * @chainable - * @see {@link http://jsfiddle.net/fabricjs/7gvJG/|jsFiddle demo} - * @example - * object.setShadow('2px 2px 10px rgba(0,0,0,0.2)'); - * canvas.renderAll(); - * @example - * object.setShadow({ - * color: 'red', - * blur: 10, - * offsetX: 20, - * offsetY: 20 - * }); - * canvas.renderAll(); - */ - setShadow: function(options) { - return this.set('shadow', options ? new fabric.Shadow(options) : null); - }, - - /** - * Sets "color" of an instance (alias of `set('fill', …)`) - * @param {String} color Color value - * @return {fabric.Object} thisArg - * @chainable - */ - setColor: function(color) { - this.set('fill', color); - return this; - }, - - /** - * Sets "angle" of an instance - * @param {Number} angle Angle value (in degrees) - * @return {fabric.Object} thisArg - * @chainable - */ - setAngle: function(angle) { - var shouldCenterOrigin = (this.originX !== 'center' || this.originY !== 'center') && this.centeredRotation; - - if (shouldCenterOrigin) { - this._setOriginToCenter(); - } - - this.set('angle', angle); - - if (shouldCenterOrigin) { - this._resetOrigin(); - } - - return this; - }, - - /** - * Centers object horizontally on canvas to which it was added last. - * You might need to call `setCoords` on an object after centering, to update controls area. - * @return {fabric.Object} thisArg - * @chainable - */ - centerH: function () { - this.canvas.centerObjectH(this); - return this; - }, - - /** - * Centers object vertically on canvas to which it was added last. - * You might need to call `setCoords` on an object after centering, to update controls area. - * @return {fabric.Object} thisArg - * @chainable - */ - centerV: function () { - this.canvas.centerObjectV(this); - return this; - }, - - /** - * Centers object vertically and horizontally on canvas to which is was added last - * You might need to call `setCoords` on an object after centering, to update controls area. - * @return {fabric.Object} thisArg - * @chainable - */ - center: function () { - this.canvas.centerObject(this); - return this; - }, - - /** - * Removes object from canvas to which it was added last - * @return {fabric.Object} thisArg - * @chainable - */ - remove: function() { - this.canvas.remove(this); - return this; - }, - - /** - * Returns coordinates of a pointer relative to an object - * @param {Event} e Event to operate upon - * @param {Object} [pointer] Pointer to operate upon (instead of event) - * @return {Object} Coordinates of a pointer (x, y) - */ - getLocalPointer: function(e, pointer) { - pointer = pointer || this.canvas.getPointer(e); - var objectLeftTop = this.translateToOriginPoint(this.getCenterPoint(), 'left', 'top'); - return { - x: pointer.x - objectLeftTop.x, - y: pointer.y - objectLeftTop.y - }; - }, - - /** - * Sets canvas globalCompositeOperation for specific object - * custom composition operation for the particular object can be specifed using globalCompositeOperation property - * @param {CanvasRenderingContext2D} ctx Rendering canvas context - */ - _setupCompositeOperation: function (ctx) { - if (this.globalCompositeOperation) { - this._prevGlobalCompositeOperation = ctx.globalCompositeOperation; - ctx.globalCompositeOperation = this.globalCompositeOperation; - } - }, - - /** - * Restores previously saved canvas globalCompositeOperation after obeject rendering - * @param {CanvasRenderingContext2D} ctx Rendering canvas context - */ - _restoreCompositeOperation: function (ctx) { - if (this.globalCompositeOperation && this._prevGlobalCompositeOperation) { - ctx.globalCompositeOperation = this._prevGlobalCompositeOperation; - } - } - }); - - fabric.util.createAccessors(fabric.Object); - - /** - * Alias for {@link fabric.Object.prototype.setAngle} - * @alias rotate -> setAngle - * @memberof fabric.Object - */ - fabric.Object.prototype.rotate = fabric.Object.prototype.setAngle; - - extend(fabric.Object.prototype, fabric.Observable); - - /** - * Defines the number of fraction digits to use when serializing object values. - * You can use it to increase/decrease precision of such values like left, top, scaleX, scaleY, etc. - * @static - * @memberof fabric.Object - * @constant - * @type Number - */ - fabric.Object.NUM_FRACTION_DIGITS = 2; - - /** - * Unique id used internally when creating SVG elements - * @static - * @memberof fabric.Object - * @type Number - */ - fabric.Object.__uid = 0; - -})(typeof exports !== 'undefined' ? exports : this); - - -(function() { - - var degreesToRadians = fabric.util.degreesToRadians; - - fabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prototype */ { - - /** - * Translates the coordinates from origin to center coordinates (based on the object's dimensions) - * @param {fabric.Point} point The point which corresponds to the originX and originY params - * @param {String} originX Horizontal origin: 'left', 'center' or 'right' - * @param {String} originY Vertical origin: 'top', 'center' or 'bottom' - * @return {fabric.Point} - */ - translateToCenterPoint: function(point, originX, originY) { - var cx = point.x, - cy = point.y, - strokeWidth = this.stroke ? this.strokeWidth : 0; - - if (originX === 'left') { - cx = point.x + (this.getWidth() + strokeWidth * this.scaleX) / 2; - } - else if (originX === 'right') { - cx = point.x - (this.getWidth() + strokeWidth * this.scaleX) / 2; - } - - if (originY === 'top') { - cy = point.y + (this.getHeight() + strokeWidth * this.scaleY) / 2; - } - else if (originY === 'bottom') { - cy = point.y - (this.getHeight() + strokeWidth * this.scaleY) / 2; - } - - // Apply the reverse rotation to the point (it's already scaled properly) - return fabric.util.rotatePoint(new fabric.Point(cx, cy), point, degreesToRadians(this.angle)); - }, - - /** - * Translates the coordinates from center to origin coordinates (based on the object's dimensions) - * @param {fabric.Point} center The point which corresponds to center of the object - * @param {String} originX Horizontal origin: 'left', 'center' or 'right' - * @param {String} originY Vertical origin: 'top', 'center' or 'bottom' - * @return {fabric.Point} - */ - translateToOriginPoint: function(center, originX, originY) { - var x = center.x, - y = center.y, - strokeWidth = this.stroke ? this.strokeWidth : 0; - - // Get the point coordinates - if (originX === 'left') { - x = center.x - (this.getWidth() + strokeWidth * this.scaleX) / 2; - } - else if (originX === 'right') { - x = center.x + (this.getWidth() + strokeWidth * this.scaleX) / 2; - } - if (originY === 'top') { - y = center.y - (this.getHeight() + strokeWidth * this.scaleY) / 2; - } - else if (originY === 'bottom') { - y = center.y + (this.getHeight() + strokeWidth * this.scaleY) / 2; - } - - // Apply the rotation to the point (it's already scaled properly) - return fabric.util.rotatePoint(new fabric.Point(x, y), center, degreesToRadians(this.angle)); - }, - - /** - * Returns the real center coordinates of the object - * @return {fabric.Point} - */ - getCenterPoint: function() { - var leftTop = new fabric.Point(this.left, this.top); - return this.translateToCenterPoint(leftTop, this.originX, this.originY); - }, - - /** - * Returns the coordinates of the object based on center coordinates - * @param {fabric.Point} point The point which corresponds to the originX and originY params - * @return {fabric.Point} - */ - // getOriginPoint: function(center) { - // return this.translateToOriginPoint(center, this.originX, this.originY); - // }, - - /** - * Returns the coordinates of the object as if it has a different origin - * @param {String} originX Horizontal origin: 'left', 'center' or 'right' - * @param {String} originY Vertical origin: 'top', 'center' or 'bottom' - * @return {fabric.Point} - */ - getPointByOrigin: function(originX, originY) { - var center = this.getCenterPoint(); - return this.translateToOriginPoint(center, originX, originY); - }, - - /** - * Returns the point in local coordinates - * @param {fabric.Point} point The point relative to the global coordinate system - * @param {String} originX Horizontal origin: 'left', 'center' or 'right' - * @param {String} originY Vertical origin: 'top', 'center' or 'bottom' - * @return {fabric.Point} - */ - toLocalPoint: function(point, originX, originY) { - var center = this.getCenterPoint(), - strokeWidth = this.stroke ? this.strokeWidth : 0, - x, y; - - if (originX && originY) { - if (originX === 'left') { - x = center.x - (this.getWidth() + strokeWidth * this.scaleX) / 2; - } - else if (originX === 'right') { - x = center.x + (this.getWidth() + strokeWidth * this.scaleX) / 2; - } - else { - x = center.x; - } - - if (originY === 'top') { - y = center.y - (this.getHeight() + strokeWidth * this.scaleY) / 2; - } - else if (originY === 'bottom') { - y = center.y + (this.getHeight() + strokeWidth * this.scaleY) / 2; - } - else { - y = center.y; - } - } - else { - x = this.left; - y = this.top; - } - - return fabric.util.rotatePoint(new fabric.Point(point.x, point.y), center, -degreesToRadians(this.angle)) - .subtractEquals(new fabric.Point(x, y)); - }, - - /** - * Returns the point in global coordinates - * @param {fabric.Point} The point relative to the local coordinate system - * @return {fabric.Point} - */ - // toGlobalPoint: function(point) { - // return fabric.util.rotatePoint(point, this.getCenterPoint(), degreesToRadians(this.angle)).addEquals(new fabric.Point(this.left, this.top)); - // }, - - /** - * Sets the position of the object taking into consideration the object's origin - * @param {fabric.Point} pos The new position of the object - * @param {String} originX Horizontal origin: 'left', 'center' or 'right' - * @param {String} originY Vertical origin: 'top', 'center' or 'bottom' - * @return {void} - */ - setPositionByOrigin: function(pos, originX, originY) { - var center = this.translateToCenterPoint(pos, originX, originY), - position = this.translateToOriginPoint(center, this.originX, this.originY); - - this.set('left', position.x); - this.set('top', position.y); - }, - - /** - * @param {String} to One of 'left', 'center', 'right' - */ - adjustPosition: function(to) { - var angle = degreesToRadians(this.angle), - hypotHalf = this.getWidth() / 2, - xHalf = Math.cos(angle) * hypotHalf, - yHalf = Math.sin(angle) * hypotHalf, - hypotFull = this.getWidth(), - xFull = Math.cos(angle) * hypotFull, - yFull = Math.sin(angle) * hypotFull; - - if (this.originX === 'center' && to === 'left' || - this.originX === 'right' && to === 'center') { - // move half left - this.left -= xHalf; - this.top -= yHalf; - } - else if (this.originX === 'left' && to === 'center' || - this.originX === 'center' && to === 'right') { - // move half right - this.left += xHalf; - this.top += yHalf; - } - else if (this.originX === 'left' && to === 'right') { - // move full right - this.left += xFull; - this.top += yFull; - } - else if (this.originX === 'right' && to === 'left') { - // move full left - this.left -= xFull; - this.top -= yFull; - } - - this.setCoords(); - this.originX = to; - }, - - /** - * Sets the origin/position of the object to it's center point - * @private - * @return {void} - */ - _setOriginToCenter: function() { - this._originalOriginX = this.originX; - this._originalOriginY = this.originY; - - var center = this.getCenterPoint(); - - this.originX = 'center'; - this.originY = 'center'; - - this.left = center.x; - this.top = center.y; - }, - - /** - * Resets the origin/position of the object to it's original origin - * @private - * @return {void} - */ - _resetOrigin: function() { - var originPoint = this.translateToOriginPoint( - this.getCenterPoint(), - this._originalOriginX, - this._originalOriginY); - - this.originX = this._originalOriginX; - this.originY = this._originalOriginY; - - this.left = originPoint.x; - this.top = originPoint.y; - - this._originalOriginX = null; - this._originalOriginY = null; - }, - - /** - * @private - */ - _getLeftTopCoords: function() { - return this.translateToOriginPoint(this.getCenterPoint(), 'left', 'center'); - } - }); - -})(); - - -(function() { - - var degreesToRadians = fabric.util.degreesToRadians; - - fabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prototype */ { - - /** - * Object containing coordinates of object's controls - * @type Object - * @default - */ - oCoords: null, - - /** - * Checks if object intersects with an area formed by 2 points - * @param {Object} pointTL top-left point of area - * @param {Object} pointBR bottom-right point of area - * @return {Boolean} true if object intersects with an area formed by 2 points - */ - intersectsWithRect: function(pointTL, pointBR) { - var oCoords = this.oCoords, - tl = new fabric.Point(oCoords.tl.x, oCoords.tl.y), - tr = new fabric.Point(oCoords.tr.x, oCoords.tr.y), - bl = new fabric.Point(oCoords.bl.x, oCoords.bl.y), - br = new fabric.Point(oCoords.br.x, oCoords.br.y), - intersection = fabric.Intersection.intersectPolygonRectangle( - [tl, tr, br, bl], - pointTL, - pointBR - ); - return intersection.status === 'Intersection'; - }, - - /** - * Checks if object intersects with another object - * @param {Object} other Object to test - * @return {Boolean} true if object intersects with another object - */ - intersectsWithObject: function(other) { - // extracts coords - function getCoords(oCoords) { - return { - tl: new fabric.Point(oCoords.tl.x, oCoords.tl.y), - tr: new fabric.Point(oCoords.tr.x, oCoords.tr.y), - bl: new fabric.Point(oCoords.bl.x, oCoords.bl.y), - br: new fabric.Point(oCoords.br.x, oCoords.br.y) - }; - } - var thisCoords = getCoords(this.oCoords), - otherCoords = getCoords(other.oCoords), - intersection = fabric.Intersection.intersectPolygonPolygon( - [thisCoords.tl, thisCoords.tr, thisCoords.br, thisCoords.bl], - [otherCoords.tl, otherCoords.tr, otherCoords.br, otherCoords.bl] - ); - - return intersection.status === 'Intersection'; - }, - - /** - * Checks if object is fully contained within area of another object - * @param {Object} other Object to test - * @return {Boolean} true if object is fully contained within area of another object - */ - isContainedWithinObject: function(other) { - var boundingRect = other.getBoundingRect(), - point1 = new fabric.Point(boundingRect.left, boundingRect.top), - point2 = new fabric.Point(boundingRect.left + boundingRect.width, boundingRect.top + boundingRect.height); - - return this.isContainedWithinRect(point1, point2); - }, - - /** - * Checks if object is fully contained within area formed by 2 points - * @param {Object} pointTL top-left point of area - * @param {Object} pointBR bottom-right point of area - * @return {Boolean} true if object is fully contained within area formed by 2 points - */ - isContainedWithinRect: function(pointTL, pointBR) { - var boundingRect = this.getBoundingRect(); - - return ( - boundingRect.left >= pointTL.x && - boundingRect.left + boundingRect.width <= pointBR.x && - boundingRect.top >= pointTL.y && - boundingRect.top + boundingRect.height <= pointBR.y - ); - }, - - /** - * Checks if point is inside the object - * @param {fabric.Point} point Point to check against - * @return {Boolean} true if point is inside the object - */ - containsPoint: function(point) { - var lines = this._getImageLines(this.oCoords), - xPoints = this._findCrossPoints(point, lines); - - // if xPoints is odd then point is inside the object - return (xPoints !== 0 && xPoints % 2 === 1); - }, - - /** - * Method that returns an object with the object edges in it, given the coordinates of the corners - * @private - * @param {Object} oCoords Coordinates of the object corners - */ - _getImageLines: function(oCoords) { - return { - topline: { - o: oCoords.tl, - d: oCoords.tr - }, - rightline: { - o: oCoords.tr, - d: oCoords.br - }, - bottomline: { - o: oCoords.br, - d: oCoords.bl - }, - leftline: { - o: oCoords.bl, - d: oCoords.tl - } - }; - }, - - /** - * Helper method to determine how many cross points are between the 4 object edges - * and the horizontal line determined by a point on canvas - * @private - * @param {fabric.Point} point Point to check - * @param {Object} oCoords Coordinates of the object being evaluated - */ - _findCrossPoints: function(point, oCoords) { - var b1, b2, a1, a2, xi, yi, - xcount = 0, - iLine; - - for (var lineKey in oCoords) { - iLine = oCoords[lineKey]; - // optimisation 1: line below point. no cross - if ((iLine.o.y < point.y) && (iLine.d.y < point.y)) { - continue; - } - // optimisation 2: line above point. no cross - if ((iLine.o.y >= point.y) && (iLine.d.y >= point.y)) { - continue; - } - // optimisation 3: vertical line case - if ((iLine.o.x === iLine.d.x) && (iLine.o.x >= point.x)) { - xi = iLine.o.x; - yi = point.y; - } - // calculate the intersection point - else { - b1 = 0; - b2 = (iLine.d.y - iLine.o.y) / (iLine.d.x - iLine.o.x); - a1 = point.y - b1 * point.x; - a2 = iLine.o.y - b2 * iLine.o.x; - - xi = - (a1 - a2) / (b1 - b2); - yi = a1 + b1 * xi; - } - // dont count xi < point.x cases - if (xi >= point.x) { - xcount += 1; - } - // optimisation 4: specific for square images - if (xcount === 2) { - break; - } - } - return xcount; - }, - - /** - * Returns width of an object's bounding rectangle - * @deprecated since 1.0.4 - * @return {Number} width value - */ - getBoundingRectWidth: function() { - return this.getBoundingRect().width; - }, - - /** - * Returns height of an object's bounding rectangle - * @deprecated since 1.0.4 - * @return {Number} height value - */ - getBoundingRectHeight: function() { - return this.getBoundingRect().height; - }, - - /** - * Returns coordinates of object's bounding rectangle (left, top, width, height) - * @return {Object} Object with left, top, width, height properties - */ - getBoundingRect: function() { - this.oCoords || this.setCoords(); - - var xCoords = [this.oCoords.tl.x, this.oCoords.tr.x, this.oCoords.br.x, this.oCoords.bl.x], - minX = fabric.util.array.min(xCoords), - maxX = fabric.util.array.max(xCoords), - width = Math.abs(minX - maxX), - - yCoords = [this.oCoords.tl.y, this.oCoords.tr.y, this.oCoords.br.y, this.oCoords.bl.y], - minY = fabric.util.array.min(yCoords), - maxY = fabric.util.array.max(yCoords), - height = Math.abs(minY - maxY); - - return { - left: minX, - top: minY, - width: width, - height: height - }; - }, - - /** - * Returns width of an object - * @return {Number} width value - */ - getWidth: function() { - return this.width * this.scaleX; - }, - - /** - * Returns height of an object - * @return {Number} height value - */ - getHeight: function() { - return this.height * this.scaleY; - }, - - /** - * Makes sure the scale is valid and modifies it if necessary - * @private - * @param {Number} value - * @return {Number} - */ - _constrainScale: function(value) { - if (Math.abs(value) < this.minScaleLimit) { - if (value < 0) { - return -this.minScaleLimit; - } - else { - return this.minScaleLimit; - } - } - return value; - }, - - /** - * Scales an object (equally by x and y) - * @param {Number} value Scale factor - * @return {fabric.Object} thisArg - * @chainable - */ - scale: function(value) { - value = this._constrainScale(value); - - if (value < 0) { - this.flipX = !this.flipX; - this.flipY = !this.flipY; - value *= -1; - } - - this.scaleX = value; - this.scaleY = value; - this.setCoords(); - return this; - }, - - /** - * Scales an object to a given width, with respect to bounding box (scaling by x/y equally) - * @param {Number} value New width value - * @return {fabric.Object} thisArg - * @chainable - */ - scaleToWidth: function(value) { - // adjust to bounding rect factor so that rotated shapes would fit as well - var boundingRectFactor = this.getBoundingRectWidth() / this.getWidth(); - return this.scale(value / this.width / boundingRectFactor); - }, - - /** - * Scales an object to a given height, with respect to bounding box (scaling by x/y equally) - * @param {Number} value New height value - * @return {fabric.Object} thisArg - * @chainable - */ - scaleToHeight: function(value) { - // adjust to bounding rect factor so that rotated shapes would fit as well - var boundingRectFactor = this.getBoundingRectHeight() / this.getHeight(); - return this.scale(value / this.height / boundingRectFactor); - }, - - /** - * Sets corner position coordinates based on current angle, width and height - * See https://github.com/kangax/fabric.js/wiki/When-to-call-setCoords - * @return {fabric.Object} thisArg - * @chainable - */ - setCoords: function() { - var theta = degreesToRadians(this.angle), - vpt = this.getViewportTransform(), - f = function (p) { - return fabric.util.transformPoint(p, vpt); - }, - p = this._calculateCurrentDimensions(false), - currentWidth = p.x, currentHeight = p.y; - - // If width is negative, make postive. Fixes path selection issue - if (currentWidth < 0) { - currentWidth = Math.abs(currentWidth); - } - - var _hypotenuse = Math.sqrt( - Math.pow(currentWidth / 2, 2) + - Math.pow(currentHeight / 2, 2)), - - _angle = Math.atan( - isFinite(currentHeight / currentWidth) - ? currentHeight / currentWidth - : 0), - - // offset added for rotate and scale actions - offsetX = Math.cos(_angle + theta) * _hypotenuse, - offsetY = Math.sin(_angle + theta) * _hypotenuse, - sinTh = Math.sin(theta), - cosTh = Math.cos(theta), - coords = this.getCenterPoint(), - wh = new fabric.Point(currentWidth, currentHeight), - _tl = new fabric.Point(coords.x - offsetX, coords.y - offsetY), - _tr = new fabric.Point(_tl.x + (wh.x * cosTh), _tl.y + (wh.x * sinTh)), - bl = f(new fabric.Point(_tl.x - (wh.y * sinTh), _tl.y + (wh.y * cosTh))), - br = f(new fabric.Point(_tr.x - (wh.y * sinTh), _tr.y + (wh.y * cosTh))), - tl = f(_tl), - tr = f(_tr), - ml = new fabric.Point((tl.x + bl.x)/2, (tl.y + bl.y)/2), - mt = new fabric.Point((tr.x + tl.x)/2, (tr.y + tl.y)/2), - mr = new fabric.Point((br.x + tr.x)/2, (br.y + tr.y)/2), - mb = new fabric.Point((br.x + bl.x)/2, (br.y + bl.y)/2), - mtr = new fabric.Point(mt.x + sinTh * this.rotatingPointOffset, mt.y - cosTh * this.rotatingPointOffset); - // debugging - - /* setTimeout(function() { - canvas.contextTop.fillStyle = 'green'; - canvas.contextTop.fillRect(mb.x, mb.y, 3, 3); - canvas.contextTop.fillRect(bl.x, bl.y, 3, 3); - canvas.contextTop.fillRect(br.x, br.y, 3, 3); - canvas.contextTop.fillRect(tl.x, tl.y, 3, 3); - canvas.contextTop.fillRect(tr.x, tr.y, 3, 3); - canvas.contextTop.fillRect(ml.x, ml.y, 3, 3); - canvas.contextTop.fillRect(mr.x, mr.y, 3, 3); - canvas.contextTop.fillRect(mt.x, mt.y, 3, 3); - canvas.contextTop.fillRect(mtr.x, mtr.y, 3, 3); - }, 50); */ - - this.oCoords = { - // corners - tl: tl, tr: tr, br: br, bl: bl, - // middle - ml: ml, mt: mt, mr: mr, mb: mb, - // rotating point - mtr: mtr - }; - - // set coordinates of the draggable boxes in the corners used to scale/rotate the image - this._setCornerCoords && this._setCornerCoords(); - - return this; - } - }); -})(); - - -fabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prototype */ { - - /** - * Moves an object to the bottom of the stack of drawn objects - * @return {fabric.Object} thisArg - * @chainable - */ - sendToBack: function() { - if (this.group) { - fabric.StaticCanvas.prototype.sendToBack.call(this.group, this); - } - else { - this.canvas.sendToBack(this); - } - return this; - }, - - /** - * Moves an object to the top of the stack of drawn objects - * @return {fabric.Object} thisArg - * @chainable - */ - bringToFront: function() { - if (this.group) { - fabric.StaticCanvas.prototype.bringToFront.call(this.group, this); - } - else { - this.canvas.bringToFront(this); - } - return this; - }, - - /** - * Moves an object down in stack of drawn objects - * @param {Boolean} [intersecting] If `true`, send object behind next lower intersecting object - * @return {fabric.Object} thisArg - * @chainable - */ - sendBackwards: function(intersecting) { - if (this.group) { - fabric.StaticCanvas.prototype.sendBackwards.call(this.group, this, intersecting); - } - else { - this.canvas.sendBackwards(this, intersecting); - } - return this; - }, - - /** - * Moves an object up in stack of drawn objects - * @param {Boolean} [intersecting] If `true`, send object in front of next upper intersecting object - * @return {fabric.Object} thisArg - * @chainable - */ - bringForward: function(intersecting) { - if (this.group) { - fabric.StaticCanvas.prototype.bringForward.call(this.group, this, intersecting); - } - else { - this.canvas.bringForward(this, intersecting); - } - return this; - }, - - /** - * Moves an object to specified level in stack of drawn objects - * @param {Number} index New position of object - * @return {fabric.Object} thisArg - * @chainable - */ - moveTo: function(index) { - if (this.group) { - fabric.StaticCanvas.prototype.moveTo.call(this.group, this, index); - } - else { - this.canvas.moveTo(this, index); - } - return this; - } -}); - - -/* _TO_SVG_START_ */ -fabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prototype */ { - - /** - * Returns styles-string for svg-export - * @return {String} - */ - getSvgStyles: function() { - - var fill = this.fill - ? (this.fill.toLive ? 'url(#SVGID_' + this.fill.id + ')' : this.fill) - : 'none', - fillRule = this.fillRule, - stroke = this.stroke - ? (this.stroke.toLive ? 'url(#SVGID_' + this.stroke.id + ')' : this.stroke) - : 'none', - - strokeWidth = this.strokeWidth ? this.strokeWidth : '0', - strokeDashArray = this.strokeDashArray ? this.strokeDashArray.join(' ') : '', - strokeLineCap = this.strokeLineCap ? this.strokeLineCap : 'butt', - strokeLineJoin = this.strokeLineJoin ? this.strokeLineJoin : 'miter', - strokeMiterLimit = this.strokeMiterLimit ? this.strokeMiterLimit : '4', - opacity = typeof this.opacity !== 'undefined' ? this.opacity : '1', - - visibility = this.visible ? '' : ' visibility: hidden;', - filter = this.shadow ? 'filter: url(#SVGID_' + this.shadow.id + ');' : ''; - - return [ - 'stroke: ', stroke, '; ', - 'stroke-width: ', strokeWidth, '; ', - 'stroke-dasharray: ', strokeDashArray, '; ', - 'stroke-linecap: ', strokeLineCap, '; ', - 'stroke-linejoin: ', strokeLineJoin, '; ', - 'stroke-miterlimit: ', strokeMiterLimit, '; ', - 'fill: ', fill, '; ', - 'fill-rule: ', fillRule, '; ', - 'opacity: ', opacity, ';', - filter, - visibility - ].join(''); - }, - - /** - * Returns transform-string for svg-export - * @return {String} - */ - getSvgTransform: function() { - if (this.group && this.group.type === 'path-group') { - return ''; - } - var toFixed = fabric.util.toFixed, - angle = this.getAngle(), - vpt = !this.canvas || this.canvas.svgViewportTransformation ? this.getViewportTransform() : [1, 0, 0, 1, 0, 0], - center = fabric.util.transformPoint(this.getCenterPoint(), vpt), - - NUM_FRACTION_DIGITS = fabric.Object.NUM_FRACTION_DIGITS, - - translatePart = this.type === 'path-group' ? '' : 'translate(' + - toFixed(center.x, NUM_FRACTION_DIGITS) + - ' ' + - toFixed(center.y, NUM_FRACTION_DIGITS) + - ')', - - anglePart = angle !== 0 - ? (' rotate(' + toFixed(angle, NUM_FRACTION_DIGITS) + ')') - : '', - - scalePart = (this.scaleX === 1 && this.scaleY === 1 && vpt[0] === 1 && vpt[3] === 1) - ? '' : - (' scale(' + - toFixed(this.scaleX * vpt[0], NUM_FRACTION_DIGITS) + - ' ' + - toFixed(this.scaleY * vpt[3], NUM_FRACTION_DIGITS) + - ')'), - - addTranslateX = this.type === 'path-group' ? this.width * vpt[0] : 0, - - flipXPart = this.flipX ? ' matrix(-1 0 0 1 ' + addTranslateX + ' 0) ' : '', - - addTranslateY = this.type === 'path-group' ? this.height * vpt[3] : 0, - - flipYPart = this.flipY ? ' matrix(1 0 0 -1 0 ' + addTranslateY + ')' : ''; - - return [ - translatePart, anglePart, scalePart, flipXPart, flipYPart - ].join(''); - }, - - /** - * Returns transform-string for svg-export from the transform matrix of single elements - * @return {String} - */ - getSvgTransformMatrix: function() { - return this.transformMatrix ? ' matrix(' + this.transformMatrix.join(' ') + ') ' : ''; - }, - - /** - * @private - */ - _createBaseSVGMarkup: function() { - var markup = [ ]; - - if (this.fill && this.fill.toLive) { - markup.push(this.fill.toSVG(this, false)); - } - if (this.stroke && this.stroke.toLive) { - markup.push(this.stroke.toSVG(this, false)); - } - if (this.shadow) { - markup.push(this.shadow.toSVG(this)); - } - return markup; - } -}); -/* _TO_SVG_END_ */ - - -/* - Depends on `stateProperties` -*/ -fabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prototype */ { - - /** - * Returns true if object state (one of its state properties) was changed - * @return {Boolean} true if instance' state has changed since `{@link fabric.Object#saveState}` was called - */ - hasStateChanged: function() { - return this.stateProperties.some(function(prop) { - return this.get(prop) !== this.originalState[prop]; - }, this); - }, - - /** - * Saves state of an object - * @param {Object} [options] Object with additional `stateProperties` array to include when saving state - * @return {fabric.Object} thisArg - */ - saveState: function(options) { - this.stateProperties.forEach(function(prop) { - this.originalState[prop] = this.get(prop); - }, this); - - if (options && options.stateProperties) { - options.stateProperties.forEach(function(prop) { - this.originalState[prop] = this.get(prop); - }, this); - } - - return this; - }, - - /** - * Setups state of an object - * @return {fabric.Object} thisArg - */ - setupState: function() { - this.originalState = { }; - this.saveState(); - - return this; - } -}); - - -(function() { - - var degreesToRadians = fabric.util.degreesToRadians, - //jscs:disable requireCamelCaseOrUpperCaseIdentifiers - isVML = function() { return typeof G_vmlCanvasManager !== 'undefined'; }; - //jscs:enable requireCamelCaseOrUpperCaseIdentifiers - - fabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prototype */ { - - /** - * The object interactivity controls. - * @private - */ - _controlsVisibility: null, - - /** - * Determines which corner has been clicked - * @private - * @param {Object} pointer The pointer indicating the mouse position - * @return {String|Boolean} corner code (tl, tr, bl, br, etc.), or false if nothing is found - */ - _findTargetCorner: function(pointer) { - if (!this.hasControls || !this.active) { - return false; - } - - var ex = pointer.x, - ey = pointer.y, - xPoints, - lines; - - for (var i in this.oCoords) { - - if (!this.isControlVisible(i)) { - continue; - } - - if (i === 'mtr' && !this.hasRotatingPoint) { - continue; - } - - if (this.get('lockUniScaling') && - (i === 'mt' || i === 'mr' || i === 'mb' || i === 'ml')) { - continue; - } - - lines = this._getImageLines(this.oCoords[i].corner); - - // debugging - - // canvas.contextTop.fillRect(lines.bottomline.d.x, lines.bottomline.d.y, 2, 2); - // canvas.contextTop.fillRect(lines.bottomline.o.x, lines.bottomline.o.y, 2, 2); - - // canvas.contextTop.fillRect(lines.leftline.d.x, lines.leftline.d.y, 2, 2); - // canvas.contextTop.fillRect(lines.leftline.o.x, lines.leftline.o.y, 2, 2); - - // canvas.contextTop.fillRect(lines.topline.d.x, lines.topline.d.y, 2, 2); - // canvas.contextTop.fillRect(lines.topline.o.x, lines.topline.o.y, 2, 2); - - // canvas.contextTop.fillRect(lines.rightline.d.x, lines.rightline.d.y, 2, 2); - // canvas.contextTop.fillRect(lines.rightline.o.x, lines.rightline.o.y, 2, 2); - - xPoints = this._findCrossPoints({ x: ex, y: ey }, lines); - if (xPoints !== 0 && xPoints % 2 === 1) { - this.__corner = i; - return i; - } - } - return false; - }, - - /** - * Sets the coordinates of the draggable boxes in the corners of - * the image used to scale/rotate it. - * @private - */ - _setCornerCoords: function() { - var coords = this.oCoords, - newTheta = degreesToRadians(45 - this.angle), - cornerHypotenuse = Math.sqrt(2 * Math.pow(this.cornerSize, 2)) / 2, - cosHalfOffset = cornerHypotenuse * Math.cos(newTheta), - sinHalfOffset = cornerHypotenuse * Math.sin(newTheta), - x, y; - - for (var point in coords) { - x = coords[point].x; - y = coords[point].y; - coords[point].corner = { - tl: { - x: x - sinHalfOffset, - y: y - cosHalfOffset - }, - tr: { - x: x + cosHalfOffset, - y: y - sinHalfOffset - }, - bl: { - x: x - cosHalfOffset, - y: y + sinHalfOffset - }, - br: { - x: x + sinHalfOffset, - y: y + cosHalfOffset - } - }; - } - }, - - _calculateCurrentDimensions: function(shouldTransform) { - var vpt = this.getViewportTransform(), - strokeWidth = this.strokeWidth, - w = this.width, - h = this.height, - capped = this.strokeLineCap === 'round' || this.strokeLineCap === 'square', - vLine = this.type === 'line' && this.width === 0, - hLine = this.type === 'line' && this.height === 0, - sLine = vLine || hLine, - strokeW = (capped && hLine) || !sLine, - strokeH = (capped && vLine) || !sLine; - - if (vLine) { - w = strokeWidth; - } - else if (hLine) { - h = strokeWidth; - } - if (strokeW) { - w += (w < 0 ? -strokeWidth : strokeWidth); - } - if (strokeH) { - h += (h < 0 ? -strokeWidth : strokeWidth); - } - - w = w * this.scaleX + 2 * this.padding; - h = h * this.scaleY + 2 * this.padding; - - if (shouldTransform) { - return fabric.util.transformPoint(new fabric.Point(w, h), vpt, true); - } - return { x: w, y: h }; - }, - - /** - * Draws borders of an object's bounding box. - * Requires public properties: width, height - * Requires public options: padding, borderColor - * @param {CanvasRenderingContext2D} ctx Context to draw on - * @return {fabric.Object} thisArg - * @chainable - */ - drawBorders: function(ctx) { - if (!this.hasBorders) { - return this; - } - - ctx.save(); - - ctx.globalAlpha = this.isMoving ? this.borderOpacityWhenMoving : 1; - ctx.strokeStyle = this.borderColor; - ctx.lineWidth = 1 / this.borderScaleFactor; - - var wh = this._calculateCurrentDimensions(true), - width = wh.x, - height = wh.y; - if (this.group) { - width = width * this.group.scaleX; - height = height * this.group.scaleY; - } - - ctx.strokeRect( - ~~(-(width / 2)) - 0.5, // offset needed to make lines look sharper - ~~(-(height / 2)) - 0.5, - ~~(width) + 1, // double offset needed to make lines look sharper - ~~(height) + 1 - ); - - if (this.hasRotatingPoint && this.isControlVisible('mtr') && !this.get('lockRotation') && this.hasControls) { - - var rotateHeight = -height / 2; - - ctx.beginPath(); - ctx.moveTo(0, rotateHeight); - ctx.lineTo(0, rotateHeight - this.rotatingPointOffset); - ctx.closePath(); - ctx.stroke(); - } - - ctx.restore(); - return this; - }, - - /** - * Draws corners of an object's bounding box. - * Requires public properties: width, height - * Requires public options: cornerSize, padding - * @param {CanvasRenderingContext2D} ctx Context to draw on - * @return {fabric.Object} thisArg - * @chainable - */ - drawControls: function(ctx) { - if (!this.hasControls) { - return this; - } - - var wh = this._calculateCurrentDimensions(true), - width = wh.x, - height = wh.y, - left = -(width / 2), - top = -(height / 2), - scaleOffset = this.cornerSize / 2, - methodName = this.transparentCorners ? 'strokeRect' : 'fillRect'; - - ctx.save(); - - ctx.lineWidth = 1; - - ctx.globalAlpha = this.isMoving ? this.borderOpacityWhenMoving : 1; - ctx.strokeStyle = ctx.fillStyle = this.cornerColor; - - // top-left - this._drawControl('tl', ctx, methodName, - left - scaleOffset, - top - scaleOffset); - - // top-right - this._drawControl('tr', ctx, methodName, - left + width - scaleOffset, - top - scaleOffset); - - // bottom-left - this._drawControl('bl', ctx, methodName, - left - scaleOffset, - top + height - scaleOffset); - - // bottom-right - this._drawControl('br', ctx, methodName, - left + width - scaleOffset, - top + height - scaleOffset); - - if (!this.get('lockUniScaling')) { - - // middle-top - this._drawControl('mt', ctx, methodName, - left + width/2 - scaleOffset, - top - scaleOffset); - - // middle-bottom - this._drawControl('mb', ctx, methodName, - left + width/2 - scaleOffset, - top + height - scaleOffset); - - // middle-right - this._drawControl('mr', ctx, methodName, - left + width - scaleOffset, - top + height/2 - scaleOffset); - - // middle-left - this._drawControl('ml', ctx, methodName, - left - scaleOffset, - top + height/2 - scaleOffset); - } - - // middle-top-rotate - if (this.hasRotatingPoint) { - this._drawControl('mtr', ctx, methodName, - left + width/2 - scaleOffset, - top - this.rotatingPointOffset - scaleOffset); - } - - ctx.restore(); - - return this; - }, - - /** - * @private - */ - _drawControl: function(control, ctx, methodName, left, top) { - if (!this.isControlVisible(control)) { - return; - } - var size = this.cornerSize; - isVML() || this.transparentCorners || ctx.clearRect(left, top, size, size); - ctx[methodName](left, top, size, size); - }, - - /** - * Returns true if the specified control is visible, false otherwise. - * @param {String} controlName The name of the control. Possible values are 'tl', 'tr', 'br', 'bl', 'ml', 'mt', 'mr', 'mb', 'mtr'. - * @returns {Boolean} true if the specified control is visible, false otherwise - */ - isControlVisible: function(controlName) { - return this._getControlsVisibility()[controlName]; - }, - - /** - * Sets the visibility of the specified control. - * @param {String} controlName The name of the control. Possible values are 'tl', 'tr', 'br', 'bl', 'ml', 'mt', 'mr', 'mb', 'mtr'. - * @param {Boolean} visible true to set the specified control visible, false otherwise - * @return {fabric.Object} thisArg - * @chainable - */ - setControlVisible: function(controlName, visible) { - this._getControlsVisibility()[controlName] = visible; - return this; - }, - - /** - * Sets the visibility state of object controls. - * @param {Object} [options] Options object - * @param {Boolean} [options.bl] true to enable the bottom-left control, false to disable it - * @param {Boolean} [options.br] true to enable the bottom-right control, false to disable it - * @param {Boolean} [options.mb] true to enable the middle-bottom control, false to disable it - * @param {Boolean} [options.ml] true to enable the middle-left control, false to disable it - * @param {Boolean} [options.mr] true to enable the middle-right control, false to disable it - * @param {Boolean} [options.mt] true to enable the middle-top control, false to disable it - * @param {Boolean} [options.tl] true to enable the top-left control, false to disable it - * @param {Boolean} [options.tr] true to enable the top-right control, false to disable it - * @param {Boolean} [options.mtr] true to enable the middle-top-rotate control, false to disable it - * @return {fabric.Object} thisArg - * @chainable - */ - setControlsVisibility: function(options) { - options || (options = { }); - - for (var p in options) { - this.setControlVisible(p, options[p]); - } - return this; - }, - - /** - * Returns the instance of the control visibility set for this object. - * @private - * @returns {Object} - */ - _getControlsVisibility: function() { - if (!this._controlsVisibility) { - this._controlsVisibility = { - tl: true, - tr: true, - br: true, - bl: true, - ml: true, - mt: true, - mr: true, - mb: true, - mtr: true - }; - } - return this._controlsVisibility; - } - }); -})(); - - -fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @lends fabric.StaticCanvas.prototype */ { - - /** - * Animation duration (in ms) for fx* methods - * @type Number - * @default - */ - FX_DURATION: 500, - - /** - * Centers object horizontally with animation. - * @param {fabric.Object} object Object to center - * @param {Object} [callbacks] Callbacks object with optional "onComplete" and/or "onChange" properties - * @param {Function} [callbacks.onComplete] Invoked on completion - * @param {Function} [callbacks.onChange] Invoked on every step of animation - * @return {fabric.Canvas} thisArg - * @chainable - */ - fxCenterObjectH: function (object, callbacks) { - callbacks = callbacks || { }; - - var empty = function() { }, - onComplete = callbacks.onComplete || empty, - onChange = callbacks.onChange || empty, - _this = this; - - fabric.util.animate({ - startValue: object.get('left'), - endValue: this.getCenter().left, - duration: this.FX_DURATION, - onChange: function(value) { - object.set('left', value); - _this.renderAll(); - onChange(); - }, - onComplete: function() { - object.setCoords(); - onComplete(); - } - }); - - return this; - }, - - /** - * Centers object vertically with animation. - * @param {fabric.Object} object Object to center - * @param {Object} [callbacks] Callbacks object with optional "onComplete" and/or "onChange" properties - * @param {Function} [callbacks.onComplete] Invoked on completion - * @param {Function} [callbacks.onChange] Invoked on every step of animation - * @return {fabric.Canvas} thisArg - * @chainable - */ - fxCenterObjectV: function (object, callbacks) { - callbacks = callbacks || { }; - - var empty = function() { }, - onComplete = callbacks.onComplete || empty, - onChange = callbacks.onChange || empty, - _this = this; - - fabric.util.animate({ - startValue: object.get('top'), - endValue: this.getCenter().top, - duration: this.FX_DURATION, - onChange: function(value) { - object.set('top', value); - _this.renderAll(); - onChange(); - }, - onComplete: function() { - object.setCoords(); - onComplete(); - } - }); - - return this; - }, - - /** - * Same as `fabric.Canvas#remove` but animated - * @param {fabric.Object} object Object to remove - * @param {Object} [callbacks] Callbacks object with optional "onComplete" and/or "onChange" properties - * @param {Function} [callbacks.onComplete] Invoked on completion - * @param {Function} [callbacks.onChange] Invoked on every step of animation - * @return {fabric.Canvas} thisArg - * @chainable - */ - fxRemove: function (object, callbacks) { - callbacks = callbacks || { }; - - var empty = function() { }, - onComplete = callbacks.onComplete || empty, - onChange = callbacks.onChange || empty, - _this = this; - - fabric.util.animate({ - startValue: object.get('opacity'), - endValue: 0, - duration: this.FX_DURATION, - onStart: function() { - object.set('active', false); - }, - onChange: function(value) { - object.set('opacity', value); - _this.renderAll(); - onChange(); - }, - onComplete: function () { - _this.remove(object); - onComplete(); - } - }); - - return this; - } -}); - -fabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prototype */ { - /** - * Animates object's properties - * @param {String|Object} property Property to animate (if string) or properties to animate (if object) - * @param {Number|Object} value Value to animate property to (if string was given first) or options object - * @return {fabric.Object} thisArg - * @tutorial {@link http://fabricjs.com/fabric-intro-part-2/#animation} - * @chainable - * - * As object — multiple properties - * - * object.animate({ left: ..., top: ... }); - * object.animate({ left: ..., top: ... }, { duration: ... }); - * - * As string — one property - * - * object.animate('left', ...); - * object.animate('left', { duration: ... }); - * - */ - animate: function() { - if (arguments[0] && typeof arguments[0] === 'object') { - var propsToAnimate = [ ], prop, skipCallbacks; - for (prop in arguments[0]) { - propsToAnimate.push(prop); - } - for (var i = 0, len = propsToAnimate.length; i < len; i++) { - prop = propsToAnimate[i]; - skipCallbacks = i !== len - 1; - this._animate(prop, arguments[0][prop], arguments[1], skipCallbacks); - } - } - else { - this._animate.apply(this, arguments); - } - return this; - }, - - /** - * @private - * @param {String} property Property to animate - * @param {String} to Value to animate to - * @param {Object} [options] Options object - * @param {Boolean} [skipCallbacks] When true, callbacks like onchange and oncomplete are not invoked - */ - _animate: function(property, to, options, skipCallbacks) { - var _this = this, propPair; - - to = to.toString(); - - if (!options) { - options = { }; - } - else { - options = fabric.util.object.clone(options); - } - - if (~property.indexOf('.')) { - propPair = property.split('.'); - } - - var currentValue = propPair - ? this.get(propPair[0])[propPair[1]] - : this.get(property); - - if (!('from' in options)) { - options.from = currentValue; - } - - if (~to.indexOf('=')) { - to = currentValue + parseFloat(to.replace('=', '')); - } - else { - to = parseFloat(to); - } - - fabric.util.animate({ - startValue: options.from, - endValue: to, - byValue: options.by, - easing: options.easing, - duration: options.duration, - abort: options.abort && function() { - return options.abort.call(_this); - }, - onChange: function(value) { - if (propPair) { - _this[propPair[0]][propPair[1]] = value; - } - else { - _this.set(property, value); - } - if (skipCallbacks) { - return; - } - options.onChange && options.onChange(); - }, - onComplete: function() { - if (skipCallbacks) { - return; - } - - _this.setCoords(); - options.onComplete && options.onComplete(); - } - }); - } -}); - - -(function(global) { - - 'use strict'; - - var fabric = global.fabric || (global.fabric = { }), - extend = fabric.util.object.extend, - coordProps = { x1: 1, x2: 1, y1: 1, y2: 1 }, - supportsLineDash = fabric.StaticCanvas.supports('setLineDash'); - - if (fabric.Line) { - fabric.warn('fabric.Line is already defined'); - return; - } - - /** - * Line class - * @class fabric.Line - * @extends fabric.Object - * @see {@link fabric.Line#initialize} for constructor definition - */ - fabric.Line = fabric.util.createClass(fabric.Object, /** @lends fabric.Line.prototype */ { - - /** - * Type of an object - * @type String - * @default - */ - type: 'line', - - /** - * x value or first line edge - * @type Number - * @default - */ - x1: 0, - - /** - * y value or first line edge - * @type Number - * @default - */ - y1: 0, - - /** - * x value or second line edge - * @type Number - * @default - */ - x2: 0, - - /** - * y value or second line edge - * @type Number - * @default - */ - y2: 0, - - /** - * Constructor - * @param {Array} [points] Array of points - * @param {Object} [options] Options object - * @return {fabric.Line} thisArg - */ - initialize: function(points, options) { - options = options || { }; - - if (!points) { - points = [0, 0, 0, 0]; - } - - this.callSuper('initialize', options); - - this.set('x1', points[0]); - this.set('y1', points[1]); - this.set('x2', points[2]); - this.set('y2', points[3]); - - this._setWidthHeight(options); - }, - - /** - * @private - * @param {Object} [options] Options - */ - _setWidthHeight: function(options) { - options || (options = { }); - - this.width = Math.abs(this.x2 - this.x1); - this.height = Math.abs(this.y2 - this.y1); - - this.left = 'left' in options - ? options.left - : this._getLeftToOriginX(); - - this.top = 'top' in options - ? options.top - : this._getTopToOriginY(); - }, - - /** - * @private - * @param {String} key - * @param {Any} value - */ - _set: function(key, value) { - this.callSuper('_set', key, value); - if (typeof coordProps[key] !== 'undefined') { - this._setWidthHeight(); - } - return this; - }, - - /** - * @private - * @return {Number} leftToOriginX Distance from left edge of canvas to originX of Line. - */ - _getLeftToOriginX: makeEdgeToOriginGetter( - { // property names - origin: 'originX', - axis1: 'x1', - axis2: 'x2', - dimension: 'width' - }, - { // possible values of origin - nearest: 'left', - center: 'center', - farthest: 'right' - } - ), - - /** - * @private - * @return {Number} topToOriginY Distance from top edge of canvas to originY of Line. - */ - _getTopToOriginY: makeEdgeToOriginGetter( - { // property names - origin: 'originY', - axis1: 'y1', - axis2: 'y2', - dimension: 'height' - }, - { // possible values of origin - nearest: 'top', - center: 'center', - farthest: 'bottom' - } - ), - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - _render: function(ctx, noTransform) { - ctx.beginPath(); - - if (noTransform) { - // Line coords are distances from left-top of canvas to origin of line. - // To render line in a path-group, we need to translate them to - // distances from center of path-group to center of line. - var cp = this.getCenterPoint(); - ctx.translate( - cp.x - this.strokeWidth / 2, - cp.y - this.strokeWidth / 2 - ); - } - - if (!this.strokeDashArray || this.strokeDashArray && supportsLineDash) { - // move from center (of virtual box) to its left/top corner - // we can't assume x1, y1 is top left and x2, y2 is bottom right - var p = this.calcLinePoints(); - ctx.moveTo(p.x1, p.y1); - ctx.lineTo(p.x2, p.y2); - } - - ctx.lineWidth = this.strokeWidth; - - // TODO: test this - // make sure setting "fill" changes color of a line - // (by copying fillStyle to strokeStyle, since line is stroked, not filled) - var origStrokeStyle = ctx.strokeStyle; - ctx.strokeStyle = this.stroke || ctx.fillStyle; - this.stroke && this._renderStroke(ctx); - ctx.strokeStyle = origStrokeStyle; - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - _renderDashedStroke: function(ctx) { - var p = this.calcLinePoints(); - - ctx.beginPath(); - fabric.util.drawDashedLine(ctx, p.x1, p.y1, p.x2, p.y2, this.strokeDashArray); - ctx.closePath(); - }, - - /** - * Returns object representation of an instance - * @methd toObject - * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output - * @return {Object} object representation of an instance - */ - toObject: function(propertiesToInclude) { - return extend(this.callSuper('toObject', propertiesToInclude), this.calcLinePoints()); - }, - - /** - * Recalculates line points given width and height - * @private - */ - calcLinePoints: function() { - var xMult = this.x1 <= this.x2 ? -1 : 1, - yMult = this.y1 <= this.y2 ? -1 : 1, - x1 = (xMult * this.width * 0.5), - y1 = (yMult * this.height * 0.5), - x2 = (xMult * this.width * -0.5), - y2 = (yMult * this.height * -0.5); - - return { - x1: x1, - x2: x2, - y1: y1, - y2: y2 - }; - }, - - /* _TO_SVG_START_ */ - /** - * Returns SVG representation of an instance - * @param {Function} [reviver] Method for further parsing of svg representation. - * @return {String} svg representation of an instance - */ - toSVG: function(reviver) { - var markup = this._createBaseSVGMarkup(), - p = { x1: this.x1, x2: this.x2, y1: this.y1, y2: this.y2 }; - - if (!(this.group && this.group.type === 'path-group')) { - p = this.calcLinePoints(); - } - markup.push( - '\n' - ); - - return reviver ? reviver(markup.join('')) : markup.join(''); - }, - /* _TO_SVG_END_ */ - - /** - * Returns complexity of an instance - * @return {Number} complexity - */ - complexity: function() { - return 1; - } - }); - - /* _FROM_SVG_START_ */ - /** - * List of attribute names to account for when parsing SVG element (used by {@link fabric.Line.fromElement}) - * @static - * @memberOf fabric.Line - * @see http://www.w3.org/TR/SVG/shapes.html#LineElement - */ - fabric.Line.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat('x1 y1 x2 y2'.split(' ')); - - /** - * Returns fabric.Line instance from an SVG element - * @static - * @memberOf fabric.Line - * @param {SVGElement} element Element to parse - * @param {Object} [options] Options object - * @return {fabric.Line} instance of fabric.Line - */ - fabric.Line.fromElement = function(element, options) { - var parsedAttributes = fabric.parseAttributes(element, fabric.Line.ATTRIBUTE_NAMES), - points = [ - parsedAttributes.x1 || 0, - parsedAttributes.y1 || 0, - parsedAttributes.x2 || 0, - parsedAttributes.y2 || 0 - ]; - return new fabric.Line(points, extend(parsedAttributes, options)); - }; - /* _FROM_SVG_END_ */ - - /** - * Returns fabric.Line instance from an object representation - * @static - * @memberOf fabric.Line - * @param {Object} object Object to create an instance from - * @return {fabric.Line} instance of fabric.Line - */ - fabric.Line.fromObject = function(object) { - var points = [object.x1, object.y1, object.x2, object.y2]; - return new fabric.Line(points, object); - }; - - /** - * Produces a function that calculates distance from canvas edge to Line origin. - */ - function makeEdgeToOriginGetter(propertyNames, originValues) { - var origin = propertyNames.origin, - axis1 = propertyNames.axis1, - axis2 = propertyNames.axis2, - dimension = propertyNames.dimension, - nearest = originValues.nearest, - center = originValues.center, - farthest = originValues.farthest; - - return function() { - switch (this.get(origin)) { - case nearest: - return Math.min(this.get(axis1), this.get(axis2)); - case center: - return Math.min(this.get(axis1), this.get(axis2)) + (0.5 * this.get(dimension)); - case farthest: - return Math.max(this.get(axis1), this.get(axis2)); - } - }; - - } - -})(typeof exports !== 'undefined' ? exports : this); - - -(function(global) { - - 'use strict'; - - var fabric = global.fabric || (global.fabric = { }), - pi = Math.PI, - extend = fabric.util.object.extend; - - if (fabric.Circle) { - fabric.warn('fabric.Circle is already defined.'); - return; - } - - /** - * Circle class - * @class fabric.Circle - * @extends fabric.Object - * @see {@link fabric.Circle#initialize} for constructor definition - */ - fabric.Circle = fabric.util.createClass(fabric.Object, /** @lends fabric.Circle.prototype */ { - - /** - * Type of an object - * @type String - * @default - */ - type: 'circle', - - /** - * Radius of this circle - * @type Number - * @default - */ - radius: 0, - - /** - * Start angle of the circle, moving clockwise - * @type Number - * @default 0 - */ - startAngle: 0, - - /** - * End angle of the circle - * @type Number - * @default 2Pi - */ - endAngle: pi * 2, - - /** - * Constructor - * @param {Object} [options] Options object - * @return {fabric.Circle} thisArg - */ - initialize: function(options) { - options = options || { }; - - this.callSuper('initialize', options); - this.set('radius', options.radius || 0); - this.startAngle = options.startAngle || this.startAngle; - this.endAngle = options.endAngle || this.endAngle; - }, - - /** - * @private - * @param {String} key - * @param {Any} value - * @return {fabric.Circle} thisArg - */ - _set: function(key, value) { - this.callSuper('_set', key, value); - - if (key === 'radius') { - this.setRadius(value); - } - - return this; - }, - - /** - * Returns object representation of an instance - * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output - * @return {Object} object representation of an instance - */ - toObject: function(propertiesToInclude) { - return extend(this.callSuper('toObject', propertiesToInclude), { - radius: this.get('radius'), - startAngle: this.startAngle, - endAngle: this.endAngle - }); - }, - - /* _TO_SVG_START_ */ - /** - * Returns svg representation of an instance - * @param {Function} [reviver] Method for further parsing of svg representation. - * @return {String} svg representation of an instance - */ - toSVG: function(reviver) { - var markup = this._createBaseSVGMarkup(), x = 0, y = 0, - angle = (this.endAngle - this.startAngle) % ( 2 * pi); - - if (angle === 0) { - if (this.group && this.group.type === 'path-group') { - x = this.left + this.radius; - y = this.top + this.radius; - } - markup.push( - '\n' - ); - } - else { - var startX = Math.cos(this.startAngle) * this.radius, - startY = Math.sin(this.startAngle) * this.radius, - endX = Math.cos(this.endAngle) * this.radius, - endY = Math.sin(this.endAngle) * this.radius, - largeFlag = angle > pi ? '1' : '0'; - - markup.push( - '\n' - ); - } - - return reviver ? reviver(markup.join('')) : markup.join(''); - }, - /* _TO_SVG_END_ */ - - /** - * @private - * @param {CanvasRenderingContext2D} ctx context to render on - * @param {Boolean} [noTransform] When true, context is not transformed - */ - _render: function(ctx, noTransform) { - ctx.beginPath(); - ctx.arc(noTransform ? this.left + this.radius : 0, - noTransform ? this.top + this.radius : 0, - this.radius, - this.startAngle, - this.endAngle, false); - this._renderFill(ctx); - this._renderStroke(ctx); - }, - - /** - * Returns horizontal radius of an object (according to how an object is scaled) - * @return {Number} - */ - getRadiusX: function() { - return this.get('radius') * this.get('scaleX'); - }, - - /** - * Returns vertical radius of an object (according to how an object is scaled) - * @return {Number} - */ - getRadiusY: function() { - return this.get('radius') * this.get('scaleY'); - }, - - /** - * Sets radius of an object (and updates width accordingly) - * @return {Number} - */ - setRadius: function(value) { - this.radius = value; - this.set('width', value * 2).set('height', value * 2); - }, - - /** - * Returns complexity of an instance - * @return {Number} complexity of this instance - */ - complexity: function() { - return 1; - } - }); - - /* _FROM_SVG_START_ */ - /** - * List of attribute names to account for when parsing SVG element (used by {@link fabric.Circle.fromElement}) - * @static - * @memberOf fabric.Circle - * @see: http://www.w3.org/TR/SVG/shapes.html#CircleElement - */ - fabric.Circle.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat('cx cy r'.split(' ')); - - /** - * Returns {@link fabric.Circle} instance from an SVG element - * @static - * @memberOf fabric.Circle - * @param {SVGElement} element Element to parse - * @param {Object} [options] Options object - * @throws {Error} If value of `r` attribute is missing or invalid - * @return {fabric.Circle} Instance of fabric.Circle - */ - fabric.Circle.fromElement = function(element, options) { - options || (options = { }); - - var parsedAttributes = fabric.parseAttributes(element, fabric.Circle.ATTRIBUTE_NAMES); - - if (!isValidRadius(parsedAttributes)) { - throw new Error('value of `r` attribute is required and can not be negative'); - } - - parsedAttributes.left = parsedAttributes.left || 0; - parsedAttributes.top = parsedAttributes.top || 0; - - var obj = new fabric.Circle(extend(parsedAttributes, options)); - - obj.left -= obj.radius; - obj.top -= obj.radius; - return obj; - }; - - /** - * @private - */ - function isValidRadius(attributes) { - return (('radius' in attributes) && (attributes.radius >= 0)); - } - /* _FROM_SVG_END_ */ - - /** - * Returns {@link fabric.Circle} instance from an object representation - * @static - * @memberOf fabric.Circle - * @param {Object} object Object to create an instance from - * @return {Object} Instance of fabric.Circle - */ - fabric.Circle.fromObject = function(object) { - return new fabric.Circle(object); - }; - -})(typeof exports !== 'undefined' ? exports : this); - - -(function(global) { - - 'use strict'; - - var fabric = global.fabric || (global.fabric = { }); - - if (fabric.Triangle) { - fabric.warn('fabric.Triangle is already defined'); - return; - } - - /** - * Triangle class - * @class fabric.Triangle - * @extends fabric.Object - * @return {fabric.Triangle} thisArg - * @see {@link fabric.Triangle#initialize} for constructor definition - */ - fabric.Triangle = fabric.util.createClass(fabric.Object, /** @lends fabric.Triangle.prototype */ { - - /** - * Type of an object - * @type String - * @default - */ - type: 'triangle', - - /** - * Constructor - * @param {Object} [options] Options object - * @return {Object} thisArg - */ - initialize: function(options) { - options = options || { }; - - this.callSuper('initialize', options); - - this.set('width', options.width || 100) - .set('height', options.height || 100); - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - _render: function(ctx) { - var widthBy2 = this.width / 2, - heightBy2 = this.height / 2; - - ctx.beginPath(); - ctx.moveTo(-widthBy2, heightBy2); - ctx.lineTo(0, -heightBy2); - ctx.lineTo(widthBy2, heightBy2); - ctx.closePath(); - - this._renderFill(ctx); - this._renderStroke(ctx); - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - _renderDashedStroke: function(ctx) { - var widthBy2 = this.width / 2, - heightBy2 = this.height / 2; - - ctx.beginPath(); - fabric.util.drawDashedLine(ctx, -widthBy2, heightBy2, 0, -heightBy2, this.strokeDashArray); - fabric.util.drawDashedLine(ctx, 0, -heightBy2, widthBy2, heightBy2, this.strokeDashArray); - fabric.util.drawDashedLine(ctx, widthBy2, heightBy2, -widthBy2, heightBy2, this.strokeDashArray); - ctx.closePath(); - }, - - /* _TO_SVG_START_ */ - /** - * Returns SVG representation of an instance - * @param {Function} [reviver] Method for further parsing of svg representation. - * @return {String} svg representation of an instance - */ - toSVG: function(reviver) { - var markup = this._createBaseSVGMarkup(), - widthBy2 = this.width / 2, - heightBy2 = this.height / 2, - points = [ - -widthBy2 + ' ' + heightBy2, - '0 ' + -heightBy2, - widthBy2 + ' ' + heightBy2 - ] - .join(','); - - markup.push( - '' - ); - - return reviver ? reviver(markup.join('')) : markup.join(''); - }, - /* _TO_SVG_END_ */ - - /** - * Returns complexity of an instance - * @return {Number} complexity of this instance - */ - complexity: function() { - return 1; - } - }); - - /** - * Returns fabric.Triangle instance from an object representation - * @static - * @memberOf fabric.Triangle - * @param {Object} object Object to create an instance from - * @return {Object} instance of Canvas.Triangle - */ - fabric.Triangle.fromObject = function(object) { - return new fabric.Triangle(object); - }; - -})(typeof exports !== 'undefined' ? exports : this); - - -(function(global) { - - 'use strict'; - - var fabric = global.fabric || (global.fabric = { }), - piBy2 = Math.PI * 2, - extend = fabric.util.object.extend; - - if (fabric.Ellipse) { - fabric.warn('fabric.Ellipse is already defined.'); - return; - } - - /** - * Ellipse class - * @class fabric.Ellipse - * @extends fabric.Object - * @return {fabric.Ellipse} thisArg - * @see {@link fabric.Ellipse#initialize} for constructor definition - */ - fabric.Ellipse = fabric.util.createClass(fabric.Object, /** @lends fabric.Ellipse.prototype */ { - - /** - * Type of an object - * @type String - * @default - */ - type: 'ellipse', - - /** - * Horizontal radius - * @type Number - * @default - */ - rx: 0, - - /** - * Vertical radius - * @type Number - * @default - */ - ry: 0, - - /** - * Constructor - * @param {Object} [options] Options object - * @return {fabric.Ellipse} thisArg - */ - initialize: function(options) { - options = options || { }; - - this.callSuper('initialize', options); - - this.set('rx', options.rx || 0); - this.set('ry', options.ry || 0); - }, - - /** - * @private - * @param {String} key - * @param {Any} value - * @return {fabric.Ellipse} thisArg - */ - _set: function(key, value) { - this.callSuper('_set', key, value); - switch (key) { - - case 'rx': - this.rx = value; - this.set('width', value * 2); - break; - - case 'ry': - this.ry = value; - this.set('height', value * 2); - break; - - } - return this; - }, - - /** - * Returns horizontal radius of an object (according to how an object is scaled) - * @return {Number} - */ - getRx: function() { - return this.get('rx') * this.get('scaleX'); - }, - - /** - * Returns Vertical radius of an object (according to how an object is scaled) - * @return {Number} - */ - getRy: function() { - return this.get('ry') * this.get('scaleY'); - }, - - /** - * Returns object representation of an instance - * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output - * @return {Object} object representation of an instance - */ - toObject: function(propertiesToInclude) { - return extend(this.callSuper('toObject', propertiesToInclude), { - rx: this.get('rx'), - ry: this.get('ry') - }); - }, - - /* _TO_SVG_START_ */ - /** - * Returns svg representation of an instance - * @param {Function} [reviver] Method for further parsing of svg representation. - * @return {String} svg representation of an instance - */ - toSVG: function(reviver) { - var markup = this._createBaseSVGMarkup(), x = 0, y = 0; - if (this.group && this.group.type === 'path-group') { - x = this.left + this.rx; - y = this.top + this.ry; - } - markup.push( - '\n' - ); - - return reviver ? reviver(markup.join('')) : markup.join(''); - }, - /* _TO_SVG_END_ */ - - /** - * @private - * @param {CanvasRenderingContext2D} ctx context to render on - * @param {Boolean} [noTransform] When true, context is not transformed - */ - _render: function(ctx, noTransform) { - ctx.beginPath(); - ctx.save(); - ctx.transform(1, 0, 0, this.ry/this.rx, 0, 0); - ctx.arc( - noTransform ? this.left + this.rx : 0, - noTransform ? (this.top + this.ry) * this.rx/this.ry : 0, - this.rx, - 0, - piBy2, - false); - ctx.restore(); - this._renderFill(ctx); - this._renderStroke(ctx); - }, - - /** - * Returns complexity of an instance - * @return {Number} complexity - */ - complexity: function() { - return 1; - } - }); - - /* _FROM_SVG_START_ */ - /** - * List of attribute names to account for when parsing SVG element (used by {@link fabric.Ellipse.fromElement}) - * @static - * @memberOf fabric.Ellipse - * @see http://www.w3.org/TR/SVG/shapes.html#EllipseElement - */ - fabric.Ellipse.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat('cx cy rx ry'.split(' ')); - - /** - * Returns {@link fabric.Ellipse} instance from an SVG element - * @static - * @memberOf fabric.Ellipse - * @param {SVGElement} element Element to parse - * @param {Object} [options] Options object - * @return {fabric.Ellipse} - */ - fabric.Ellipse.fromElement = function(element, options) { - options || (options = { }); - - var parsedAttributes = fabric.parseAttributes(element, fabric.Ellipse.ATTRIBUTE_NAMES); - - parsedAttributes.left = parsedAttributes.left || 0; - parsedAttributes.top = parsedAttributes.top || 0; - - var ellipse = new fabric.Ellipse(extend(parsedAttributes, options)); - - ellipse.top -= ellipse.ry; - ellipse.left -= ellipse.rx; - return ellipse; - }; - /* _FROM_SVG_END_ */ - - /** - * Returns {@link fabric.Ellipse} instance from an object representation - * @static - * @memberOf fabric.Ellipse - * @param {Object} object Object to create an instance from - * @return {fabric.Ellipse} - */ - fabric.Ellipse.fromObject = function(object) { - return new fabric.Ellipse(object); - }; - -})(typeof exports !== 'undefined' ? exports : this); - - -(function(global) { - - 'use strict'; - - var fabric = global.fabric || (global.fabric = { }), - extend = fabric.util.object.extend; - - if (fabric.Rect) { - console.warn('fabric.Rect is already defined'); - return; - } - - var stateProperties = fabric.Object.prototype.stateProperties.concat(); - stateProperties.push('rx', 'ry', 'x', 'y'); - - /** - * Rectangle class - * @class fabric.Rect - * @extends fabric.Object - * @return {fabric.Rect} thisArg - * @see {@link fabric.Rect#initialize} for constructor definition - */ - fabric.Rect = fabric.util.createClass(fabric.Object, /** @lends fabric.Rect.prototype */ { - - /** - * List of properties to consider when checking if state of an object is changed ({@link fabric.Object#hasStateChanged}) - * as well as for history (undo/redo) purposes - * @type Array - */ - stateProperties: stateProperties, - - /** - * Type of an object - * @type String - * @default - */ - type: 'rect', - - /** - * Horizontal border radius - * @type Number - * @default - */ - rx: 0, - - /** - * Vertical border radius - * @type Number - * @default - */ - ry: 0, - - /** - * Used to specify dash pattern for stroke on this object - * @type Array - */ - strokeDashArray: null, - - /** - * Constructor - * @param {Object} [options] Options object - * @return {Object} thisArg - */ - initialize: function(options) { - options = options || { }; - - this.callSuper('initialize', options); - this._initRxRy(); - - }, - - /** - * Initializes rx/ry attributes - * @private - */ - _initRxRy: function() { - if (this.rx && !this.ry) { - this.ry = this.rx; - } - else if (this.ry && !this.rx) { - this.rx = this.ry; - } - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - _render: function(ctx, noTransform) { - - // optimize 1x1 case (used in spray brush) - if (this.width === 1 && this.height === 1) { - ctx.fillRect(0, 0, 1, 1); - return; - } - - var rx = this.rx ? Math.min(this.rx, this.width / 2) : 0, - ry = this.ry ? Math.min(this.ry, this.height / 2) : 0, - w = this.width, - h = this.height, - x = noTransform ? this.left : -this.width / 2, - y = noTransform ? this.top : -this.height / 2, - isRounded = rx !== 0 || ry !== 0, - k = 1 - 0.5522847498 /* "magic number" for bezier approximations of arcs (http://itc.ktu.lt/itc354/Riskus354.pdf) */; - - ctx.beginPath(); - - ctx.moveTo(x + rx, y); - - ctx.lineTo(x + w - rx, y); - isRounded && ctx.bezierCurveTo(x + w - k * rx, y, x + w, y + k * ry, x + w, y + ry); - - ctx.lineTo(x + w, y + h - ry); - isRounded && ctx.bezierCurveTo(x + w, y + h - k * ry, x + w - k * rx, y + h, x + w - rx, y + h); - - ctx.lineTo(x + rx, y + h); - isRounded && ctx.bezierCurveTo(x + k * rx, y + h, x, y + h - k * ry, x, y + h - ry); - - ctx.lineTo(x, y + ry); - isRounded && ctx.bezierCurveTo(x, y + k * ry, x + k * rx, y, x + rx, y); - - ctx.closePath(); - - this._renderFill(ctx); - this._renderStroke(ctx); - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - _renderDashedStroke: function(ctx) { - var x = -this.width / 2, - y = -this.height / 2, - w = this.width, - h = this.height; - - ctx.beginPath(); - fabric.util.drawDashedLine(ctx, x, y, x + w, y, this.strokeDashArray); - fabric.util.drawDashedLine(ctx, x + w, y, x + w, y + h, this.strokeDashArray); - fabric.util.drawDashedLine(ctx, x + w, y + h, x, y + h, this.strokeDashArray); - fabric.util.drawDashedLine(ctx, x, y + h, x, y, this.strokeDashArray); - ctx.closePath(); - }, - - /** - * Returns object representation of an instance - * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output - * @return {Object} object representation of an instance - */ - toObject: function(propertiesToInclude) { - var object = extend(this.callSuper('toObject', propertiesToInclude), { - rx: this.get('rx') || 0, - ry: this.get('ry') || 0 - }); - if (!this.includeDefaultValues) { - this._removeDefaultValues(object); - } - return object; - }, - - /* _TO_SVG_START_ */ - /** - * Returns svg representation of an instance - * @param {Function} [reviver] Method for further parsing of svg representation. - * @return {String} svg representation of an instance - */ - toSVG: function(reviver) { - var markup = this._createBaseSVGMarkup(), x = this.left, y = this.top; - if (!(this.group && this.group.type === 'path-group')) { - x = -this.width / 2; - y = -this.height / 2; - } - markup.push( - '\n'); - - return reviver ? reviver(markup.join('')) : markup.join(''); - }, - /* _TO_SVG_END_ */ - - /** - * Returns complexity of an instance - * @return {Number} complexity - */ - complexity: function() { - return 1; - } - }); - - /* _FROM_SVG_START_ */ - /** - * List of attribute names to account for when parsing SVG element (used by `fabric.Rect.fromElement`) - * @static - * @memberOf fabric.Rect - * @see: http://www.w3.org/TR/SVG/shapes.html#RectElement - */ - fabric.Rect.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat('x y rx ry width height'.split(' ')); - - /** - * Returns {@link fabric.Rect} instance from an SVG element - * @static - * @memberOf fabric.Rect - * @param {SVGElement} element Element to parse - * @param {Object} [options] Options object - * @return {fabric.Rect} Instance of fabric.Rect - */ - fabric.Rect.fromElement = function(element, options) { - if (!element) { - return null; - } - options = options || { }; - - var parsedAttributes = fabric.parseAttributes(element, fabric.Rect.ATTRIBUTE_NAMES); - - parsedAttributes.left = parsedAttributes.left || 0; - parsedAttributes.top = parsedAttributes.top || 0; - var rect = new fabric.Rect(extend((options ? fabric.util.object.clone(options) : { }), parsedAttributes)); - rect.visible = rect.width > 0 && rect.height > 0; - return rect; - }; - /* _FROM_SVG_END_ */ - - /** - * Returns {@link fabric.Rect} instance from an object representation - * @static - * @memberOf fabric.Rect - * @param {Object} object Object to create an instance from - * @return {Object} instance of fabric.Rect - */ - fabric.Rect.fromObject = function(object) { - return new fabric.Rect(object); - }; - -})(typeof exports !== 'undefined' ? exports : this); - - -(function(global) { - - 'use strict'; - - var fabric = global.fabric || (global.fabric = { }); - - if (fabric.Polyline) { - fabric.warn('fabric.Polyline is already defined'); - return; - } - - /** - * Polyline class - * @class fabric.Polyline - * @extends fabric.Object - * @see {@link fabric.Polyline#initialize} for constructor definition - */ - fabric.Polyline = fabric.util.createClass(fabric.Object, /** @lends fabric.Polyline.prototype */ { - - /** - * Type of an object - * @type String - * @default - */ - type: 'polyline', - - /** - * Points array - * @type Array - * @default - */ - points: null, - - /** - * Minimum X from points values, necessary to offset points - * @type Number - * @default - */ - minX: 0, - - /** - * Minimum Y from points values, necessary to offset points - * @type Number - * @default - */ - minY: 0, - - /** - * Constructor - * @param {Array} points Array of points (where each point is an object with x and y) - * @param {Object} [options] Options object - * @param {Boolean} [skipOffset] Whether points offsetting should be skipped - * @return {fabric.Polyline} thisArg - * @example - * var poly = new fabric.Polyline([ - * { x: 10, y: 10 }, - * { x: 50, y: 30 }, - * { x: 40, y: 70 }, - * { x: 60, y: 50 }, - * { x: 100, y: 150 }, - * { x: 40, y: 100 } - * ], { - * stroke: 'red', - * left: 100, - * top: 100 - * }); - */ - initialize: function(points, options) { - return fabric.Polygon.prototype.initialize.call(this, points, options); - }, - - /** - * @private - */ - _calcDimensions: function() { - return fabric.Polygon.prototype._calcDimensions.call(this); - }, - - /** - * @private - */ - _applyPointOffset: function() { - return fabric.Polygon.prototype._applyPointOffset.call(this); - }, - - /** - * Returns object representation of an instance - * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output - * @return {Object} Object representation of an instance - */ - toObject: function(propertiesToInclude) { - return fabric.Polygon.prototype.toObject.call(this, propertiesToInclude); - }, - - /* _TO_SVG_START_ */ - /** - * Returns SVG representation of an instance - * @param {Function} [reviver] Method for further parsing of svg representation. - * @return {String} svg representation of an instance - */ - toSVG: function(reviver) { - return fabric.Polygon.prototype.toSVG.call(this, reviver); - }, - /* _TO_SVG_END_ */ - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - _render: function(ctx) { - if (!fabric.Polygon.prototype.commonRender.call(this, ctx)) { - return; - } - this._renderFill(ctx); - this._renderStroke(ctx); - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - _renderDashedStroke: function(ctx) { - var p1, p2; - - ctx.beginPath(); - for (var i = 0, len = this.points.length; i < len; i++) { - p1 = this.points[i]; - p2 = this.points[i + 1] || p1; - fabric.util.drawDashedLine(ctx, p1.x, p1.y, p2.x, p2.y, this.strokeDashArray); - } - }, - - /** - * Returns complexity of an instance - * @return {Number} complexity of this instance - */ - complexity: function() { - return this.get('points').length; - } - }); - - /* _FROM_SVG_START_ */ - /** - * List of attribute names to account for when parsing SVG element (used by {@link fabric.Polyline.fromElement}) - * @static - * @memberOf fabric.Polyline - * @see: http://www.w3.org/TR/SVG/shapes.html#PolylineElement - */ - fabric.Polyline.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat(); - - /** - * Returns fabric.Polyline instance from an SVG element - * @static - * @memberOf fabric.Polyline - * @param {SVGElement} element Element to parse - * @param {Object} [options] Options object - * @return {fabric.Polyline} Instance of fabric.Polyline - */ - fabric.Polyline.fromElement = function(element, options) { - if (!element) { - return null; - } - options || (options = { }); - - var points = fabric.parsePointsAttribute(element.getAttribute('points')), - parsedAttributes = fabric.parseAttributes(element, fabric.Polyline.ATTRIBUTE_NAMES); - - return new fabric.Polyline(points, fabric.util.object.extend(parsedAttributes, options)); - }; - /* _FROM_SVG_END_ */ - - /** - * Returns fabric.Polyline instance from an object representation - * @static - * @memberOf fabric.Polyline - * @param {Object} object Object to create an instance from - * @return {fabric.Polyline} Instance of fabric.Polyline - */ - fabric.Polyline.fromObject = function(object) { - var points = object.points; - return new fabric.Polyline(points, object, true); - }; - -})(typeof exports !== 'undefined' ? exports : this); - - -(function(global) { - - 'use strict'; - - var fabric = global.fabric || (global.fabric = { }), - extend = fabric.util.object.extend, - min = fabric.util.array.min, - max = fabric.util.array.max, - toFixed = fabric.util.toFixed; - - if (fabric.Polygon) { - fabric.warn('fabric.Polygon is already defined'); - return; - } - - /** - * Polygon class - * @class fabric.Polygon - * @extends fabric.Object - * @see {@link fabric.Polygon#initialize} for constructor definition - */ - fabric.Polygon = fabric.util.createClass(fabric.Object, /** @lends fabric.Polygon.prototype */ { - - /** - * Type of an object - * @type String - * @default - */ - type: 'polygon', - - /** - * Points array - * @type Array - * @default - */ - points: null, - - /** - * Minimum X from points values, necessary to offset points - * @type Number - * @default - */ - minX: 0, - - /** - * Minimum Y from points values, necessary to offset points - * @type Number - * @default - */ - minY: 0, - - /** - * Constructor - * @param {Array} points Array of points - * @param {Object} [options] Options object - * @return {fabric.Polygon} thisArg - */ - initialize: function(points, options) { - options = options || { }; - this.points = points || [ ]; - this.callSuper('initialize', options); - this._calcDimensions(); - if (!('top' in options)) { - this.top = this.minY; - } - if (!('left' in options)) { - this.left = this.minX; - } - }, - - /** - * @private - */ - _calcDimensions: function() { - - var points = this.points, - minX = min(points, 'x'), - minY = min(points, 'y'), - maxX = max(points, 'x'), - maxY = max(points, 'y'); - - this.width = (maxX - minX) || 0; - this.height = (maxY - minY) || 0; - - this.minX = minX || 0, - this.minY = minY || 0; - }, - - /** - * @private - */ - _applyPointOffset: function() { - // change points to offset polygon into a bounding box - // executed one time - this.points.forEach(function(p) { - p.x -= (this.minX + this.width / 2); - p.y -= (this.minY + this.height / 2); - }, this); - }, - - /** - * Returns object representation of an instance - * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output - * @return {Object} Object representation of an instance - */ - toObject: function(propertiesToInclude) { - return extend(this.callSuper('toObject', propertiesToInclude), { - points: this.points.concat() - }); - }, - - /* _TO_SVG_START_ */ - /** - * Returns svg representation of an instance - * @param {Function} [reviver] Method for further parsing of svg representation. - * @return {String} svg representation of an instance - */ - toSVG: function(reviver) { - var points = [], - markup = this._createBaseSVGMarkup(); - - for (var i = 0, len = this.points.length; i < len; i++) { - points.push(toFixed(this.points[i].x, 2), ',', toFixed(this.points[i].y, 2), ' '); - } - - markup.push( - '<', this.type, ' ', - 'points="', points.join(''), - '" style="', this.getSvgStyles(), - '" transform="', this.getSvgTransform(), - ' ', this.getSvgTransformMatrix(), - '"/>\n' - ); - - return reviver ? reviver(markup.join('')) : markup.join(''); - }, - /* _TO_SVG_END_ */ - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - _render: function(ctx) { - if (!this.commonRender(ctx)) { - return; - } - this._renderFill(ctx); - if (this.stroke || this.strokeDashArray) { - ctx.closePath(); - this._renderStroke(ctx); - } - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - commonRender: function(ctx) { - var point, len = this.points.length; - - if (!len || isNaN(this.points[len - 1].y)) { - // do not draw if no points or odd points - // NaN comes from parseFloat of a empty string in parser - return false; - } - - ctx.beginPath(); - - if (this._applyPointOffset) { - if (!(this.group && this.group.type === 'path-group')) { - this._applyPointOffset(); - } - this._applyPointOffset = null; - } - - ctx.moveTo(this.points[0].x, this.points[0].y); - for (var i = 0; i < len; i++) { - point = this.points[i]; - ctx.lineTo(point.x, point.y); - } - return true; - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - _renderDashedStroke: function(ctx) { - fabric.Polyline.prototype._renderDashedStroke.call(this, ctx); - ctx.closePath(); - }, - - /** - * Returns complexity of an instance - * @return {Number} complexity of this instance - */ - complexity: function() { - return this.points.length; - } - }); - - /* _FROM_SVG_START_ */ - /** - * List of attribute names to account for when parsing SVG element (used by `fabric.Polygon.fromElement`) - * @static - * @memberOf fabric.Polygon - * @see: http://www.w3.org/TR/SVG/shapes.html#PolygonElement - */ - fabric.Polygon.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat(); - - /** - * Returns {@link fabric.Polygon} instance from an SVG element - * @static - * @memberOf fabric.Polygon - * @param {SVGElement} element Element to parse - * @param {Object} [options] Options object - * @return {fabric.Polygon} Instance of fabric.Polygon - */ - fabric.Polygon.fromElement = function(element, options) { - if (!element) { - return null; - } - - options || (options = { }); - - var points = fabric.parsePointsAttribute(element.getAttribute('points')), - parsedAttributes = fabric.parseAttributes(element, fabric.Polygon.ATTRIBUTE_NAMES); - - return new fabric.Polygon(points, extend(parsedAttributes, options)); - }; - /* _FROM_SVG_END_ */ - - /** - * Returns fabric.Polygon instance from an object representation - * @static - * @memberOf fabric.Polygon - * @param {Object} object Object to create an instance from - * @return {fabric.Polygon} Instance of fabric.Polygon - */ - fabric.Polygon.fromObject = function(object) { - return new fabric.Polygon(object.points, object, true); - }; - -})(typeof exports !== 'undefined' ? exports : this); - - -(function(global) { - - 'use strict'; - - var fabric = global.fabric || (global.fabric = { }), - min = fabric.util.array.min, - max = fabric.util.array.max, - extend = fabric.util.object.extend, - _toString = Object.prototype.toString, - drawArc = fabric.util.drawArc, - commandLengths = { - m: 2, - l: 2, - h: 1, - v: 1, - c: 6, - s: 4, - q: 4, - t: 2, - a: 7 - }, - repeatedCommands = { - m: 'l', - M: 'L' - }; - - if (fabric.Path) { - fabric.warn('fabric.Path is already defined'); - return; - } - - /** - * Path class - * @class fabric.Path - * @extends fabric.Object - * @tutorial {@link http://fabricjs.com/fabric-intro-part-1/#path_and_pathgroup} - * @see {@link fabric.Path#initialize} for constructor definition - */ - fabric.Path = fabric.util.createClass(fabric.Object, /** @lends fabric.Path.prototype */ { - - /** - * Type of an object - * @type String - * @default - */ - type: 'path', - - /** - * Array of path points - * @type Array - * @default - */ - path: null, - - /** - * Minimum X from points values, necessary to offset points - * @type Number - * @default - */ - minX: 0, - - /** - * Minimum Y from points values, necessary to offset points - * @type Number - * @default - */ - minY: 0, - - /** - * Constructor - * @param {Array|String} path Path data (sequence of coordinates and corresponding "command" tokens) - * @param {Object} [options] Options object - * @return {fabric.Path} thisArg - */ - initialize: function(path, options) { - options = options || { }; - - this.setOptions(options); - - if (!path) { - throw new Error('`path` argument is required'); - } - - var fromArray = _toString.call(path) === '[object Array]'; - - this.path = fromArray - ? path - // one of commands (m,M,l,L,q,Q,c,C,etc.) followed by non-command characters (i.e. command values) - : path.match && path.match(/[mzlhvcsqta][^mzlhvcsqta]*/gi); - - if (!this.path) { - return; - } - - if (!fromArray) { - this.path = this._parsePath(); - } - - this._setPositionDimensions(); - - if (options.sourcePath) { - this.setSourcePath(options.sourcePath); - } - }, - - /** - * @private - */ - _setPositionDimensions: function() { - var calcDim = this._parseDimensions(); - - this.minX = calcDim.left; - this.minY = calcDim.top; - this.width = calcDim.width; - this.height = calcDim.height; - - calcDim.left += this.originX === 'center' - ? this.width / 2 - : this.originX === 'right' - ? this.width - : 0; - - calcDim.top += this.originY === 'center' - ? this.height / 2 - : this.originY === 'bottom' - ? this.height - : 0; - - this.top = this.top || calcDim.top; - this.left = this.left || calcDim.left; - - this.pathOffset = this.pathOffset || { - x: this.minX + this.width / 2, - y: this.minY + this.height / 2 - }; - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx context to render path on - */ - _render: function(ctx) { - var current, // current instruction - previous = null, - subpathStartX = 0, - subpathStartY = 0, - x = 0, // current x - y = 0, // current y - controlX = 0, // current control point x - controlY = 0, // current control point y - tempX, - tempY, - l = -this.pathOffset.x, - t = -this.pathOffset.y; - - if (this.group && this.group.type === 'path-group') { - l = 0; - t = 0; - } - - ctx.beginPath(); - - for (var i = 0, len = this.path.length; i < len; ++i) { - - current = this.path[i]; - - switch (current[0]) { // first letter - - case 'l': // lineto, relative - x += current[1]; - y += current[2]; - ctx.lineTo(x + l, y + t); - break; - - case 'L': // lineto, absolute - x = current[1]; - y = current[2]; - ctx.lineTo(x + l, y + t); - break; - - case 'h': // horizontal lineto, relative - x += current[1]; - ctx.lineTo(x + l, y + t); - break; - - case 'H': // horizontal lineto, absolute - x = current[1]; - ctx.lineTo(x + l, y + t); - break; - - case 'v': // vertical lineto, relative - y += current[1]; - ctx.lineTo(x + l, y + t); - break; - - case 'V': // verical lineto, absolute - y = current[1]; - ctx.lineTo(x + l, y + t); - break; - - case 'm': // moveTo, relative - x += current[1]; - y += current[2]; - subpathStartX = x; - subpathStartY = y; - ctx.moveTo(x + l, y + t); - break; - - case 'M': // moveTo, absolute - x = current[1]; - y = current[2]; - subpathStartX = x; - subpathStartY = y; - ctx.moveTo(x + l, y + t); - break; - - case 'c': // bezierCurveTo, relative - tempX = x + current[5]; - tempY = y + current[6]; - controlX = x + current[3]; - controlY = y + current[4]; - ctx.bezierCurveTo( - x + current[1] + l, // x1 - y + current[2] + t, // y1 - controlX + l, // x2 - controlY + t, // y2 - tempX + l, - tempY + t - ); - x = tempX; - y = tempY; - break; - - case 'C': // bezierCurveTo, absolute - x = current[5]; - y = current[6]; - controlX = current[3]; - controlY = current[4]; - ctx.bezierCurveTo( - current[1] + l, - current[2] + t, - controlX + l, - controlY + t, - x + l, - y + t - ); - break; - - case 's': // shorthand cubic bezierCurveTo, relative - - // transform to absolute x,y - tempX = x + current[3]; - tempY = y + current[4]; - - if (previous[0].match(/[CcSs]/) === null) { - // If there is no previous command or if the previous command was not a C, c, S, or s, - // the control point is coincident with the current point - controlX = x; - controlY = y; - } - else { - // calculate reflection of previous control points - controlX = 2 * x - controlX; - controlY = 2 * y - controlY; - } - - ctx.bezierCurveTo( - controlX + l, - controlY + t, - x + current[1] + l, - y + current[2] + t, - tempX + l, - tempY + t - ); - // set control point to 2nd one of this command - // "... the first control point is assumed to be - // the reflection of the second control point on - // the previous command relative to the current point." - controlX = x + current[1]; - controlY = y + current[2]; - - x = tempX; - y = tempY; - break; - - case 'S': // shorthand cubic bezierCurveTo, absolute - tempX = current[3]; - tempY = current[4]; - if (previous[0].match(/[CcSs]/) === null) { - // If there is no previous command or if the previous command was not a C, c, S, or s, - // the control point is coincident with the current point - controlX = x; - controlY = y; - } - else { - // calculate reflection of previous control points - controlX = 2 * x - controlX; - controlY = 2 * y - controlY; - } - ctx.bezierCurveTo( - controlX + l, - controlY + t, - current[1] + l, - current[2] + t, - tempX + l, - tempY + t - ); - x = tempX; - y = tempY; - - // set control point to 2nd one of this command - // "... the first control point is assumed to be - // the reflection of the second control point on - // the previous command relative to the current point." - controlX = current[1]; - controlY = current[2]; - - break; - - case 'q': // quadraticCurveTo, relative - // transform to absolute x,y - tempX = x + current[3]; - tempY = y + current[4]; - - controlX = x + current[1]; - controlY = y + current[2]; - - ctx.quadraticCurveTo( - controlX + l, - controlY + t, - tempX + l, - tempY + t - ); - x = tempX; - y = tempY; - break; - - case 'Q': // quadraticCurveTo, absolute - tempX = current[3]; - tempY = current[4]; - - ctx.quadraticCurveTo( - current[1] + l, - current[2] + t, - tempX + l, - tempY + t - ); - x = tempX; - y = tempY; - controlX = current[1]; - controlY = current[2]; - break; - - case 't': // shorthand quadraticCurveTo, relative - - // transform to absolute x,y - tempX = x + current[1]; - tempY = y + current[2]; - - if (previous[0].match(/[QqTt]/) === null) { - // If there is no previous command or if the previous command was not a Q, q, T or t, - // assume the control point is coincident with the current point - controlX = x; - controlY = y; - } - else { - // calculate reflection of previous control point - controlX = 2 * x - controlX; - controlY = 2 * y - controlY; - } - - ctx.quadraticCurveTo( - controlX + l, - controlY + t, - tempX + l, - tempY + t - ); - x = tempX; - y = tempY; - - break; - - case 'T': - tempX = current[1]; - tempY = current[2]; - - if (previous[0].match(/[QqTt]/) === null) { - // If there is no previous command or if the previous command was not a Q, q, T or t, - // assume the control point is coincident with the current point - controlX = x; - controlY = y; - } - else { - // calculate reflection of previous control point - controlX = 2 * x - controlX; - controlY = 2 * y - controlY; - } - ctx.quadraticCurveTo( - controlX + l, - controlY + t, - tempX + l, - tempY + t - ); - x = tempX; - y = tempY; - break; - - case 'a': - // TODO: optimize this - drawArc(ctx, x + l, y + t, [ - current[1], - current[2], - current[3], - current[4], - current[5], - current[6] + x + l, - current[7] + y + t - ]); - x += current[6]; - y += current[7]; - break; - - case 'A': - // TODO: optimize this - drawArc(ctx, x + l, y + t, [ - current[1], - current[2], - current[3], - current[4], - current[5], - current[6] + l, - current[7] + t - ]); - x = current[6]; - y = current[7]; - break; - - case 'z': - case 'Z': - x = subpathStartX; - y = subpathStartY; - ctx.closePath(); - break; - } - previous = current; - } - this._renderFill(ctx); - this._renderStroke(ctx); - }, - - /** - * Returns string representation of an instance - * @return {String} string representation of an instance - */ - toString: function() { - return '#'; - }, - - /** - * Returns object representation of an instance - * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output - * @return {Object} object representation of an instance - */ - toObject: function(propertiesToInclude) { - var o = extend(this.callSuper('toObject', propertiesToInclude), { - path: this.path.map(function(item) { return item.slice() }), - pathOffset: this.pathOffset - }); - if (this.sourcePath) { - o.sourcePath = this.sourcePath; - } - if (this.transformMatrix) { - o.transformMatrix = this.transformMatrix; - } - return o; - }, - - /** - * Returns dataless object representation of an instance - * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output - * @return {Object} object representation of an instance - */ - toDatalessObject: function(propertiesToInclude) { - var o = this.toObject(propertiesToInclude); - if (this.sourcePath) { - o.path = this.sourcePath; - } - delete o.sourcePath; - return o; - }, - - /* _TO_SVG_START_ */ - /** - * Returns svg representation of an instance - * @param {Function} [reviver] Method for further parsing of svg representation. - * @return {String} svg representation of an instance - */ - toSVG: function(reviver) { - var chunks = [], - markup = this._createBaseSVGMarkup(), addTransform = ''; - - for (var i = 0, len = this.path.length; i < len; i++) { - chunks.push(this.path[i].join(' ')); - } - var path = chunks.join(' '); - if (!(this.group && this.group.type === 'path-group')) { - addTransform = ' translate(' + (-this.pathOffset.x) + ', ' + (-this.pathOffset.y) + ') '; - } - markup.push( - //jscs:disable validateIndentation - '\n' - //jscs:enable validateIndentation - ); - - return reviver ? reviver(markup.join('')) : markup.join(''); - }, - /* _TO_SVG_END_ */ - - /** - * Returns number representation of an instance complexity - * @return {Number} complexity of this instance - */ - complexity: function() { - return this.path.length; - }, - - /** - * @private - */ - _parsePath: function() { - var result = [ ], - coords = [ ], - currentPath, - parsed, - re = /([-+]?((\d+\.\d+)|((\d+)|(\.\d+)))(?:e[-+]?\d+)?)/ig, - match, - coordsStr; - - for (var i = 0, coordsParsed, len = this.path.length; i < len; i++) { - currentPath = this.path[i]; - - coordsStr = currentPath.slice(1).trim(); - coords.length = 0; - - while ((match = re.exec(coordsStr))) { - coords.push(match[0]); - } - - coordsParsed = [ currentPath.charAt(0) ]; - - for (var j = 0, jlen = coords.length; j < jlen; j++) { - parsed = parseFloat(coords[j]); - if (!isNaN(parsed)) { - coordsParsed.push(parsed); - } - } - - var command = coordsParsed[0], - commandLength = commandLengths[command.toLowerCase()], - repeatedCommand = repeatedCommands[command] || command; - - if (coordsParsed.length - 1 > commandLength) { - for (var k = 1, klen = coordsParsed.length; k < klen; k += commandLength) { - result.push([ command ].concat(coordsParsed.slice(k, k + commandLength))); - command = repeatedCommand; - } - } - else { - result.push(coordsParsed); - } - } - - return result; - }, - - /** - * @private - */ - _parseDimensions: function() { - - var aX = [], - aY = [], - current, // current instruction - previous = null, - subpathStartX = 0, - subpathStartY = 0, - x = 0, // current x - y = 0, // current y - controlX = 0, // current control point x - controlY = 0, // current control point y - tempX, - tempY, - bounds; - - for (var i = 0, len = this.path.length; i < len; ++i) { - - current = this.path[i]; - - switch (current[0]) { // first letter - - case 'l': // lineto, relative - x += current[1]; - y += current[2]; - bounds = [ ]; - break; - - case 'L': // lineto, absolute - x = current[1]; - y = current[2]; - bounds = [ ]; - break; - - case 'h': // horizontal lineto, relative - x += current[1]; - bounds = [ ]; - break; - - case 'H': // horizontal lineto, absolute - x = current[1]; - bounds = [ ]; - break; - - case 'v': // vertical lineto, relative - y += current[1]; - bounds = [ ]; - break; - - case 'V': // verical lineto, absolute - y = current[1]; - bounds = [ ]; - break; - - case 'm': // moveTo, relative - x += current[1]; - y += current[2]; - subpathStartX = x; - subpathStartY = y; - bounds = [ ]; - break; - - case 'M': // moveTo, absolute - x = current[1]; - y = current[2]; - subpathStartX = x; - subpathStartY = y; - bounds = [ ]; - break; - - case 'c': // bezierCurveTo, relative - tempX = x + current[5]; - tempY = y + current[6]; - controlX = x + current[3]; - controlY = y + current[4]; - bounds = fabric.util.getBoundsOfCurve(x, y, - x + current[1], // x1 - y + current[2], // y1 - controlX, // x2 - controlY, // y2 - tempX, - tempY - ); - x = tempX; - y = tempY; - break; - - case 'C': // bezierCurveTo, absolute - x = current[5]; - y = current[6]; - controlX = current[3]; - controlY = current[4]; - bounds = fabric.util.getBoundsOfCurve(x, y, - current[1], - current[2], - controlX, - controlY, - x, - y - ); - break; - - case 's': // shorthand cubic bezierCurveTo, relative - - // transform to absolute x,y - tempX = x + current[3]; - tempY = y + current[4]; - - if (previous[0].match(/[CcSs]/) === null) { - // If there is no previous command or if the previous command was not a C, c, S, or s, - // the control point is coincident with the current point - controlX = x; - controlY = y; - } - else { - // calculate reflection of previous control points - controlX = 2 * x - controlX; - controlY = 2 * y - controlY; - } - - bounds = fabric.util.getBoundsOfCurve(x, y, - controlX, - controlY, - x + current[1], - y + current[2], - tempX, - tempY - ); - // set control point to 2nd one of this command - // "... the first control point is assumed to be - // the reflection of the second control point on - // the previous command relative to the current point." - controlX = x + current[1]; - controlY = y + current[2]; - x = tempX; - y = tempY; - break; - - case 'S': // shorthand cubic bezierCurveTo, absolute - tempX = current[3]; - tempY = current[4]; - if (previous[0].match(/[CcSs]/) === null) { - // If there is no previous command or if the previous command was not a C, c, S, or s, - // the control point is coincident with the current point - controlX = x; - controlY = y; - } - else { - // calculate reflection of previous control points - controlX = 2 * x - controlX; - controlY = 2 * y - controlY; - } - bounds = fabric.util.getBoundsOfCurve(x, y, - controlX, - controlY, - current[1], - current[2], - tempX, - tempY - ); - x = tempX; - y = tempY; - // set control point to 2nd one of this command - // "... the first control point is assumed to be - // the reflection of the second control point on - // the previous command relative to the current point." - controlX = current[1]; - controlY = current[2]; - break; - - case 'q': // quadraticCurveTo, relative - // transform to absolute x,y - tempX = x + current[3]; - tempY = y + current[4]; - controlX = x + current[1]; - controlY = y + current[2]; - bounds = fabric.util.getBoundsOfCurve(x, y, - controlX, - controlY, - controlX, - controlY, - tempX, - tempY - ); - x = tempX; - y = tempY; - break; - - case 'Q': // quadraticCurveTo, absolute - controlX = current[1]; - controlY = current[2]; - bounds = fabric.util.getBoundsOfCurve(x, y, - controlX, - controlY, - controlX, - controlY, - current[3], - current[4] - ); - x = current[3]; - y = current[4]; - break; - - case 't': // shorthand quadraticCurveTo, relative - // transform to absolute x,y - tempX = x + current[1]; - tempY = y + current[2]; - if (previous[0].match(/[QqTt]/) === null) { - // If there is no previous command or if the previous command was not a Q, q, T or t, - // assume the control point is coincident with the current point - controlX = x; - controlY = y; - } - else { - // calculate reflection of previous control point - controlX = 2 * x - controlX; - controlY = 2 * y - controlY; - } - - bounds = fabric.util.getBoundsOfCurve(x, y, - controlX, - controlY, - controlX, - controlY, - tempX, - tempY - ); - x = tempX; - y = tempY; - - break; - - case 'T': - tempX = current[1]; - tempY = current[2]; - - if (previous[0].match(/[QqTt]/) === null) { - // If there is no previous command or if the previous command was not a Q, q, T or t, - // assume the control point is coincident with the current point - controlX = x; - controlY = y; - } - else { - // calculate reflection of previous control point - controlX = 2 * x - controlX; - controlY = 2 * y - controlY; - } - bounds = fabric.util.getBoundsOfCurve(x, y, - controlX, - controlY, - controlX, - controlY, - tempX, - tempY - ); - x = tempX; - y = tempY; - break; - - case 'a': - // TODO: optimize this - bounds = fabric.util.getBoundsOfArc(x, y, - current[1], - current[2], - current[3], - current[4], - current[5], - current[6] + x, - current[7] + y - ); - x += current[6]; - y += current[7]; - break; - - case 'A': - // TODO: optimize this - bounds = fabric.util.getBoundsOfArc(x, y, - current[1], - current[2], - current[3], - current[4], - current[5], - current[6], - current[7] - ); - x = current[6]; - y = current[7]; - break; - - case 'z': - case 'Z': - x = subpathStartX; - y = subpathStartY; - break; - } - previous = current; - bounds.forEach(function (point) { - aX.push(point.x); - aY.push(point.y); - }); - aX.push(x); - aY.push(y); - } - - var minX = min(aX), - minY = min(aY), - maxX = max(aX), - maxY = max(aY), - deltaX = maxX - minX, - deltaY = maxY - minY, - - o = { - left: minX, - top: minY, - width: deltaX, - height: deltaY - }; - - return o; - } - }); - - /** - * Creates an instance of fabric.Path from an object - * @static - * @memberOf fabric.Path - * @param {Object} object - * @param {Function} callback Callback to invoke when an fabric.Path instance is created - */ - fabric.Path.fromObject = function(object, callback) { - if (typeof object.path === 'string') { - fabric.loadSVGFromURL(object.path, function (elements) { - var path = elements[0], - pathUrl = object.path; - - delete object.path; - - fabric.util.object.extend(path, object); - path.setSourcePath(pathUrl); - - callback(path); - }); - } - else { - callback(new fabric.Path(object.path, object)); - } - }; - - /* _FROM_SVG_START_ */ - /** - * List of attribute names to account for when parsing SVG element (used by `fabric.Path.fromElement`) - * @static - * @memberOf fabric.Path - * @see http://www.w3.org/TR/SVG/paths.html#PathElement - */ - fabric.Path.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat(['d']); - - /** - * Creates an instance of fabric.Path from an SVG element - * @static - * @memberOf fabric.Path - * @param {SVGElement} element to parse - * @param {Function} callback Callback to invoke when an fabric.Path instance is created - * @param {Object} [options] Options object - */ - fabric.Path.fromElement = function(element, callback, options) { - var parsedAttributes = fabric.parseAttributes(element, fabric.Path.ATTRIBUTE_NAMES); - callback && callback(new fabric.Path(parsedAttributes.d, extend(parsedAttributes, options))); - }; - /* _FROM_SVG_END_ */ - - /** - * Indicates that instances of this type are async - * @static - * @memberOf fabric.Path - * @type Boolean - * @default - */ - fabric.Path.async = true; - -})(typeof exports !== 'undefined' ? exports : this); - - -(function(global) { - - 'use strict'; - - var fabric = global.fabric || (global.fabric = { }), - extend = fabric.util.object.extend, - invoke = fabric.util.array.invoke, - parentToObject = fabric.Object.prototype.toObject; - - if (fabric.PathGroup) { - fabric.warn('fabric.PathGroup is already defined'); - return; - } - - /** - * Path group class - * @class fabric.PathGroup - * @extends fabric.Path - * @tutorial {@link http://fabricjs.com/fabric-intro-part-1/#path_and_pathgroup} - * @see {@link fabric.PathGroup#initialize} for constructor definition - */ - fabric.PathGroup = fabric.util.createClass(fabric.Path, /** @lends fabric.PathGroup.prototype */ { - - /** - * Type of an object - * @type String - * @default - */ - type: 'path-group', - - /** - * Fill value - * @type String - * @default - */ - fill: '', - - /** - * Constructor - * @param {Array} paths - * @param {Object} [options] Options object - * @return {fabric.PathGroup} thisArg - */ - initialize: function(paths, options) { - - options = options || { }; - this.paths = paths || [ ]; - - for (var i = this.paths.length; i--;) { - this.paths[i].group = this; - } - - if (options.toBeParsed) { - this.parseDimensionsFromPaths(options); - delete options.toBeParsed; - } - this.setOptions(options); - this.setCoords(); - - if (options.sourcePath) { - this.setSourcePath(options.sourcePath); - } - }, - - /** - * Calculate width and height based on paths contained - */ - parseDimensionsFromPaths: function(options) { - var points, p, xC = [ ], yC = [ ], path, height, width, - m = this.transformMatrix; - for (var j = this.paths.length; j--;) { - path = this.paths[j]; - height = path.height + path.strokeWidth; - width = path.width + path.strokeWidth; - points = [ - { x: path.left, y: path.top }, - { x: path.left + width, y: path.top }, - { x: path.left, y: path.top + height }, - { x: path.left + width, y: path.top + height } - ]; - for (var i = 0; i < points.length; i++) { - p = points[i]; - if (m) { - p = fabric.util.transformPoint(p, m, false); - } - xC.push(p.x); - yC.push(p.y); - } - } - options.width = Math.max.apply(null, xC); - options.height = Math.max.apply(null, yC); - }, - - /** - * Renders this group on a specified context - * @param {CanvasRenderingContext2D} ctx Context to render this instance on - */ - render: function(ctx) { - // do not render if object is not visible - if (!this.visible) { - return; - } - - ctx.save(); - - if (this.transformMatrix) { - ctx.transform.apply(ctx, this.transformMatrix); - } - this.transform(ctx); - - this._setShadow(ctx); - this.clipTo && fabric.util.clipContext(this, ctx); - ctx.translate(-this.width/2, -this.height/2); - for (var i = 0, l = this.paths.length; i < l; ++i) { - this.paths[i].render(ctx, true); - } - this.clipTo && ctx.restore(); - this._removeShadow(ctx); - ctx.restore(); - }, - - /** - * Sets certain property to a certain value - * @param {String} prop - * @param {Any} value - * @return {fabric.PathGroup} thisArg - */ - _set: function(prop, value) { - - if (prop === 'fill' && value && this.isSameColor()) { - var i = this.paths.length; - while (i--) { - this.paths[i]._set(prop, value); - } - } - - return this.callSuper('_set', prop, value); - }, - - /** - * Returns object representation of this path group - * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output - * @return {Object} object representation of an instance - */ - toObject: function(propertiesToInclude) { - var o = extend(parentToObject.call(this, propertiesToInclude), { - paths: invoke(this.getObjects(), 'toObject', propertiesToInclude) - }); - if (this.sourcePath) { - o.sourcePath = this.sourcePath; - } - return o; - }, - - /** - * Returns dataless object representation of this path group - * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output - * @return {Object} dataless object representation of an instance - */ - toDatalessObject: function(propertiesToInclude) { - var o = this.toObject(propertiesToInclude); - if (this.sourcePath) { - o.paths = this.sourcePath; - } - return o; - }, - - /* _TO_SVG_START_ */ - /** - * Returns svg representation of an instance - * @param {Function} [reviver] Method for further parsing of svg representation. - * @return {String} svg representation of an instance - */ - toSVG: function(reviver) { - var objects = this.getObjects(), - p = this.getPointByOrigin('left', 'top'), - translatePart = 'translate(' + p.x + ' ' + p.y + ')', - markup = [ - //jscs:disable validateIndentation - '\n' - //jscs:enable validateIndentation - ]; - - for (var i = 0, len = objects.length; i < len; i++) { - markup.push(objects[i].toSVG(reviver)); - } - markup.push('\n'); - - return reviver ? reviver(markup.join('')) : markup.join(''); - }, - /* _TO_SVG_END_ */ - - /** - * Returns a string representation of this path group - * @return {String} string representation of an object - */ - toString: function() { - return '#'; - }, - - /** - * Returns true if all paths in this group are of same color - * @return {Boolean} true if all paths are of the same color (`fill`) - */ - isSameColor: function() { - var firstPathFill = (this.getObjects()[0].get('fill') || '').toLowerCase(); - return this.getObjects().every(function(path) { - return (path.get('fill') || '').toLowerCase() === firstPathFill; - }); - }, - - /** - * Returns number representation of object's complexity - * @return {Number} complexity - */ - complexity: function() { - return this.paths.reduce(function(total, path) { - return total + ((path && path.complexity) ? path.complexity() : 0); - }, 0); - }, - - /** - * Returns all paths in this path group - * @return {Array} array of path objects included in this path group - */ - getObjects: function() { - return this.paths; - } - }); - - /** - * Creates fabric.PathGroup instance from an object representation - * @static - * @memberOf fabric.PathGroup - * @param {Object} object Object to create an instance from - * @param {Function} callback Callback to invoke when an fabric.PathGroup instance is created - */ - fabric.PathGroup.fromObject = function(object, callback) { - if (typeof object.paths === 'string') { - fabric.loadSVGFromURL(object.paths, function (elements) { - - var pathUrl = object.paths; - delete object.paths; - - var pathGroup = fabric.util.groupSVGElements(elements, object, pathUrl); - - callback(pathGroup); - }); - } - else { - fabric.util.enlivenObjects(object.paths, function(enlivenedObjects) { - delete object.paths; - callback(new fabric.PathGroup(enlivenedObjects, object)); - }); - } - }; - - /** - * Indicates that instances of this type are async - * @static - * @memberOf fabric.PathGroup - * @type Boolean - * @default - */ - fabric.PathGroup.async = true; - -})(typeof exports !== 'undefined' ? exports : this); - - -(function(global) { - - 'use strict'; - - var fabric = global.fabric || (global.fabric = { }), - extend = fabric.util.object.extend, - min = fabric.util.array.min, - max = fabric.util.array.max, - invoke = fabric.util.array.invoke; - - if (fabric.Group) { - return; - } - - // lock-related properties, for use in fabric.Group#get - // to enable locking behavior on group - // when one of its objects has lock-related properties set - var _lockProperties = { - lockMovementX: true, - lockMovementY: true, - lockRotation: true, - lockScalingX: true, - lockScalingY: true, - lockUniScaling: true - }; - - /** - * Group class - * @class fabric.Group - * @extends fabric.Object - * @mixes fabric.Collection - * @tutorial {@link http://fabricjs.com/fabric-intro-part-3/#groups} - * @see {@link fabric.Group#initialize} for constructor definition - */ - fabric.Group = fabric.util.createClass(fabric.Object, fabric.Collection, /** @lends fabric.Group.prototype */ { - - /** - * Type of an object - * @type String - * @default - */ - type: 'group', - - /** - * Constructor - * @param {Object} objects Group objects - * @param {Object} [options] Options object - * @return {Object} thisArg - */ - initialize: function(objects, options) { - options = options || { }; - - this._objects = objects || []; - for (var i = this._objects.length; i--; ) { - this._objects[i].group = this; - } - - this.originalState = { }; - this.callSuper('initialize'); - - if (options.originX) { - this.originX = options.originX; - } - - if (options.originY) { - this.originY = options.originY; - } - - this._calcBounds(); - this._updateObjectsCoords(); - - this.callSuper('initialize', options); - - this.setCoords(); - this.saveCoords(); - }, - - /** - * @private - */ - _updateObjectsCoords: function() { - this.forEachObject(this._updateObjectCoords, this); - }, - - /** - * @private - */ - _updateObjectCoords: function(object) { - var objectLeft = object.getLeft(), - objectTop = object.getTop(), - center = this.getCenterPoint(); - - object.set({ - originalLeft: objectLeft, - originalTop: objectTop, - left: objectLeft - center.x, - top: objectTop - center.y - }); - - object.setCoords(); - - // do not display corners of objects enclosed in a group - object.__origHasControls = object.hasControls; - object.hasControls = false; - }, - - /** - * Returns string represenation of a group - * @return {String} - */ - toString: function() { - return '#'; - }, - - /** - * Adds an object to a group; Then recalculates group's dimension, position. - * @param {Object} object - * @return {fabric.Group} thisArg - * @chainable - */ - addWithUpdate: function(object) { - this._restoreObjectsState(); - if (object) { - this._objects.push(object); - object.group = this; - } - // since _restoreObjectsState set objects inactive - this.forEachObject(this._setObjectActive, this); - this._calcBounds(); - this._updateObjectsCoords(); - return this; - }, - - /** - * @private - */ - _setObjectActive: function(object) { - object.set('active', true); - object.group = this; - }, - - /** - * Removes an object from a group; Then recalculates group's dimension, position. - * @param {Object} object - * @return {fabric.Group} thisArg - * @chainable - */ - removeWithUpdate: function(object) { - this._moveFlippedObject(object); - this._restoreObjectsState(); - - // since _restoreObjectsState set objects inactive - this.forEachObject(this._setObjectActive, this); - - this.remove(object); - this._calcBounds(); - this._updateObjectsCoords(); - - return this; - }, - - /** - * @private - */ - _onObjectAdded: function(object) { - object.group = this; - }, - - /** - * @private - */ - _onObjectRemoved: function(object) { - delete object.group; - object.set('active', false); - }, - - /** - * Properties that are delegated to group objects when reading/writing - * @param {Object} delegatedProperties - */ - delegatedProperties: { - fill: true, - opacity: true, - fontFamily: true, - fontWeight: true, - fontSize: true, - fontStyle: true, - lineHeight: true, - textDecoration: true, - textAlign: true, - backgroundColor: true - }, - - /** - * @private - */ - _set: function(key, value) { - if (key in this.delegatedProperties) { - var i = this._objects.length; - while (i--) { - this._objects[i].set(key, value); - } - } - this.callSuper('_set', key, value); - }, - - /** - * Returns object representation of an instance - * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output - * @return {Object} object representation of an instance - */ - toObject: function(propertiesToInclude) { - return extend(this.callSuper('toObject', propertiesToInclude), { - objects: invoke(this._objects, 'toObject', propertiesToInclude) - }); - }, - - /** - * Renders instance on a given context - * @param {CanvasRenderingContext2D} ctx context to render instance on - */ - render: function(ctx) { - // do not render if object is not visible - if (!this.visible) { - return; - } - - ctx.save(); - this.clipTo && fabric.util.clipContext(this, ctx); - this.transform(ctx); - // the array is now sorted in order of highest first, so start from end - for (var i = 0, len = this._objects.length; i < len; i++) { - this._renderObject(this._objects[i], ctx); - } - - this.clipTo && ctx.restore(); - - ctx.restore(); - }, - - /** - * Renders controls and borders for the object - * @param {CanvasRenderingContext2D} ctx Context to render on - * @param {Boolean} [noTransform] When true, context is not transformed - */ - _renderControls: function(ctx, noTransform) { - this.callSuper('_renderControls', ctx, noTransform); - for (var i = 0, len = this._objects.length; i < len; i++) { - this._objects[i]._renderControls(ctx); - } - }, - - /** - * @private - */ - _renderObject: function(object, ctx) { - var originalHasRotatingPoint = object.hasRotatingPoint; - - // do not render if object is not visible - if (!object.visible) { - return; - } - - object.hasRotatingPoint = false; - - object.render(ctx); - - object.hasRotatingPoint = originalHasRotatingPoint; - }, - - /** - * Retores original state of each of group objects (original state is that which was before group was created). - * @private - * @return {fabric.Group} thisArg - * @chainable - */ - _restoreObjectsState: function() { - this._objects.forEach(this._restoreObjectState, this); - return this; - }, - - /** - * Realises the transform from this group onto the supplied object - * i.e. it tells you what would happen if the supplied object was in - * the group, and then the group was destroyed. It mutates the supplied - * object. - * @param {fabric.Object} object - * @return {fabric.Object} transformedObject - */ - realizeTransform: function(object) { - this._moveFlippedObject(object); - this._setObjectPosition(object); - return object; - }, - /** - * Moves a flipped object to the position where it's displayed - * @private - * @param {fabric.Object} object - * @return {fabric.Group} thisArg - */ - _moveFlippedObject: function(object) { - var oldOriginX = object.get('originX'), - oldOriginY = object.get('originY'), - center = object.getCenterPoint(); - - object.set({ - originX: 'center', - originY: 'center', - left: center.x, - top: center.y - }); - - this._toggleFlipping(object); - - var newOrigin = object.getPointByOrigin(oldOriginX, oldOriginY); - - object.set({ - originX: oldOriginX, - originY: oldOriginY, - left: newOrigin.x, - top: newOrigin.y - }); - - return this; - }, - - /** - * @private - */ - _toggleFlipping: function(object) { - if (this.flipX) { - object.toggle('flipX'); - object.set('left', -object.get('left')); - object.setAngle(-object.getAngle()); - } - if (this.flipY) { - object.toggle('flipY'); - object.set('top', -object.get('top')); - object.setAngle(-object.getAngle()); - } - }, - - /** - * Restores original state of a specified object in group - * @private - * @param {fabric.Object} object - * @return {fabric.Group} thisArg - */ - _restoreObjectState: function(object) { - this._setObjectPosition(object); - - object.setCoords(); - object.hasControls = object.__origHasControls; - delete object.__origHasControls; - object.set('active', false); - object.setCoords(); - delete object.group; - - return this; - }, - - /** - * @private - */ - _setObjectPosition: function(object) { - var center = this.getCenterPoint(), - rotated = this._getRotatedLeftTop(object); - - object.set({ - angle: object.getAngle() + this.getAngle(), - left: center.x + rotated.left, - top: center.y + rotated.top, - scaleX: object.get('scaleX') * this.get('scaleX'), - scaleY: object.get('scaleY') * this.get('scaleY') - }); - }, - - /** - * @private - */ - _getRotatedLeftTop: function(object) { - var groupAngle = this.getAngle() * (Math.PI / 180); - return { - left: (-Math.sin(groupAngle) * object.getTop() * this.get('scaleY') + - Math.cos(groupAngle) * object.getLeft() * this.get('scaleX')), - - top: (Math.cos(groupAngle) * object.getTop() * this.get('scaleY') + - Math.sin(groupAngle) * object.getLeft() * this.get('scaleX')) - }; - }, - - /** - * Destroys a group (restoring state of its objects) - * @return {fabric.Group} thisArg - * @chainable - */ - destroy: function() { - this._objects.forEach(this._moveFlippedObject, this); - return this._restoreObjectsState(); - }, - - /** - * Saves coordinates of this instance (to be used together with `hasMoved`) - * @saveCoords - * @return {fabric.Group} thisArg - * @chainable - */ - saveCoords: function() { - this._originalLeft = this.get('left'); - this._originalTop = this.get('top'); - return this; - }, - - /** - * Checks whether this group was moved (since `saveCoords` was called last) - * @return {Boolean} true if an object was moved (since fabric.Group#saveCoords was called) - */ - hasMoved: function() { - return this._originalLeft !== this.get('left') || - this._originalTop !== this.get('top'); - }, - - /** - * Sets coordinates of all group objects - * @return {fabric.Group} thisArg - * @chainable - */ - setObjectsCoords: function() { - this.forEachObject(function(object) { - object.setCoords(); - }); - return this; - }, - - /** - * @private - */ - _calcBounds: function(onlyWidthHeight) { - var aX = [], - aY = [], - o, prop, - props = ['tr', 'br', 'bl', 'tl']; - - for (var i = 0, len = this._objects.length; i < len; ++i) { - o = this._objects[i]; - o.setCoords(); - for (var j = 0; j < props.length; j++) { - prop = props[j]; - aX.push(o.oCoords[prop].x); - aY.push(o.oCoords[prop].y); - } - } - - this.set(this._getBounds(aX, aY, onlyWidthHeight)); - }, - - /** - * @private - */ - _getBounds: function(aX, aY, onlyWidthHeight) { - var ivt = fabric.util.invertTransform(this.getViewportTransform()), - minXY = fabric.util.transformPoint(new fabric.Point(min(aX), min(aY)), ivt), - maxXY = fabric.util.transformPoint(new fabric.Point(max(aX), max(aY)), ivt), - obj = { - width: (maxXY.x - minXY.x) || 0, - height: (maxXY.y - minXY.y) || 0 - }; - - if (!onlyWidthHeight) { - obj.left = minXY.x || 0; - obj.top = minXY.y || 0; - if (this.originX === 'center') { - obj.left += obj.width / 2; - } - if (this.originX === 'right') { - obj.left += obj.width; - } - if (this.originY === 'center') { - obj.top += obj.height / 2; - } - if (this.originY === 'bottom') { - obj.top += obj.height; - } - } - return obj; - }, - - /* _TO_SVG_START_ */ - /** - * Returns svg representation of an instance - * @param {Function} [reviver] Method for further parsing of svg representation. - * @return {String} svg representation of an instance - */ - toSVG: function(reviver) { - var markup = [ - //jscs:disable validateIndentation - '\n' - //jscs:enable validateIndentation - ]; - - for (var i = 0, len = this._objects.length; i < len; i++) { - markup.push(this._objects[i].toSVG(reviver)); - } - - markup.push('\n'); - - return reviver ? reviver(markup.join('')) : markup.join(''); - }, - /* _TO_SVG_END_ */ - - /** - * Returns requested property - * @param {String} prop Property to get - * @return {Any} - */ - get: function(prop) { - if (prop in _lockProperties) { - if (this[prop]) { - return this[prop]; - } - else { - for (var i = 0, len = this._objects.length; i < len; i++) { - if (this._objects[i][prop]) { - return true; - } - } - return false; - } - } - else { - if (prop in this.delegatedProperties) { - return this._objects[0] && this._objects[0].get(prop); - } - return this[prop]; - } - } - }); - - /** - * Returns {@link fabric.Group} instance from an object representation - * @static - * @memberOf fabric.Group - * @param {Object} object Object to create a group from - * @param {Function} [callback] Callback to invoke when an group instance is created - * @return {fabric.Group} An instance of fabric.Group - */ - fabric.Group.fromObject = function(object, callback) { - fabric.util.enlivenObjects(object.objects, function(enlivenedObjects) { - delete object.objects; - callback && callback(new fabric.Group(enlivenedObjects, object)); - }); - }; - - /** - * Indicates that instances of this type are async - * @static - * @memberOf fabric.Group - * @type Boolean - * @default - */ - fabric.Group.async = true; - -})(typeof exports !== 'undefined' ? exports : this); - - -(function(global) { - - 'use strict'; - - var extend = fabric.util.object.extend; - - if (!global.fabric) { - global.fabric = { }; - } - - if (global.fabric.Image) { - fabric.warn('fabric.Image is already defined.'); - return; - } - - /** - * Image class - * @class fabric.Image - * @extends fabric.Object - * @tutorial {@link http://fabricjs.com/fabric-intro-part-1/#images} - * @see {@link fabric.Image#initialize} for constructor definition - */ - fabric.Image = fabric.util.createClass(fabric.Object, /** @lends fabric.Image.prototype */ { - - /** - * Type of an object - * @type String - * @default - */ - type: 'image', - - /** - * crossOrigin value (one of "", "anonymous", "allow-credentials") - * @see https://developer.mozilla.org/en-US/docs/HTML/CORS_settings_attributes - * @type String - * @default - */ - crossOrigin: '', - - /** - * AlignX value, part of preserveAspectRatio (one of "none", "mid", "min", "max") - * @see http://www.w3.org/TR/SVG/coords.html#PreserveAspectRatioAttribute - * This parameter defines how the picture is aligned to its viewport when image element width differs from image width. - * @type String - * @default - */ - alignX: 'none', - - /** - * AlignY value, part of preserveAspectRatio (one of "none", "mid", "min", "max") - * @see http://www.w3.org/TR/SVG/coords.html#PreserveAspectRatioAttribute - * This parameter defines how the picture is aligned to its viewport when image element height differs from image height. - * @type String - * @default - */ - alignY: 'none', - - /** - * meetOrSlice value, part of preserveAspectRatio (one of "meet", "slice"). - * if meet the image is always fully visibile, if slice the viewport is always filled with image. - * @see http://www.w3.org/TR/SVG/coords.html#PreserveAspectRatioAttribute - * @type String - * @default - */ - meetOrSlice: 'meet', - - /** - * private - * contains last value of scaleX to detect - * if the Image got resized after the last Render - * @type Number - */ - _lastScaleX: 1, - - /** - * private - * contains last value of scaleY to detect - * if the Image got resized after the last Render - * @type Number - */ - _lastScaleY: 1, - - /** - * Constructor - * @param {HTMLImageElement | String} element Image element - * @param {Object} [options] Options object - * @return {fabric.Image} thisArg - */ - initialize: function(element, options) { - options || (options = { }); - - this.filters = [ ]; - this.resizeFilters = [ ]; - this.callSuper('initialize', options); - - this._initElement(element, options); - this._initConfig(options); - - if (options.filters) { - this.filters = options.filters; - this.applyFilters(); - } - }, - - /** - * Returns image element which this instance if based on - * @return {HTMLImageElement} Image element - */ - getElement: function() { - return this._element; - }, - - /** - * Sets image element for this instance to a specified one. - * If filters defined they are applied to new image. - * You might need to call `canvas.renderAll` and `object.setCoords` after replacing, to render new image and update controls area. - * @param {HTMLImageElement} element - * @param {Function} [callback] Callback is invoked when all filters have been applied and new image is generated - * @param {Object} [options] Options object - * @return {fabric.Image} thisArg - * @chainable - */ - setElement: function(element, callback, options) { - this._element = element; - this._originalElement = element; - this._initConfig(options); - - if (this.filters.length !== 0) { - this.applyFilters(callback); - } - else if (callback) { - callback(); - } - - return this; - }, - - /** - * Sets crossOrigin value (on an instance and corresponding image element) - * @return {fabric.Image} thisArg - * @chainable - */ - setCrossOrigin: function(value) { - this.crossOrigin = value; - this._element.crossOrigin = value; - - return this; - }, - - /** - * Returns original size of an image - * @return {Object} Object with "width" and "height" properties - */ - getOriginalSize: function() { - var element = this.getElement(); - return { - width: element.width, - height: element.height - }; - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - _stroke: function(ctx) { - ctx.save(); - this._setStrokeStyles(ctx); - ctx.beginPath(); - ctx.strokeRect(-this.width / 2, -this.height / 2, this.width, this.height); - ctx.closePath(); - ctx.restore(); - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - _renderDashedStroke: function(ctx) { - var x = -this.width / 2, - y = -this.height / 2, - w = this.width, - h = this.height; - - ctx.save(); - this._setStrokeStyles(ctx); - - ctx.beginPath(); - fabric.util.drawDashedLine(ctx, x, y, x + w, y, this.strokeDashArray); - fabric.util.drawDashedLine(ctx, x + w, y, x + w, y + h, this.strokeDashArray); - fabric.util.drawDashedLine(ctx, x + w, y + h, x, y + h, this.strokeDashArray); - fabric.util.drawDashedLine(ctx, x, y + h, x, y, this.strokeDashArray); - ctx.closePath(); - ctx.restore(); - }, - - /** - * Returns object representation of an instance - * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output - * @return {Object} Object representation of an instance - */ - toObject: function(propertiesToInclude) { - return extend(this.callSuper('toObject', propertiesToInclude), { - src: this._originalElement.src || this._originalElement._src, - filters: this.filters.map(function(filterObj) { - return filterObj && filterObj.toObject(); - }), - crossOrigin: this.crossOrigin, - alignX: this.alignX, - alignY: this.alignY, - meetOrSlice: this.meetOrSlice - }); - }, - - /* _TO_SVG_START_ */ - /** - * Returns SVG representation of an instance - * @param {Function} [reviver] Method for further parsing of svg representation. - * @return {String} svg representation of an instance - */ - toSVG: function(reviver) { - var markup = [], x = -this.width / 2, y = -this.height / 2, - preserveAspectRatio = 'none'; - if (this.group && this.group.type === 'path-group') { - x = this.left; - y = this.top; - } - if (this.alignX !== 'none' && this.alignY !== 'none') { - preserveAspectRatio = 'x' + this.alignX + 'Y' + this.alignY + ' ' + this.meetOrSlice; - } - markup.push( - '\n', - '\n' - ); - - if (this.stroke || this.strokeDashArray) { - var origFill = this.fill; - this.fill = null; - markup.push( - '\n' - ); - this.fill = origFill; - } - - markup.push('\n'); - - return reviver ? reviver(markup.join('')) : markup.join(''); - }, - /* _TO_SVG_END_ */ - - /** - * Returns source of an image - * @return {String} Source of an image - */ - getSrc: function() { - if (this.getElement()) { - return this.getElement().src || this.getElement()._src; - } - }, - - /** - * Sets source of an image - * @param {String} src Source string (URL) - * @param {Function} [callback] Callback is invoked when image has been loaded (and all filters have been applied) - * @param {Object} [options] Options object - * @return {fabric.Image} thisArg - * @chainable - */ - setSrc: function(src, callback, options) { - fabric.util.loadImage(src, function(img) { - return this.setElement(img, callback, options); - }, this, options && options.crossOrigin); - }, - - /** - * Returns string representation of an instance - * @return {String} String representation of an instance - */ - toString: function() { - return '#'; - }, - - /** - * Returns a clone of an instance - * @param {Function} callback Callback is invoked with a clone as a first argument - * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output - */ - clone: function(callback, propertiesToInclude) { - this.constructor.fromObject(this.toObject(propertiesToInclude), callback); - }, - - /** - * Applies filters assigned to this image (from "filters" array) - * @method applyFilters - * @param {Function} callback Callback is invoked when all filters have been applied and new image is generated - * @return {fabric.Image} thisArg - * @chainable - */ - applyFilters: function(callback, filters, imgElement, forResizing) { - - filters = filters || this.filters; - imgElement = imgElement || this._originalElement; - - if (!imgElement) { - return; - } - - var imgEl = imgElement, - canvasEl = fabric.util.createCanvasElement(), - replacement = fabric.util.createImage(), - _this = this; - - canvasEl.width = imgEl.width; - canvasEl.height = imgEl.height; - canvasEl.getContext('2d').drawImage(imgEl, 0, 0, imgEl.width, imgEl.height); - - if (filters.length === 0) { - this._element = imgElement; - callback && callback(); - return canvasEl; - } - filters.forEach(function(filter) { - filter && filter.applyTo(canvasEl, filter.scaleX || _this.scaleX, filter.scaleY || _this.scaleY); - if (!forResizing && filter && filter.type === 'Resize') { - _this.width *= filter.scaleX; - _this.height *= filter.scaleY; - } - }); - - /** @ignore */ - replacement.width = canvasEl.width; - replacement.height = canvasEl.height; - - if (fabric.isLikelyNode) { - replacement.src = canvasEl.toBuffer(undefined, fabric.Image.pngCompression); - // onload doesn't fire in some node versions, so we invoke callback manually - _this._element = replacement; - !forResizing && (_this._filteredEl = replacement); - callback && callback(); - } - else { - replacement.onload = function() { - _this._element = replacement; - !forResizing && (_this._filteredEl = replacement); - callback && callback(); - replacement.onload = canvasEl = imgEl = null; - }; - replacement.src = canvasEl.toDataURL('image/png'); - } - return canvasEl; - }, - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - _render: function(ctx, noTransform) { - var x, y, imageMargins = this._findMargins(), elementToDraw; - - x = (noTransform ? this.left : -this.width / 2); - y = (noTransform ? this.top : -this.height / 2); - - if (this.meetOrSlice === 'slice') { - ctx.beginPath(); - ctx.rect(x, y, this.width, this.height); - ctx.clip(); - } - - if (this.isMoving === false && this.resizeFilters.length && this._needsResize()) { - this._lastScaleX = this.scaleX; - this._lastScaleY = this.scaleY; - elementToDraw = this.applyFilters(null, this.resizeFilters, this._filteredEl || this._originalElement, true); - } - else { - elementToDraw = this._element; - } - elementToDraw && ctx.drawImage(elementToDraw, - x + imageMargins.marginX, - y + imageMargins.marginY, - imageMargins.width, - imageMargins.height - ); - - this._renderStroke(ctx); - }, - /** - * @private, needed to check if image needs resize - */ - _needsResize: function() { - return (this.scaleX !== this._lastScaleX || this.scaleY !== this._lastScaleY); - }, - - /** - * @private - */ - _findMargins: function() { - var width = this.width, height = this.height, scales, - scale, marginX = 0, marginY = 0; - - if (this.alignX !== 'none' || this.alignY !== 'none') { - scales = [this.width / this._element.width, this.height / this._element.height]; - scale = this.meetOrSlice === 'meet' - ? Math.min.apply(null, scales) : Math.max.apply(null, scales); - width = this._element.width * scale; - height = this._element.height * scale; - if (this.alignX === 'Mid') { - marginX = (this.width - width) / 2; - } - if (this.alignX === 'Max') { - marginX = this.width - width; - } - if (this.alignY === 'Mid') { - marginY = (this.height - height) / 2; - } - if (this.alignY === 'Max') { - marginY = this.height - height; - } - } - return { - width: width, - height: height, - marginX: marginX, - marginY: marginY - }; - }, - - /** - * @private - */ - _resetWidthHeight: function() { - var element = this.getElement(); - - this.set('width', element.width); - this.set('height', element.height); - }, - - /** - * The Image class's initialization method. This method is automatically - * called by the constructor. - * @private - * @param {HTMLImageElement|String} element The element representing the image - */ - _initElement: function(element) { - this.setElement(fabric.util.getById(element)); - fabric.util.addClass(this.getElement(), fabric.Image.CSS_CANVAS); - }, - - /** - * @private - * @param {Object} [options] Options object - */ - _initConfig: function(options) { - options || (options = { }); - this.setOptions(options); - this._setWidthHeight(options); - if (this._element && this.crossOrigin) { - this._element.crossOrigin = this.crossOrigin; - } - }, - - /** - * @private - * @param {Object} object Object with filters property - * @param {Function} callback Callback to invoke when all fabric.Image.filters instances are created - */ - _initFilters: function(object, callback) { - if (object.filters && object.filters.length) { - fabric.util.enlivenObjects(object.filters, function(enlivenedObjects) { - callback && callback(enlivenedObjects); - }, 'fabric.Image.filters'); - } - else { - callback && callback(); - } - }, - - /** - * @private - * @param {Object} [options] Object with width/height properties - */ - _setWidthHeight: function(options) { - this.width = 'width' in options - ? options.width - : (this.getElement() - ? this.getElement().width || 0 - : 0); - - this.height = 'height' in options - ? options.height - : (this.getElement() - ? this.getElement().height || 0 - : 0); - }, - - /** - * Returns complexity of an instance - * @return {Number} complexity of this instance - */ - complexity: function() { - return 1; - } - }); - - /** - * Default CSS class name for canvas - * @static - * @type String - * @default - */ - fabric.Image.CSS_CANVAS = 'canvas-img'; - - /** - * Alias for getSrc - * @static - */ - fabric.Image.prototype.getSvgSrc = fabric.Image.prototype.getSrc; - - /** - * Creates an instance of fabric.Image from its object representation - * @static - * @param {Object} object Object to create an instance from - * @param {Function} [callback] Callback to invoke when an image instance is created - */ - fabric.Image.fromObject = function(object, callback) { - fabric.util.loadImage(object.src, function(img) { - fabric.Image.prototype._initFilters.call(object, object, function(filters) { - object.filters = filters || [ ]; - var instance = new fabric.Image(img, object); - callback && callback(instance); - }); - }, null, object.crossOrigin); - }; - - /** - * Creates an instance of fabric.Image from an URL string - * @static - * @param {String} url URL to create an image from - * @param {Function} [callback] Callback to invoke when image is created (newly created image is passed as a first argument) - * @param {Object} [imgOptions] Options object - */ - fabric.Image.fromURL = function(url, callback, imgOptions) { - fabric.util.loadImage(url, function(img) { - callback && callback(new fabric.Image(img, imgOptions)); - }, null, imgOptions && imgOptions.crossOrigin); - }; - - /* _FROM_SVG_START_ */ - /** - * List of attribute names to account for when parsing SVG element (used by {@link fabric.Image.fromElement}) - * @static - * @see {@link http://www.w3.org/TR/SVG/struct.html#ImageElement} - */ - fabric.Image.ATTRIBUTE_NAMES = - fabric.SHARED_ATTRIBUTES.concat('x y width height preserveAspectRatio xlink:href'.split(' ')); - - /** - * Returns {@link fabric.Image} instance from an SVG element - * @static - * @param {SVGElement} element Element to parse - * @param {Function} callback Callback to execute when fabric.Image object is created - * @param {Object} [options] Options object - * @return {fabric.Image} Instance of fabric.Image - */ - fabric.Image.fromElement = function(element, callback, options) { - var parsedAttributes = fabric.parseAttributes(element, fabric.Image.ATTRIBUTE_NAMES), - align = 'xMidYMid', meetOrSlice = 'meet', alignX, alignY, aspectRatioAttrs; - - if (parsedAttributes.preserveAspectRatio) { - aspectRatioAttrs = parsedAttributes.preserveAspectRatio.split(' '); - } - - if (aspectRatioAttrs && aspectRatioAttrs.length) { - meetOrSlice = aspectRatioAttrs.pop(); - if (meetOrSlice !== 'meet' && meetOrSlice !== 'slice') { - align = meetOrSlice; - meetOrSlice = 'meet'; - } - else if (aspectRatioAttrs.length) { - align = aspectRatioAttrs.pop(); - } - } - //divide align in alignX and alignY - alignX = align !== 'none' ? align.slice(1, 4) : 'none'; - alignY = align !== 'none' ? align.slice(5, 8) : 'none'; - parsedAttributes.alignX = alignX; - parsedAttributes.alignY = alignY; - parsedAttributes.meetOrSlice = meetOrSlice; - fabric.Image.fromURL(parsedAttributes['xlink:href'], callback, - extend((options ? fabric.util.object.clone(options) : { }), parsedAttributes)); - }; - /* _FROM_SVG_END_ */ - - /** - * Indicates that instances of this type are async - * @static - * @type Boolean - * @default - */ - fabric.Image.async = true; - - /** - * Indicates compression level used when generating PNG under Node (in applyFilters). Any of 0-9 - * @static - * @type Number - * @default - */ - fabric.Image.pngCompression = 1; - -})(typeof exports !== 'undefined' ? exports : this); - - -fabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prototype */ { - - /** - * @private - * @return {Number} angle value - */ - _getAngleValueForStraighten: function() { - var angle = this.getAngle() % 360; - if (angle > 0) { - return Math.round((angle - 1) / 90) * 90; - } - return Math.round(angle / 90) * 90; - }, - - /** - * Straightens an object (rotating it from current angle to one of 0, 90, 180, 270, etc. depending on which is closer) - * @return {fabric.Object} thisArg - * @chainable - */ - straighten: function() { - this.setAngle(this._getAngleValueForStraighten()); - return this; - }, - - /** - * Same as {@link fabric.Object.prototype.straighten} but with animation - * @param {Object} callbacks Object with callback functions - * @param {Function} [callbacks.onComplete] Invoked on completion - * @param {Function} [callbacks.onChange] Invoked on every step of animation - * @return {fabric.Object} thisArg - * @chainable - */ - fxStraighten: function(callbacks) { - callbacks = callbacks || { }; - - var empty = function() { }, - onComplete = callbacks.onComplete || empty, - onChange = callbacks.onChange || empty, - _this = this; - - fabric.util.animate({ - startValue: this.get('angle'), - endValue: this._getAngleValueForStraighten(), - duration: this.FX_DURATION, - onChange: function(value) { - _this.setAngle(value); - onChange(); - }, - onComplete: function() { - _this.setCoords(); - onComplete(); - }, - onStart: function() { - _this.set('active', false); - } - }); - - return this; - } -}); - -fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @lends fabric.StaticCanvas.prototype */ { - - /** - * Straightens object, then rerenders canvas - * @param {fabric.Object} object Object to straighten - * @return {fabric.Canvas} thisArg - * @chainable - */ - straightenObject: function (object) { - object.straighten(); - this.renderAll(); - return this; - }, - - /** - * Same as {@link fabric.Canvas.prototype.straightenObject}, but animated - * @param {fabric.Object} object Object to straighten - * @return {fabric.Canvas} thisArg - * @chainable - */ - fxStraightenObject: function (object) { - object.fxStraighten({ - onChange: this.renderAll.bind(this) - }); - return this; - } -}); - - -/** - * @namespace fabric.Image.filters - * @memberOf fabric.Image - * @tutorial {@link http://fabricjs.com/fabric-intro-part-2/#image_filters} - * @see {@link http://fabricjs.com/image-filters/|ImageFilters demo} - */ -fabric.Image.filters = fabric.Image.filters || { }; - -/** - * Root filter class from which all filter classes inherit from - * @class fabric.Image.filters.BaseFilter - * @memberOf fabric.Image.filters - */ -fabric.Image.filters.BaseFilter = fabric.util.createClass(/** @lends fabric.Image.filters.BaseFilter.prototype */ { - - /** - * Filter type - * @param {String} type - * @default - */ - type: 'BaseFilter', - - /** - * Constructor - * @param {Object} [options] Options object - */ - initialize: function(options) { - if (options) { - this.setOptions(options); - } - }, - - /** - * Sets filter's properties from options - * @param {Object} [options] Options object - */ - setOptions: function(options) { - for (var prop in options) { - this[prop] = options[prop]; - } - }, - - /** - * Returns object representation of an instance - * @return {Object} Object representation of an instance - */ - toObject: function() { - return { type: this.type }; - }, - - /** - * Returns a JSON representation of an instance - * @return {Object} JSON - */ - toJSON: function() { - // delegate, not alias - return this.toObject(); - } -}); - - -(function(global) { - - 'use strict'; - - var fabric = global.fabric || (global.fabric = { }), - extend = fabric.util.object.extend; - - /** - * Brightness filter class - * @class fabric.Image.filters.Brightness - * @memberOf fabric.Image.filters - * @extends fabric.Image.filters.BaseFilter - * @see {@link fabric.Image.filters.Brightness#initialize} for constructor definition - * @see {@link http://fabricjs.com/image-filters/|ImageFilters demo} - * @example - * var filter = new fabric.Image.filters.Brightness({ - * brightness: 200 - * }); - * object.filters.push(filter); - * object.applyFilters(canvas.renderAll.bind(canvas)); - */ - fabric.Image.filters.Brightness = fabric.util.createClass(fabric.Image.filters.BaseFilter, /** @lends fabric.Image.filters.Brightness.prototype */ { - - /** - * Filter type - * @param {String} type - * @default - */ - type: 'Brightness', - - /** - * Constructor - * @memberOf fabric.Image.filters.Brightness.prototype - * @param {Object} [options] Options object - * @param {Number} [options.brightness=0] Value to brighten the image up (0..255) - */ - initialize: function(options) { - options = options || { }; - this.brightness = options.brightness || 0; - }, - - /** - * Applies filter to canvas element - * @param {Object} canvasEl Canvas element to apply filter to - */ - applyTo: function(canvasEl) { - var context = canvasEl.getContext('2d'), - imageData = context.getImageData(0, 0, canvasEl.width, canvasEl.height), - data = imageData.data, - brightness = this.brightness; - - for (var i = 0, len = data.length; i < len; i += 4) { - data[i] += brightness; - data[i + 1] += brightness; - data[i + 2] += brightness; - } - - context.putImageData(imageData, 0, 0); - }, - - /** - * Returns object representation of an instance - * @return {Object} Object representation of an instance - */ - toObject: function() { - return extend(this.callSuper('toObject'), { - brightness: this.brightness - }); - } - }); - - /** - * Returns filter instance from an object representation - * @static - * @param {Object} object Object to create an instance from - * @return {fabric.Image.filters.Brightness} Instance of fabric.Image.filters.Brightness - */ - fabric.Image.filters.Brightness.fromObject = function(object) { - return new fabric.Image.filters.Brightness(object); - }; - -})(typeof exports !== 'undefined' ? exports : this); - - -(function(global) { - - 'use strict'; - - var fabric = global.fabric || (global.fabric = { }), - extend = fabric.util.object.extend; - - /** - * Adapted from html5rocks article - * @class fabric.Image.filters.Convolute - * @memberOf fabric.Image.filters - * @extends fabric.Image.filters.BaseFilter - * @see {@link fabric.Image.filters.Convolute#initialize} for constructor definition - * @see {@link http://fabricjs.com/image-filters/|ImageFilters demo} - * @example - * var filter = new fabric.Image.filters.Convolute({ - * matrix: [ 0, -1, 0, - * -1, 5, -1, - * 0, -1, 0 ] - * }); - * object.filters.push(filter); - * object.applyFilters(canvas.renderAll.bind(canvas)); - * @example - * var filter = new fabric.Image.filters.Convolute({ - * matrix: [ 1/9, 1/9, 1/9, - * 1/9, 1/9, 1/9, - * 1/9, 1/9, 1/9 ] - * }); - * object.filters.push(filter); - * object.applyFilters(canvas.renderAll.bind(canvas)); - * @example - * var filter = new fabric.Image.filters.Convolute({ - * matrix: [ 1, 1, 1, - * 1, 0.7, -1, - * -1, -1, -1 ] - * }); - * object.filters.push(filter); - * object.applyFilters(canvas.renderAll.bind(canvas)); - * @example - * var filter = new fabric.Image.filters.Convolute({ - * opaque: true, - * matrix: [ 1, 1, 1, - * 1, 0.7, -1, - * -1, -1, -1 ] - * }); - * object.filters.push(filter); - * object.applyFilters(canvas.renderAll.bind(canvas)); - */ - fabric.Image.filters.Convolute = fabric.util.createClass(fabric.Image.filters.BaseFilter, /** @lends fabric.Image.filters.Convolute.prototype */ { - - /** - * Filter type - * @param {String} type - * @default - */ - type: 'Convolute', - - /** - * Constructor - * @memberOf fabric.Image.filters.Convolute.prototype - * @param {Object} [options] Options object - * @param {Boolean} [options.opaque=false] Opaque value (true/false) - * @param {Array} [options.matrix] Filter matrix - */ - initialize: function(options) { - options = options || { }; - - this.opaque = options.opaque; - this.matrix = options.matrix || [ - 0, 0, 0, - 0, 1, 0, - 0, 0, 0 - ]; - - var canvasEl = fabric.util.createCanvasElement(); - this.tmpCtx = canvasEl.getContext('2d'); - }, - - /** - * @private - */ - _createImageData: function(w, h) { - return this.tmpCtx.createImageData(w, h); - }, - - /** - * Applies filter to canvas element - * @param {Object} canvasEl Canvas element to apply filter to - */ - applyTo: function(canvasEl) { - - var weights = this.matrix, - context = canvasEl.getContext('2d'), - pixels = context.getImageData(0, 0, canvasEl.width, canvasEl.height), - - side = Math.round(Math.sqrt(weights.length)), - halfSide = Math.floor(side/2), - src = pixels.data, - sw = pixels.width, - sh = pixels.height, - - // pad output by the convolution matrix - w = sw, - h = sh, - output = this._createImageData(w, h), - - dst = output.data, - - // go through the destination image pixels - alphaFac = this.opaque ? 1 : 0; - - for (var y = 0; y < h; y++) { - for (var x = 0; x < w; x++) { - var sy = y, - sx = x, - dstOff = (y * w + x) * 4, - // calculate the weighed sum of the source image pixels that - // fall under the convolution matrix - r = 0, g = 0, b = 0, a = 0; - - for (var cy = 0; cy < side; cy++) { - for (var cx = 0; cx < side; cx++) { - - var scy = sy + cy - halfSide, - scx = sx + cx - halfSide; - - /* jshint maxdepth:5 */ - if (scy < 0 || scy > sh || scx < 0 || scx > sw) { - continue; - } - - var srcOff = (scy * sw + scx) * 4, - wt = weights[cy * side + cx]; - - r += src[srcOff] * wt; - g += src[srcOff + 1] * wt; - b += src[srcOff + 2] * wt; - a += src[srcOff + 3] * wt; - } - } - dst[dstOff] = r; - dst[dstOff + 1] = g; - dst[dstOff + 2] = b; - dst[dstOff + 3] = a + alphaFac * (255 - a); - } - } - - context.putImageData(output, 0, 0); - }, - - /** - * Returns object representation of an instance - * @return {Object} Object representation of an instance - */ - toObject: function() { - return extend(this.callSuper('toObject'), { - opaque: this.opaque, - matrix: this.matrix - }); - } - }); - - /** - * Returns filter instance from an object representation - * @static - * @param {Object} object Object to create an instance from - * @return {fabric.Image.filters.Convolute} Instance of fabric.Image.filters.Convolute - */ - fabric.Image.filters.Convolute.fromObject = function(object) { - return new fabric.Image.filters.Convolute(object); - }; - -})(typeof exports !== 'undefined' ? exports : this); - - -(function(global) { - - 'use strict'; - - var fabric = global.fabric || (global.fabric = { }), - extend = fabric.util.object.extend; - - /** - * GradientTransparency filter class - * @class fabric.Image.filters.GradientTransparency - * @memberOf fabric.Image.filters - * @extends fabric.Image.filters.BaseFilter - * @see {@link fabric.Image.filters.GradientTransparency#initialize} for constructor definition - * @see {@link http://fabricjs.com/image-filters/|ImageFilters demo} - * @example - * var filter = new fabric.Image.filters.GradientTransparency({ - * threshold: 200 - * }); - * object.filters.push(filter); - * object.applyFilters(canvas.renderAll.bind(canvas)); - */ - fabric.Image.filters.GradientTransparency = fabric.util.createClass(fabric.Image.filters.BaseFilter, /** @lends fabric.Image.filters.GradientTransparency.prototype */ { - - /** - * Filter type - * @param {String} type - * @default - */ - type: 'GradientTransparency', - - /** - * Constructor - * @memberOf fabric.Image.filters.GradientTransparency.prototype - * @param {Object} [options] Options object - * @param {Number} [options.threshold=100] Threshold value - */ - initialize: function(options) { - options = options || { }; - this.threshold = options.threshold || 100; - }, - - /** - * Applies filter to canvas element - * @param {Object} canvasEl Canvas element to apply filter to - */ - applyTo: function(canvasEl) { - var context = canvasEl.getContext('2d'), - imageData = context.getImageData(0, 0, canvasEl.width, canvasEl.height), - data = imageData.data, - threshold = this.threshold, - total = data.length; - - for (var i = 0, len = data.length; i < len; i += 4) { - data[i + 3] = threshold + 255 * (total - i) / total; - } - - context.putImageData(imageData, 0, 0); - }, - - /** - * Returns object representation of an instance - * @return {Object} Object representation of an instance - */ - toObject: function() { - return extend(this.callSuper('toObject'), { - threshold: this.threshold - }); - } - }); - - /** - * Returns filter instance from an object representation - * @static - * @param {Object} object Object to create an instance from - * @return {fabric.Image.filters.GradientTransparency} Instance of fabric.Image.filters.GradientTransparency - */ - fabric.Image.filters.GradientTransparency.fromObject = function(object) { - return new fabric.Image.filters.GradientTransparency(object); - }; - -})(typeof exports !== 'undefined' ? exports : this); - - -(function(global) { - - 'use strict'; - - var fabric = global.fabric || (global.fabric = { }); - - /** - * Grayscale image filter class - * @class fabric.Image.filters.Grayscale - * @memberOf fabric.Image.filters - * @extends fabric.Image.filters.BaseFilter - * @see {@link http://fabricjs.com/image-filters/|ImageFilters demo} - * @example - * var filter = new fabric.Image.filters.Grayscale(); - * object.filters.push(filter); - * object.applyFilters(canvas.renderAll.bind(canvas)); - */ - fabric.Image.filters.Grayscale = fabric.util.createClass(fabric.Image.filters.BaseFilter, /** @lends fabric.Image.filters.Grayscale.prototype */ { - - /** - * Filter type - * @param {String} type - * @default - */ - type: 'Grayscale', - - /** - * Applies filter to canvas element - * @memberOf fabric.Image.filters.Grayscale.prototype - * @param {Object} canvasEl Canvas element to apply filter to - */ - applyTo: function(canvasEl) { - var context = canvasEl.getContext('2d'), - imageData = context.getImageData(0, 0, canvasEl.width, canvasEl.height), - data = imageData.data, - len = imageData.width * imageData.height * 4, - index = 0, - average; - - while (index < len) { - average = (data[index] + data[index + 1] + data[index + 2]) / 3; - data[index] = average; - data[index + 1] = average; - data[index + 2] = average; - index += 4; - } - - context.putImageData(imageData, 0, 0); - } - }); - - /** - * Returns filter instance from an object representation - * @static - * @return {fabric.Image.filters.Grayscale} Instance of fabric.Image.filters.Grayscale - */ - fabric.Image.filters.Grayscale.fromObject = function() { - return new fabric.Image.filters.Grayscale(); - }; - -})(typeof exports !== 'undefined' ? exports : this); - - -(function(global) { - - 'use strict'; - - var fabric = global.fabric || (global.fabric = { }); - - /** - * Invert filter class - * @class fabric.Image.filters.Invert - * @memberOf fabric.Image.filters - * @extends fabric.Image.filters.BaseFilter - * @see {@link http://fabricjs.com/image-filters/|ImageFilters demo} - * @example - * var filter = new fabric.Image.filters.Invert(); - * object.filters.push(filter); - * object.applyFilters(canvas.renderAll.bind(canvas)); - */ - fabric.Image.filters.Invert = fabric.util.createClass(fabric.Image.filters.BaseFilter, /** @lends fabric.Image.filters.Invert.prototype */ { - - /** - * Filter type - * @param {String} type - * @default - */ - type: 'Invert', - - /** - * Applies filter to canvas element - * @memberOf fabric.Image.filters.Invert.prototype - * @param {Object} canvasEl Canvas element to apply filter to - */ - applyTo: function(canvasEl) { - var context = canvasEl.getContext('2d'), - imageData = context.getImageData(0, 0, canvasEl.width, canvasEl.height), - data = imageData.data, - iLen = data.length, i; - - for (i = 0; i < iLen; i+=4) { - data[i] = 255 - data[i]; - data[i + 1] = 255 - data[i + 1]; - data[i + 2] = 255 - data[i + 2]; - } - - context.putImageData(imageData, 0, 0); - } - }); - - /** - * Returns filter instance from an object representation - * @static - * @return {fabric.Image.filters.Invert} Instance of fabric.Image.filters.Invert - */ - fabric.Image.filters.Invert.fromObject = function() { - return new fabric.Image.filters.Invert(); - }; - -})(typeof exports !== 'undefined' ? exports : this); - - -(function(global) { - - 'use strict'; - - var fabric = global.fabric || (global.fabric = { }), - extend = fabric.util.object.extend; - - /** - * Mask filter class - * See http://resources.aleph-1.com/mask/ - * @class fabric.Image.filters.Mask - * @memberOf fabric.Image.filters - * @extends fabric.Image.filters.BaseFilter - * @see {@link fabric.Image.filters.Mask#initialize} for constructor definition - */ - fabric.Image.filters.Mask = fabric.util.createClass(fabric.Image.filters.BaseFilter, /** @lends fabric.Image.filters.Mask.prototype */ { - - /** - * Filter type - * @param {String} type - * @default - */ - type: 'Mask', - - /** - * Constructor - * @memberOf fabric.Image.filters.Mask.prototype - * @param {Object} [options] Options object - * @param {fabric.Image} [options.mask] Mask image object - * @param {Number} [options.channel=0] Rgb channel (0, 1, 2 or 3) - */ - initialize: function(options) { - options = options || { }; - - this.mask = options.mask; - this.channel = [ 0, 1, 2, 3 ].indexOf(options.channel) > -1 ? options.channel : 0; - }, - - /** - * Applies filter to canvas element - * @param {Object} canvasEl Canvas element to apply filter to - */ - applyTo: function(canvasEl) { - if (!this.mask) { - return; - } - - var context = canvasEl.getContext('2d'), - imageData = context.getImageData(0, 0, canvasEl.width, canvasEl.height), - data = imageData.data, - maskEl = this.mask.getElement(), - maskCanvasEl = fabric.util.createCanvasElement(), - channel = this.channel, - i, - iLen = imageData.width * imageData.height * 4; - - maskCanvasEl.width = maskEl.width; - maskCanvasEl.height = maskEl.height; - - maskCanvasEl.getContext('2d').drawImage(maskEl, 0, 0, maskEl.width, maskEl.height); - - var maskImageData = maskCanvasEl.getContext('2d').getImageData(0, 0, maskEl.width, maskEl.height), - maskData = maskImageData.data; - - for (i = 0; i < iLen; i += 4) { - data[i + 3] = maskData[i + channel]; - } - - context.putImageData(imageData, 0, 0); - }, - - /** - * Returns object representation of an instance - * @return {Object} Object representation of an instance - */ - toObject: function() { - return extend(this.callSuper('toObject'), { - mask: this.mask.toObject(), - channel: this.channel - }); - } - }); - - /** - * Returns filter instance from an object representation - * @static - * @param {Object} object Object to create an instance from - * @param {Function} [callback] Callback to invoke when a mask filter instance is created - */ - fabric.Image.filters.Mask.fromObject = function(object, callback) { - fabric.util.loadImage(object.mask.src, function(img) { - object.mask = new fabric.Image(img, object.mask); - callback && callback(new fabric.Image.filters.Mask(object)); - }); - }; - - /** - * Indicates that instances of this type are async - * @static - * @type Boolean - * @default - */ - fabric.Image.filters.Mask.async = true; - -})(typeof exports !== 'undefined' ? exports : this); - - -(function(global) { - - 'use strict'; - - var fabric = global.fabric || (global.fabric = { }), - extend = fabric.util.object.extend; - - /** - * Noise filter class - * @class fabric.Image.filters.Noise - * @memberOf fabric.Image.filters - * @extends fabric.Image.filters.BaseFilter - * @see {@link fabric.Image.filters.Noise#initialize} for constructor definition - * @see {@link http://fabricjs.com/image-filters/|ImageFilters demo} - * @example - * var filter = new fabric.Image.filters.Noise({ - * noise: 700 - * }); - * object.filters.push(filter); - * object.applyFilters(canvas.renderAll.bind(canvas)); - */ - fabric.Image.filters.Noise = fabric.util.createClass(fabric.Image.filters.BaseFilter, /** @lends fabric.Image.filters.Noise.prototype */ { - - /** - * Filter type - * @param {String} type - * @default - */ - type: 'Noise', - - /** - * Constructor - * @memberOf fabric.Image.filters.Noise.prototype - * @param {Object} [options] Options object - * @param {Number} [options.noise=0] Noise value - */ - initialize: function(options) { - options = options || { }; - this.noise = options.noise || 0; - }, - - /** - * Applies filter to canvas element - * @param {Object} canvasEl Canvas element to apply filter to - */ - applyTo: function(canvasEl) { - var context = canvasEl.getContext('2d'), - imageData = context.getImageData(0, 0, canvasEl.width, canvasEl.height), - data = imageData.data, - noise = this.noise, rand; - - for (var i = 0, len = data.length; i < len; i += 4) { - - rand = (0.5 - Math.random()) * noise; - - data[i] += rand; - data[i + 1] += rand; - data[i + 2] += rand; - } - - context.putImageData(imageData, 0, 0); - }, - - /** - * Returns object representation of an instance - * @return {Object} Object representation of an instance - */ - toObject: function() { - return extend(this.callSuper('toObject'), { - noise: this.noise - }); - } - }); - - /** - * Returns filter instance from an object representation - * @static - * @param {Object} object Object to create an instance from - * @return {fabric.Image.filters.Noise} Instance of fabric.Image.filters.Noise - */ - fabric.Image.filters.Noise.fromObject = function(object) { - return new fabric.Image.filters.Noise(object); - }; - -})(typeof exports !== 'undefined' ? exports : this); - - -(function(global) { - - 'use strict'; - - var fabric = global.fabric || (global.fabric = { }), - extend = fabric.util.object.extend; - - /** - * Pixelate filter class - * @class fabric.Image.filters.Pixelate - * @memberOf fabric.Image.filters - * @extends fabric.Image.filters.BaseFilter - * @see {@link fabric.Image.filters.Pixelate#initialize} for constructor definition - * @see {@link http://fabricjs.com/image-filters/|ImageFilters demo} - * @example - * var filter = new fabric.Image.filters.Pixelate({ - * blocksize: 8 - * }); - * object.filters.push(filter); - * object.applyFilters(canvas.renderAll.bind(canvas)); - */ - fabric.Image.filters.Pixelate = fabric.util.createClass(fabric.Image.filters.BaseFilter, /** @lends fabric.Image.filters.Pixelate.prototype */ { - - /** - * Filter type - * @param {String} type - * @default - */ - type: 'Pixelate', - - /** - * Constructor - * @memberOf fabric.Image.filters.Pixelate.prototype - * @param {Object} [options] Options object - * @param {Number} [options.blocksize=4] Blocksize for pixelate - */ - initialize: function(options) { - options = options || { }; - this.blocksize = options.blocksize || 4; - }, - - /** - * Applies filter to canvas element - * @param {Object} canvasEl Canvas element to apply filter to - */ - applyTo: function(canvasEl) { - var context = canvasEl.getContext('2d'), - imageData = context.getImageData(0, 0, canvasEl.width, canvasEl.height), - data = imageData.data, - iLen = imageData.height, - jLen = imageData.width, - index, i, j, r, g, b, a; - - for (i = 0; i < iLen; i += this.blocksize) { - for (j = 0; j < jLen; j += this.blocksize) { - - index = (i * 4) * jLen + (j * 4); - - r = data[index]; - g = data[index + 1]; - b = data[index + 2]; - a = data[index + 3]; - - /* - blocksize: 4 - - [1,x,x,x,1] - [x,x,x,x,1] - [x,x,x,x,1] - [x,x,x,x,1] - [1,1,1,1,1] - */ - - for (var _i = i, _ilen = i + this.blocksize; _i < _ilen; _i++) { - for (var _j = j, _jlen = j + this.blocksize; _j < _jlen; _j++) { - index = (_i * 4) * jLen + (_j * 4); - data[index] = r; - data[index + 1] = g; - data[index + 2] = b; - data[index + 3] = a; - } - } - } - } - - context.putImageData(imageData, 0, 0); - }, - - /** - * Returns object representation of an instance - * @return {Object} Object representation of an instance - */ - toObject: function() { - return extend(this.callSuper('toObject'), { - blocksize: this.blocksize - }); - } - }); - - /** - * Returns filter instance from an object representation - * @static - * @param {Object} object Object to create an instance from - * @return {fabric.Image.filters.Pixelate} Instance of fabric.Image.filters.Pixelate - */ - fabric.Image.filters.Pixelate.fromObject = function(object) { - return new fabric.Image.filters.Pixelate(object); - }; - -})(typeof exports !== 'undefined' ? exports : this); - - -(function(global) { - - 'use strict'; - - var fabric = global.fabric || (global.fabric = { }), - extend = fabric.util.object.extend; - - /** - * Remove white filter class - * @class fabric.Image.filters.RemoveWhite - * @memberOf fabric.Image.filters - * @extends fabric.Image.filters.BaseFilter - * @see {@link fabric.Image.filters.RemoveWhite#initialize} for constructor definition - * @see {@link http://fabricjs.com/image-filters/|ImageFilters demo} - * @example - * var filter = new fabric.Image.filters.RemoveWhite({ - * threshold: 40, - * distance: 140 - * }); - * object.filters.push(filter); - * object.applyFilters(canvas.renderAll.bind(canvas)); - */ - fabric.Image.filters.RemoveWhite = fabric.util.createClass(fabric.Image.filters.BaseFilter, /** @lends fabric.Image.filters.RemoveWhite.prototype */ { - - /** - * Filter type - * @param {String} type - * @default - */ - type: 'RemoveWhite', - - /** - * Constructor - * @memberOf fabric.Image.filters.RemoveWhite.prototype - * @param {Object} [options] Options object - * @param {Number} [options.threshold=30] Threshold value - * @param {Number} [options.distance=20] Distance value - */ - initialize: function(options) { - options = options || { }; - this.threshold = options.threshold || 30; - this.distance = options.distance || 20; - }, - - /** - * Applies filter to canvas element - * @param {Object} canvasEl Canvas element to apply filter to - */ - applyTo: function(canvasEl) { - var context = canvasEl.getContext('2d'), - imageData = context.getImageData(0, 0, canvasEl.width, canvasEl.height), - data = imageData.data, - threshold = this.threshold, - distance = this.distance, - limit = 255 - threshold, - abs = Math.abs, - r, g, b; - - for (var i = 0, len = data.length; i < len; i += 4) { - r = data[i]; - g = data[i + 1]; - b = data[i + 2]; - - if (r > limit && - g > limit && - b > limit && - abs(r - g) < distance && - abs(r - b) < distance && - abs(g - b) < distance - ) { - data[i + 3] = 1; - } - } - - context.putImageData(imageData, 0, 0); - }, - - /** - * Returns object representation of an instance - * @return {Object} Object representation of an instance - */ - toObject: function() { - return extend(this.callSuper('toObject'), { - threshold: this.threshold, - distance: this.distance - }); - } - }); - - /** - * Returns filter instance from an object representation - * @static - * @param {Object} object Object to create an instance from - * @return {fabric.Image.filters.RemoveWhite} Instance of fabric.Image.filters.RemoveWhite - */ - fabric.Image.filters.RemoveWhite.fromObject = function(object) { - return new fabric.Image.filters.RemoveWhite(object); - }; - -})(typeof exports !== 'undefined' ? exports : this); - - -(function(global) { - - 'use strict'; - - var fabric = global.fabric || (global.fabric = { }); - - /** - * Sepia filter class - * @class fabric.Image.filters.Sepia - * @memberOf fabric.Image.filters - * @extends fabric.Image.filters.BaseFilter - * @see {@link http://fabricjs.com/image-filters/|ImageFilters demo} - * @example - * var filter = new fabric.Image.filters.Sepia(); - * object.filters.push(filter); - * object.applyFilters(canvas.renderAll.bind(canvas)); - */ - fabric.Image.filters.Sepia = fabric.util.createClass(fabric.Image.filters.BaseFilter, /** @lends fabric.Image.filters.Sepia.prototype */ { - - /** - * Filter type - * @param {String} type - * @default - */ - type: 'Sepia', - - /** - * Applies filter to canvas element - * @memberOf fabric.Image.filters.Sepia.prototype - * @param {Object} canvasEl Canvas element to apply filter to - */ - applyTo: function(canvasEl) { - var context = canvasEl.getContext('2d'), - imageData = context.getImageData(0, 0, canvasEl.width, canvasEl.height), - data = imageData.data, - iLen = data.length, i, avg; - - for (i = 0; i < iLen; i+=4) { - avg = 0.3 * data[i] + 0.59 * data[i + 1] + 0.11 * data[i + 2]; - data[i] = avg + 100; - data[i + 1] = avg + 50; - data[i + 2] = avg + 255; - } - - context.putImageData(imageData, 0, 0); - } - }); - - /** - * Returns filter instance from an object representation - * @static - * @return {fabric.Image.filters.Sepia} Instance of fabric.Image.filters.Sepia - */ - fabric.Image.filters.Sepia.fromObject = function() { - return new fabric.Image.filters.Sepia(); - }; - -})(typeof exports !== 'undefined' ? exports : this); - - -(function(global) { - - 'use strict'; - - var fabric = global.fabric || (global.fabric = { }); - - /** - * Sepia2 filter class - * @class fabric.Image.filters.Sepia2 - * @memberOf fabric.Image.filters - * @extends fabric.Image.filters.BaseFilter - * @see {@link http://fabricjs.com/image-filters/|ImageFilters demo} - * @example - * var filter = new fabric.Image.filters.Sepia2(); - * object.filters.push(filter); - * object.applyFilters(canvas.renderAll.bind(canvas)); - */ - fabric.Image.filters.Sepia2 = fabric.util.createClass(fabric.Image.filters.BaseFilter, /** @lends fabric.Image.filters.Sepia2.prototype */ { - - /** - * Filter type - * @param {String} type - * @default - */ - type: 'Sepia2', - - /** - * Applies filter to canvas element - * @memberOf fabric.Image.filters.Sepia.prototype - * @param {Object} canvasEl Canvas element to apply filter to - */ - applyTo: function(canvasEl) { - var context = canvasEl.getContext('2d'), - imageData = context.getImageData(0, 0, canvasEl.width, canvasEl.height), - data = imageData.data, - iLen = data.length, i, r, g, b; - - for (i = 0; i < iLen; i+=4) { - r = data[i]; - g = data[i + 1]; - b = data[i + 2]; - - data[i] = (r * 0.393 + g * 0.769 + b * 0.189 ) / 1.351; - data[i + 1] = (r * 0.349 + g * 0.686 + b * 0.168 ) / 1.203; - data[i + 2] = (r * 0.272 + g * 0.534 + b * 0.131 ) / 2.140; - } - - context.putImageData(imageData, 0, 0); - } - }); - - /** - * Returns filter instance from an object representation - * @static - * @return {fabric.Image.filters.Sepia2} Instance of fabric.Image.filters.Sepia2 - */ - fabric.Image.filters.Sepia2.fromObject = function() { - return new fabric.Image.filters.Sepia2(); - }; - -})(typeof exports !== 'undefined' ? exports : this); - - -(function(global) { - - 'use strict'; - - var fabric = global.fabric || (global.fabric = { }), - extend = fabric.util.object.extend; - - /** - * Tint filter class - * Adapted from https://github.com/mezzoblue/PaintbrushJS - * @class fabric.Image.filters.Tint - * @memberOf fabric.Image.filters - * @extends fabric.Image.filters.BaseFilter - * @see {@link fabric.Image.filters.Tint#initialize} for constructor definition - * @see {@link http://fabricjs.com/image-filters/|ImageFilters demo} - * @example - * var filter = new fabric.Image.filters.Tint({ - * color: '#3513B0', - * opacity: 0.5 - * }); - * object.filters.push(filter); - * object.applyFilters(canvas.renderAll.bind(canvas)); - * @example - * var filter = new fabric.Image.filters.Tint({ - * color: 'rgba(53, 21, 176, 0.5)' - * }); - * object.filters.push(filter); - * object.applyFilters(canvas.renderAll.bind(canvas)); - */ - fabric.Image.filters.Tint = fabric.util.createClass(fabric.Image.filters.BaseFilter, /** @lends fabric.Image.filters.Tint.prototype */ { - - /** - * Filter type - * @param {String} type - * @default - */ - type: 'Tint', - - /** - * Constructor - * @memberOf fabric.Image.filters.Tint.prototype - * @param {Object} [options] Options object - * @param {String} [options.color=#000000] Color to tint the image with - * @param {Number} [options.opacity] Opacity value that controls the tint effect's transparency (0..1) - */ - initialize: function(options) { - options = options || { }; - - this.color = options.color || '#000000'; - this.opacity = typeof options.opacity !== 'undefined' - ? options.opacity - : new fabric.Color(this.color).getAlpha(); - }, - - /** - * Applies filter to canvas element - * @param {Object} canvasEl Canvas element to apply filter to - */ - applyTo: function(canvasEl) { - var context = canvasEl.getContext('2d'), - imageData = context.getImageData(0, 0, canvasEl.width, canvasEl.height), - data = imageData.data, - iLen = data.length, i, - tintR, tintG, tintB, - r, g, b, alpha1, - source; - - source = new fabric.Color(this.color).getSource(); - - tintR = source[0] * this.opacity; - tintG = source[1] * this.opacity; - tintB = source[2] * this.opacity; - - alpha1 = 1 - this.opacity; - - for (i = 0; i < iLen; i+=4) { - r = data[i]; - g = data[i + 1]; - b = data[i + 2]; - - // alpha compositing - data[i] = tintR + r * alpha1; - data[i + 1] = tintG + g * alpha1; - data[i + 2] = tintB + b * alpha1; - } - - context.putImageData(imageData, 0, 0); - }, - - /** - * Returns object representation of an instance - * @return {Object} Object representation of an instance - */ - toObject: function() { - return extend(this.callSuper('toObject'), { - color: this.color, - opacity: this.opacity - }); - } - }); - - /** - * Returns filter instance from an object representation - * @static - * @param {Object} object Object to create an instance from - * @return {fabric.Image.filters.Tint} Instance of fabric.Image.filters.Tint - */ - fabric.Image.filters.Tint.fromObject = function(object) { - return new fabric.Image.filters.Tint(object); - }; - -})(typeof exports !== 'undefined' ? exports : this); - - -(function(global) { - - 'use strict'; - - var fabric = global.fabric || (global.fabric = { }), - extend = fabric.util.object.extend; - - /** - * Multiply filter class - * Adapted from http://www.laurenscorijn.com/articles/colormath-basics - * @class fabric.Image.filters.Multiply - * @memberOf fabric.Image.filters - * @extends fabric.Image.filters.BaseFilter - * @example - * var filter = new fabric.Image.filters.Multiply({ - * color: '#F0F' - * }); - * object.filters.push(filter); - * object.applyFilters(canvas.renderAll.bind(canvas)); - * @example - * var filter = new fabric.Image.filters.Multiply({ - * color: 'rgb(53, 21, 176)' - * }); - * object.filters.push(filter); - * object.applyFilters(canvas.renderAll.bind(canvas)); - */ - fabric.Image.filters.Multiply = fabric.util.createClass(fabric.Image.filters.BaseFilter, /** @lends fabric.Image.filters.Multiply.prototype */ { - - /** - * Filter type - * @param {String} type - * @default - */ - type: 'Multiply', - - /** - * Constructor - * @memberOf fabric.Image.filters.Multiply.prototype - * @param {Object} [options] Options object - * @param {String} [options.color=#000000] Color to multiply the image pixels with - */ - initialize: function(options) { - options = options || { }; - - this.color = options.color || '#000000'; - }, - - /** - * Applies filter to canvas element - * @param {Object} canvasEl Canvas element to apply filter to - */ - applyTo: function(canvasEl) { - var context = canvasEl.getContext('2d'), - imageData = context.getImageData(0, 0, canvasEl.width, canvasEl.height), - data = imageData.data, - iLen = data.length, i, - source; - - source = new fabric.Color(this.color).getSource(); - - for (i = 0; i < iLen; i+=4) { - data[i] *= source[0] / 255; - data[i + 1] *= source[1] / 255; - data[i + 2] *= source[2] / 255; - } - - context.putImageData(imageData, 0, 0); - }, - - /** - * Returns object representation of an instance - * @return {Object} Object representation of an instance - */ - toObject: function() { - return extend(this.callSuper('toObject'), { - color: this.color - }); - } - }); - - /** - * Returns filter instance from an object representation - * @static - * @param {Object} object Object to create an instance from - * @return {fabric.Image.filters.Multiply} Instance of fabric.Image.filters.Multiply - */ - fabric.Image.filters.Multiply.fromObject = function(object) { - return new fabric.Image.filters.Multiply(object); - }; - -})(typeof exports !== 'undefined' ? exports : this); - - -(function(global) { - 'use strict'; - - var fabric = global.fabric; - - /** - * Color Blend filter class - * @class fabric.Image.filter.Blend - * @memberOf fabric.Image.filters - * @extends fabric.Image.filters.BaseFilter - * @example - * var filter = new fabric.Image.filters.Blend({ - * color: '#000', - * mode: 'multiply' - * }); - * - * var filter = new fabric.Image.filters.Blend({ - * image: fabricImageObject, - * mode: 'multiply', - * alpha: 0.5 - * }); - - * object.filters.push(filter); - * object.applyFilters(canvas.renderAll.bind(canvas)); - */ - fabric.Image.filters.Blend = fabric.util.createClass({ - type: 'Blend', - - initialize: function(options) { - options = options || {}; - this.color = options.color || '#000'; - this.image = options.image || false; - this.mode = options.mode || 'multiply'; - this.alpha = options.alpha || 1; - }, - - applyTo: function(canvasEl) { - var context = canvasEl.getContext('2d'), - imageData = context.getImageData(0, 0, canvasEl.width, canvasEl.height), - data = imageData.data, - tr, tg, tb, - r, g, b, - _r, _g, _b, - source, - isImage = false; - - if (this.image) { - // Blend images - isImage = true; - - var _el = fabric.util.createCanvasElement(); - _el.width = this.image.width; - _el.height = this.image.height; - - var tmpCanvas = new fabric.StaticCanvas(_el); - tmpCanvas.add(this.image); - var context2 = tmpCanvas.getContext('2d'); - source = context2.getImageData(0, 0, tmpCanvas.width, tmpCanvas.height).data; - } - else { - // Blend color - source = new fabric.Color(this.color).getSource(); - - tr = source[0] * this.alpha; - tg = source[1] * this.alpha; - tb = source[2] * this.alpha; - } - - for (var i = 0, len = data.length; i < len; i += 4) { - - r = data[i]; - g = data[i + 1]; - b = data[i + 2]; - - if (isImage) { - tr = source[i] * this.alpha; - tg = source[i + 1] * this.alpha; - tb = source[i + 2] * this.alpha; - } - - switch (this.mode) { - case 'multiply': - data[i] = r * tr / 255; - data[i + 1] = g * tg / 255; - data[i + 2] = b * tb / 255; - break; - case 'screen': - data[i] = 1 - (1 - r) * (1 - tr); - data[i + 1] = 1 - (1 - g) * (1 - tg); - data[i + 2] = 1 - (1 - b) * (1 - tb); - break; - case 'add': - data[i] = Math.min(255, r + tr); - data[i + 1] = Math.min(255, g + tg); - data[i + 2] = Math.min(255, b + tb); - break; - case 'diff': - case 'difference': - data[i] = Math.abs(r - tr); - data[i + 1] = Math.abs(g - tg); - data[i + 2] = Math.abs(b - tb); - break; - case 'subtract': - _r = r - tr; - _g = g - tg; - _b = b - tb; - - data[i] = (_r < 0) ? 0 : _r; - data[i + 1] = (_g < 0) ? 0 : _g; - data[i + 2] = (_b < 0) ? 0 : _b; - break; - case 'darken': - data[i] = Math.min(r, tr); - data[i + 1] = Math.min(g, tg); - data[i + 2] = Math.min(b, tb); - break; - case 'lighten': - data[i] = Math.max(r, tr); - data[i + 1] = Math.max(g, tg); - data[i + 2] = Math.max(b, tb); - break; - } - } - - context.putImageData(imageData, 0, 0); - }, - - /** - * Returns object representation of an instance - * @return {Object} Object representation of an instance - */ - toObject: function() { - return { - color: this.color, - image: this.image, - mode: this.mode, - alpha: this.alpha - }; - } - }); - - fabric.Image.filters.Blend.fromObject = function(object) { - return new fabric.Image.filters.Blend(object); - }; -})(typeof exports !== 'undefined' ? exports : this); - - -(function(global) { - - 'use strict'; - - var fabric = global.fabric || (global.fabric = { }), pow = Math.pow, floor = Math.floor, - sqrt = Math.sqrt, abs = Math.abs, max = Math.max, round = Math.round, sin = Math.sin, - ceil = Math.ceil; - - /** - * Resize image filter class - * @class fabric.Image.filters.Resize - * @memberOf fabric.Image.filters - * @extends fabric.Image.filters.BaseFilter - * @see {@link http://fabricjs.com/image-filters/|ImageFilters demo} - * @example - * var filter = new fabric.Image.filters.Resize(); - * object.filters.push(filter); - * object.applyFilters(canvas.renderAll.bind(canvas)); - */ - fabric.Image.filters.Resize = fabric.util.createClass(fabric.Image.filters.BaseFilter, /** @lends fabric.Image.filters.Resize.prototype */ { - - /** - * Filter type - * @param {String} type - * @default - */ - type: 'Resize', - - /** - * Resize type - * @param {String} resizeType - * @default - */ - resizeType: 'hermite', - - /** - * Scale factor for resizing, x axis - * @param {Number} scaleX - * @default - */ - scaleX: 0, - - /** - * Scale factor for resizing, y axis - * @param {Number} scaleY - * @default - */ - scaleY: 0, - - /** - * LanczosLobes parameter for lanczos filter - * @param {Number} lanczosLobes - * @default - */ - lanczosLobes: 3, - - /** - * Applies filter to canvas element - * @memberOf fabric.Image.filters.Resize.prototype - * @param {Object} canvasEl Canvas element to apply filter to - */ - applyTo: function(canvasEl, scaleX, scaleY) { - - this.rcpScaleX = 1 / scaleX; - this.rcpScaleY = 1 / scaleY; - - var oW = canvasEl.width, oH = canvasEl.height, - dW = round(oW * scaleX), dH = round(oH * scaleY), - imageData; - - if (this.resizeType === 'sliceHack') { - imageData = this.sliceByTwo(canvasEl, oW, oH, dW, dH); - } - if (this.resizeType === 'hermite') { - imageData = this.hermiteFastResize(canvasEl, oW, oH, dW, dH); - } - if (this.resizeType === 'bilinear') { - imageData = this.bilinearFiltering(canvasEl, oW, oH, dW, dH); - } - if (this.resizeType === 'lanczos') { - imageData = this.lanczosResize(canvasEl, oW, oH, dW, dH); - } - canvasEl.width = dW; - canvasEl.height = dH; - canvasEl.getContext('2d').putImageData(imageData, 0, 0); - }, - - sliceByTwo: function(canvasEl, width, height, newWidth, newHeight) { - var context = canvasEl.getContext('2d'), imageData, - multW = 0.5, multH = 0.5, signW = 1, signH = 1, - doneW = false, doneH = false, stepW = width, stepH = height, - tmpCanvas = fabric.util.createCanvasElement(), - tmpCtx = tmpCanvas.getContext('2d'); - newWidth = floor(newWidth); - newHeight = floor(newHeight); - tmpCanvas.width = max(newWidth, width); - tmpCanvas.height = max(newHeight, height); - - if (newWidth > width) { - multW = 2; - signW = -1; - } - if (newHeight > height) { - multH = 2; - signH = -1; - } - imageData = context.getImageData(0, 0, width, height); - canvasEl.width = max(newWidth, width); - canvasEl.height = max(newHeight, height); - context.putImageData(imageData, 0, 0); - - while (!doneW || !doneH) { - width = stepW; - height = stepH; - if (newWidth * signW < floor(stepW * multW * signW)) { - stepW = floor(stepW * multW); - } - else { - stepW = newWidth; - doneW = true; - } - if (newHeight * signH < floor(stepH * multH * signH)) { - stepH = floor(stepH * multH); - } - else { - stepH = newHeight; - doneH = true; - } - imageData = context.getImageData(0, 0, width, height); - tmpCtx.putImageData(imageData, 0, 0); - context.clearRect(0, 0, stepW, stepH); - context.drawImage(tmpCanvas, 0, 0, width, height, 0, 0, stepW, stepH); - } - return context.getImageData(0, 0, newWidth, newHeight); - }, - - lanczosResize: function(canvasEl, oW, oH, dW, dH) { - - function lanczosCreate(lobes) { - return function(x) { - if (x > lobes) { - return 0; - } - x *= Math.PI; - if (abs(x) < 1e-16) { - return 1; - } - var xx = x / lobes; - return sin(x) * sin(xx) / x / xx; - }; - } - - function process(u) { - var v, i, weight, idx, a, red, green, - blue, alpha, fX, fY; - center.x = (u + 0.5) * ratioX; - icenter.x = floor(center.x); - for (v = 0; v < dH; v++) { - center.y = (v + 0.5) * ratioY; - icenter.y = floor(center.y); - a = 0, red = 0, green = 0, blue = 0, alpha = 0; - for (i = icenter.x - range2X; i <= icenter.x + range2X; i++) { - if (i < 0 || i >= oW) { - continue; - } - fX = floor(1000 * abs(i - center.x)); - if (!cacheLanc[fX]) { - cacheLanc[fX] = { }; - } - for (var j = icenter.y - range2Y; j <= icenter.y + range2Y; j++) { - if (j < 0 || j >= oH) { - continue; - } - fY = floor(1000 * abs(j - center.y)); - if (!cacheLanc[fX][fY]) { - cacheLanc[fX][fY] = lanczos(sqrt(pow(fX * rcpRatioX, 2) + pow(fY * rcpRatioY, 2)) / 1000); - } - weight = cacheLanc[fX][fY]; - if (weight > 0) { - idx = (j * oW + i) * 4; - a += weight; - red += weight * srcData[idx]; - green += weight * srcData[idx + 1]; - blue += weight * srcData[idx + 2]; - alpha += weight * srcData[idx + 3]; - } - } - } - idx = (v * dW + u) * 4; - destData[idx] = red / a; - destData[idx + 1] = green / a; - destData[idx + 2] = blue / a; - destData[idx + 3] = alpha / a; - } - - if (++u < dW) { - return process(u); - } - else { - return destImg; - } - } - - var context = canvasEl.getContext('2d'), - srcImg = context.getImageData(0, 0, oW, oH), - destImg = context.getImageData(0, 0, dW, dH), - srcData = srcImg.data, destData = destImg.data, - lanczos = lanczosCreate(this.lanczosLobes), - ratioX = this.rcpScaleX, ratioY = this.rcpScaleY, - rcpRatioX = 2 / this.rcpScaleX, rcpRatioY = 2 / this.rcpScaleY, - range2X = ceil(ratioX * this.lanczosLobes / 2), - range2Y = ceil(ratioY * this.lanczosLobes / 2), - cacheLanc = { }, center = { }, icenter = { }; - - return process(0); - }, - - bilinearFiltering: function(canvasEl, w, h, w2, h2) { - var a, b, c, d, x, y, i, j, xDiff, yDiff, chnl, - color, offset = 0, origPix, ratioX = this.rcpScaleX, - ratioY = this.rcpScaleY, context = canvasEl.getContext('2d'), - w4 = 4 * (w - 1), img = context.getImageData(0, 0, w, h), - pixels = img.data, destImage = context.getImageData(0, 0, w2, h2), - destPixels = destImage.data; - for (i = 0; i < h2; i++) { - for (j = 0; j < w2; j++) { - x = floor(ratioX * j); - y = floor(ratioY * i); - xDiff = ratioX * j - x; - yDiff = ratioY * i - y; - origPix = 4 * (y * w + x); - - for (chnl = 0; chnl < 4; chnl++) { - a = pixels[origPix + chnl]; - b = pixels[origPix + 4 + chnl]; - c = pixels[origPix + w4 + chnl]; - d = pixels[origPix + w4 + 4 + chnl]; - color = a * (1 - xDiff) * (1 - yDiff) + b * xDiff * (1 - yDiff) + - c * yDiff * (1 - xDiff) + d * xDiff * yDiff; - destPixels[offset++] = color; - } - } - } - return destImage; - }, - - hermiteFastResize: function(canvasEl, oW, oH, dW, dH) { - var ratioW = this.rcpScaleX, ratioH = this.rcpScaleY, - ratioWHalf = ceil(ratioW / 2), - ratioHHalf = ceil(ratioH / 2), - context = canvasEl.getContext('2d'), - img = context.getImageData(0, 0, oW, oH), data = img.data, - img2 = context.getImageData(0, 0, dW, dH), data2 = img2.data; - for (var j = 0; j < dH; j++) { - for (var i = 0; i < dW; i++) { - var x2 = (i + j * dW) * 4, weight = 0, weights = 0, weightsAlpha = 0, - gxR = 0, gxG = 0, gxB = 0, gxA = 0, centerY = (j + 0.5) * ratioH; - for (var yy = floor(j * ratioH); yy < (j + 1) * ratioH; yy++) { - var dy = abs(centerY - (yy + 0.5)) / ratioHHalf, - centerX = (i + 0.5) * ratioW, w0 = dy * dy; - for (var xx = floor(i * ratioW); xx < (i + 1) * ratioW; xx++) { - var dx = abs(centerX - (xx + 0.5)) / ratioWHalf, - w = sqrt(w0 + dx * dx); - /*jshint maxdepth:5 */ - if (w > 1 && w < -1) { - continue; - } - //hermite filter - weight = 2 * w * w * w - 3 * w * w + 1; - if (weight > 0) { - dx = 4 * (xx + yy * oW); - //alpha - gxA += weight * data[dx + 3]; - weightsAlpha += weight; - //colors - /*jshint maxdepth:6 */ - if (data[dx + 3] < 255) { - weight = weight * data[dx + 3] / 250; - } - /*jshint maxdepth:5 */ - gxR += weight * data[dx]; - gxG += weight * data[dx + 1]; - gxB += weight * data[dx + 2]; - weights += weight; - } - /*jshint maxdepth:4 */ - } - } - data2[x2] = gxR / weights; - data2[x2 + 1] = gxG / weights; - data2[x2 + 2] = gxB / weights; - data2[x2 + 3] = gxA / weightsAlpha; - } - } - return img2; - }, - - /** - * Returns object representation of an instance - * @return {Object} Object representation of an instance - */ - toObject: function() { - return { - type: this.type, - scaleX: this.scaleX, - scaley: this.scaleY, - resizeType: this.resizeType, - lanczosLobes: this.lanczosLobes - }; - } - }); - - /** - * Returns filter instance from an object representation - * @static - * @return {fabric.Image.filters.Resize} Instance of fabric.Image.filters.Resize - */ - fabric.Image.filters.Resize.fromObject = function() { - return new fabric.Image.filters.Resize(); - }; - -})(typeof exports !== 'undefined' ? exports : this); - - -(function(global) { - - 'use strict'; - - var fabric = global.fabric || (global.fabric = { }), - extend = fabric.util.object.extend, - clone = fabric.util.object.clone, - toFixed = fabric.util.toFixed, - supportsLineDash = fabric.StaticCanvas.supports('setLineDash'); - - if (fabric.Text) { - fabric.warn('fabric.Text is already defined'); - return; - } - - var stateProperties = fabric.Object.prototype.stateProperties.concat(); - stateProperties.push( - 'fontFamily', - 'fontWeight', - 'fontSize', - 'text', - 'textDecoration', - 'textAlign', - 'fontStyle', - 'lineHeight', - 'textBackgroundColor' - ); - - /** - * Text class - * @class fabric.Text - * @extends fabric.Object - * @return {fabric.Text} thisArg - * @tutorial {@link http://fabricjs.com/fabric-intro-part-2/#text} - * @see {@link fabric.Text#initialize} for constructor definition - */ - fabric.Text = fabric.util.createClass(fabric.Object, /** @lends fabric.Text.prototype */ { - - /** - * Properties which when set cause object to change dimensions - * @type Object - * @private - */ - _dimensionAffectingProps: { - fontSize: true, - fontWeight: true, - fontFamily: true, - fontStyle: true, - lineHeight: true, - stroke: true, - strokeWidth: true, - text: true, - textAlign: true - }, - - /** - * @private - */ - _reNewline: /\r?\n/, - - /** - * Retrieves object's fontSize - * @method getFontSize - * @memberOf fabric.Text.prototype - * @return {String} Font size (in pixels) - */ - - /** - * Sets object's fontSize - * @method setFontSize - * @memberOf fabric.Text.prototype - * @param {Number} fontSize Font size (in pixels) - * @return {fabric.Text} - * @chainable - */ - - /** - * Retrieves object's fontWeight - * @method getFontWeight - * @memberOf fabric.Text.prototype - * @return {(String|Number)} Font weight - */ - - /** - * Sets object's fontWeight - * @method setFontWeight - * @memberOf fabric.Text.prototype - * @param {(Number|String)} fontWeight Font weight - * @return {fabric.Text} - * @chainable - */ - - /** - * Retrieves object's fontFamily - * @method getFontFamily - * @memberOf fabric.Text.prototype - * @return {String} Font family - */ - - /** - * Sets object's fontFamily - * @method setFontFamily - * @memberOf fabric.Text.prototype - * @param {String} fontFamily Font family - * @return {fabric.Text} - * @chainable - */ - - /** - * Retrieves object's text - * @method getText - * @memberOf fabric.Text.prototype - * @return {String} text - */ - - /** - * Sets object's text - * @method setText - * @memberOf fabric.Text.prototype - * @param {String} text Text - * @return {fabric.Text} - * @chainable - */ - - /** - * Retrieves object's textDecoration - * @method getTextDecoration - * @memberOf fabric.Text.prototype - * @return {String} Text decoration - */ - - /** - * Sets object's textDecoration - * @method setTextDecoration - * @memberOf fabric.Text.prototype - * @param {String} textDecoration Text decoration - * @return {fabric.Text} - * @chainable - */ - - /** - * Retrieves object's fontStyle - * @method getFontStyle - * @memberOf fabric.Text.prototype - * @return {String} Font style - */ - - /** - * Sets object's fontStyle - * @method setFontStyle - * @memberOf fabric.Text.prototype - * @param {String} fontStyle Font style - * @return {fabric.Text} - * @chainable - */ - - /** - * Retrieves object's lineHeight - * @method getLineHeight - * @memberOf fabric.Text.prototype - * @return {Number} Line height - */ - - /** - * Sets object's lineHeight - * @method setLineHeight - * @memberOf fabric.Text.prototype - * @param {Number} lineHeight Line height - * @return {fabric.Text} - * @chainable - */ - - /** - * Retrieves object's textAlign - * @method getTextAlign - * @memberOf fabric.Text.prototype - * @return {String} Text alignment - */ - - /** - * Sets object's textAlign - * @method setTextAlign - * @memberOf fabric.Text.prototype - * @param {String} textAlign Text alignment - * @return {fabric.Text} - * @chainable - */ - - /** - * Retrieves object's textBackgroundColor - * @method getTextBackgroundColor - * @memberOf fabric.Text.prototype - * @return {String} Text background color - */ - - /** - * Sets object's textBackgroundColor - * @method setTextBackgroundColor - * @memberOf fabric.Text.prototype - * @param {String} textBackgroundColor Text background color - * @return {fabric.Text} - * @chainable - */ - - /** - * Type of an object - * @type String - * @default - */ - type: 'text', - - /** - * Font size (in pixels) - * @type Number - * @default - */ - fontSize: 40, - - /** - * Font weight (e.g. bold, normal, 400, 600, 800) - * @type {(Number|String)} - * @default - */ - fontWeight: 'normal', - - /** - * Font family - * @type String - * @default - */ - fontFamily: 'Times New Roman', - - /** - * Text decoration Possible values: "", "underline", "overline" or "line-through". - * @type String - * @default - */ - textDecoration: '', - - /** - * Text alignment. Possible values: "left", "center", or "right". - * @type String - * @default - */ - textAlign: 'left', - - /** - * Font style . Possible values: "", "normal", "italic" or "oblique". - * @type String - * @default - */ - fontStyle: '', - - /** - * Line height - * @type Number - * @default - */ - lineHeight: 1.16, - - /** - * Background color of text lines - * @type String - * @default - */ - textBackgroundColor: '', - - /** - * List of properties to consider when checking if - * state of an object is changed ({@link fabric.Object#hasStateChanged}) - * as well as for history (undo/redo) purposes - * @type Array - */ - stateProperties: stateProperties, - - /** - * When defined, an object is rendered via stroke and this property specifies its color. - * Backwards incompatibility note: This property was named "strokeStyle" until v1.1.6 - * @type String - * @default - */ - stroke: null, - - /** - * Shadow object representing shadow of this shape. - * Backwards incompatibility note: This property was named "textShadow" (String) until v1.2.11 - * @type fabric.Shadow - * @default - */ - shadow: null, - - /** - * @private - */ - _fontSizeFraction: 0.25, - - /** - * Text Line proportion to font Size (in pixels) - * @type Number - * @default - */ - _fontSizeMult: 1.13, - - /** - * Constructor - * @param {String} text Text string - * @param {Object} [options] Options object - * @return {fabric.Text} thisArg - */ - initialize: function(text, options) { - options = options || { }; - this.text = text; - this.__skipDimension = true; - this.setOptions(options); - this.__skipDimension = false; - this._initDimensions(); - }, - - /** - * Renders text object on offscreen canvas, so that it would get dimensions - * @private - */ - _initDimensions: function(ctx) { - if (this.__skipDimension) { - return; - } - if (!ctx) { - ctx = fabric.util.createCanvasElement().getContext('2d'); - this._setTextStyles(ctx); - } - this._textLines = this.text.split(this._reNewline); - this._clearCache(); - var currentTextAlign = this.textAlign; - this.textAlign = 'left'; - this.width = this._getTextWidth(ctx); - this.textAlign = currentTextAlign; - this.height = this._getTextHeight(ctx); - }, - - /** - * Returns string representation of an instance - * @return {String} String representation of text object - */ - toString: function() { - return '#'; - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - _render: function(ctx) { - - this.clipTo && fabric.util.clipContext(this, ctx); - - this._renderTextBackground(ctx); - this._renderText(ctx); - - this._renderTextDecoration(ctx); - this.clipTo && ctx.restore(); - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - _renderText: function(ctx) { - ctx.save(); - this._translateForTextAlign(ctx); - this._setOpacity(ctx); - this._setShadow(ctx); - this._setupCompositeOperation(ctx); - this._renderTextFill(ctx); - this._renderTextStroke(ctx); - this._restoreCompositeOperation(ctx); - this._removeShadow(ctx); - ctx.restore(); - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - _translateForTextAlign: function(ctx) { - if (this.textAlign !== 'left' && this.textAlign !== 'justify') { - ctx.translate(this.textAlign === 'center' ? (this.width / 2) : this.width, 0); - } - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - _setTextStyles: function(ctx) { - ctx.textBaseline = 'alphabetic'; - if (!this.skipTextAlign) { - ctx.textAlign = this.textAlign; - } - ctx.font = this._getFontDeclaration(); - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - * @return {Number} Height of fabric.Text object - */ - _getTextHeight: function() { - return this._textLines.length * this._getHeightOfLine(); - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - * @return {Number} Maximum width of fabric.Text object - */ - _getTextWidth: function(ctx) { - var maxWidth = this._getLineWidth(ctx, 0); - - for (var i = 1, len = this._textLines.length; i < len; i++) { - var currentLineWidth = this._getLineWidth(ctx, i); - if (currentLineWidth > maxWidth) { - maxWidth = currentLineWidth; - } - } - return maxWidth; - }, - - /** - * @private - * @param {String} method Method name ("fillText" or "strokeText") - * @param {CanvasRenderingContext2D} ctx Context to render on - * @param {String} chars Chars to render - * @param {Number} left Left position of text - * @param {Number} top Top position of text - */ - _renderChars: function(method, ctx, chars, left, top) { - ctx[method](chars, left, top); - }, - - /** - * @private - * @param {String} method Method name ("fillText" or "strokeText") - * @param {CanvasRenderingContext2D} ctx Context to render on - * @param {String} line Text to render - * @param {Number} left Left position of text - * @param {Number} top Top position of text - * @param {Number} lineIndex Index of a line in a text - */ - _renderTextLine: function(method, ctx, line, left, top, lineIndex) { - // lift the line by quarter of fontSize - top -= this.fontSize * this._fontSizeFraction; - - // short-circuit - if (this.textAlign !== 'justify') { - this._renderChars(method, ctx, line, left, top, lineIndex); - return; - } - - var lineWidth = this._getLineWidth(ctx, lineIndex), - totalWidth = this.width; - if (totalWidth >= lineWidth) { - // stretch the line - var words = line.split(/\s+/), - wordsWidth = this._getWidthOfWords(ctx, line, lineIndex), - widthDiff = totalWidth - wordsWidth, - numSpaces = words.length - 1, - spaceWidth = widthDiff / numSpaces, - leftOffset = 0; - - for (var i = 0, len = words.length; i < len; i++) { - this._renderChars(method, ctx, words[i], left + leftOffset, top, lineIndex); - leftOffset += ctx.measureText(words[i]).width + spaceWidth; - } - } - else { - this._renderChars(method, ctx, line, left, top, lineIndex); - } - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - * @param {Number} line - */ - _getWidthOfWords: function (ctx, line) { - return ctx.measureText(line.replace(/\s+/g, '')).width; - }, - - /** - * @private - * @return {Number} Left offset - */ - _getLeftOffset: function() { - return -this.width / 2; - }, - - /** - * @private - * @return {Number} Top offset - */ - _getTopOffset: function() { - return -this.height / 2; - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - _renderTextFill: function(ctx) { - if (!this.fill && !this._skipFillStrokeCheck) { - return; - } - - var lineHeights = 0; - - for (var i = 0, len = this._textLines.length; i < len; i++) { - var heightOfLine = this._getHeightOfLine(ctx, i), - maxHeight = heightOfLine / this.lineHeight; - - this._renderTextLine( - 'fillText', - ctx, - this._textLines[i], - this._getLeftOffset(), - this._getTopOffset() + lineHeights + maxHeight, - i - ); - lineHeights += heightOfLine; - } - if (this.shadow && !this.shadow.affectStroke) { - this._removeShadow(ctx); - } - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - _renderTextStroke: function(ctx) { - if ((!this.stroke || this.strokeWidth === 0) && !this._skipFillStrokeCheck) { - return; - } - - var lineHeights = 0; - - ctx.save(); - - if (this.strokeDashArray) { - // Spec requires the concatenation of two copies the dash list when the number of elements is odd - if (1 & this.strokeDashArray.length) { - this.strokeDashArray.push.apply(this.strokeDashArray, this.strokeDashArray); - } - supportsLineDash && ctx.setLineDash(this.strokeDashArray); - } - - ctx.beginPath(); - for (var i = 0, len = this._textLines.length; i < len; i++) { - var heightOfLine = this._getHeightOfLine(ctx, i), - maxHeight = heightOfLine / this.lineHeight; - - this._renderTextLine( - 'strokeText', - ctx, - this._textLines[i], - this._getLeftOffset(), - this._getTopOffset() + lineHeights + maxHeight, - i - ); - lineHeights += heightOfLine; - } - ctx.closePath(); - ctx.restore(); - }, - - _getHeightOfLine: function() { - return this.fontSize * this._fontSizeMult * this.lineHeight; - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - * @param {Array} textLines Array of all text lines - */ - _renderTextBackground: function(ctx) { - this._renderTextBoxBackground(ctx); - this._renderTextLinesBackground(ctx); - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - _renderTextBoxBackground: function(ctx) { - if (!this.backgroundColor) { - return; - } - - ctx.save(); - ctx.fillStyle = this.backgroundColor; - - ctx.fillRect( - this._getLeftOffset(), - this._getTopOffset(), - this.width, - this.height - ); - - ctx.restore(); - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - _renderTextLinesBackground: function(ctx) { - var lineTopOffset = 0, heightOfLine = this._getHeightOfLine(); - if (!this.textBackgroundColor) { - return; - } - - ctx.save(); - ctx.fillStyle = this.textBackgroundColor; - - for (var i = 0, len = this._textLines.length; i < len; i++) { - - if (this._textLines[i] !== '') { - - var lineWidth = this._getLineWidth(ctx, i), - lineLeftOffset = this._getLineLeftOffset(lineWidth); - - ctx.fillRect( - this._getLeftOffset() + lineLeftOffset, - this._getTopOffset() + lineTopOffset, - lineWidth, - this.fontSize * this._fontSizeMult - ); - } - lineTopOffset += heightOfLine; - } - ctx.restore(); - }, - - /** - * @private - * @param {Number} lineWidth Width of text line - * @return {Number} Line left offset - */ - _getLineLeftOffset: function(lineWidth) { - if (this.textAlign === 'center') { - return (this.width - lineWidth) / 2; - } - if (this.textAlign === 'right') { - return this.width - lineWidth; - } - return 0; - }, - - /** - * @private - */ - _clearCache: function() { - this.__lineWidths = [ ]; - this.__lineHeights = [ ]; - this.__lineOffsets = [ ]; - }, - - /** - * @private - */ - _shouldClearCache: function() { - var shouldClear = false; - for (var prop in this._dimensionAffectingProps) { - if (this['__' + prop] !== this[prop]) { - this['__' + prop] = this[prop]; - shouldClear = true; - } - } - return shouldClear; - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - * @return {Number} Line width - */ - _getLineWidth: function(ctx, lineIndex) { - if (this.__lineWidths[lineIndex]) { - return this.__lineWidths[lineIndex]; - } - this.__lineWidths[lineIndex] = ctx.measureText(this._textLines[lineIndex]).width; - return this.__lineWidths[lineIndex]; - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - _renderTextDecoration: function(ctx) { - if (!this.textDecoration) { - return; - } - - var halfOfVerticalBox = this.height / 2, - _this = this, offsets = []; - - /** @ignore */ - function renderLinesAtOffset(offsets) { - var i, lineHeight = 0, len, j, oLen; - for (i = 0, len = _this._textLines.length; i < len; i++) { - - var lineWidth = _this._getLineWidth(ctx, i), - lineLeftOffset = _this._getLineLeftOffset(lineWidth), - heightOfLine = _this._getHeightOfLine(ctx, i); - - for (j = 0, oLen = offsets.length; j < oLen; j++) { - ctx.fillRect( - _this._getLeftOffset() + lineLeftOffset, - lineHeight + (_this._fontSizeMult - 1 + offsets[j] ) * _this.fontSize - halfOfVerticalBox, - lineWidth, - _this.fontSize / 15); - } - lineHeight += heightOfLine; - } - } - - if (this.textDecoration.indexOf('underline') > -1) { - offsets.push(0.85); // 1 - 3/16 - } - if (this.textDecoration.indexOf('line-through') > -1) { - offsets.push(0.43); - } - if (this.textDecoration.indexOf('overline') > -1) { - offsets.push(-0.12); - } - - if (offsets.length > 0) { - renderLinesAtOffset(offsets); - } - }, - - /** - * @private - */ - _getFontDeclaration: function() { - return [ - // node-canvas needs "weight style", while browsers need "style weight" - (fabric.isLikelyNode ? this.fontWeight : this.fontStyle), - (fabric.isLikelyNode ? this.fontStyle : this.fontWeight), - this.fontSize + 'px', - (fabric.isLikelyNode ? ('"' + this.fontFamily + '"') : this.fontFamily) - ].join(' '); - }, - - /** - * Renders text instance on a specified context - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - render: function(ctx, noTransform) { - // do not render if object is not visible - if (!this.visible) { - return; - } - - ctx.save(); - this._setTextStyles(ctx); - - if (this._shouldClearCache()) { - this._initDimensions(ctx); - } - if (!noTransform) { - this.transform(ctx); - } - this._setStrokeStyles(ctx); - this._setFillStyles(ctx); - if (this.transformMatrix) { - ctx.transform.apply(ctx, this.transformMatrix); - } - if (this.group && this.group.type === 'path-group') { - ctx.translate(this.left, this.top); - } - this._render(ctx); - ctx.restore(); - }, - - /** - * Returns object representation of an instance - * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output - * @return {Object} Object representation of an instance - */ - toObject: function(propertiesToInclude) { - var object = extend(this.callSuper('toObject', propertiesToInclude), { - text: this.text, - fontSize: this.fontSize, - fontWeight: this.fontWeight, - fontFamily: this.fontFamily, - fontStyle: this.fontStyle, - lineHeight: this.lineHeight, - textDecoration: this.textDecoration, - textAlign: this.textAlign, - textBackgroundColor: this.textBackgroundColor - }); - if (!this.includeDefaultValues) { - this._removeDefaultValues(object); - } - return object; - }, - - /* _TO_SVG_START_ */ - /** - * Returns SVG representation of an instance - * @param {Function} [reviver] Method for further parsing of svg representation. - * @return {String} svg representation of an instance - */ - toSVG: function(reviver) { - var markup = this._createBaseSVGMarkup(), - offsets = this._getSVGLeftTopOffsets(this.ctx), - textAndBg = this._getSVGTextAndBg(offsets.textTop, offsets.textLeft); - this._wrapSVGTextAndBg(markup, textAndBg); - - return reviver ? reviver(markup.join('')) : markup.join(''); - }, - - /** - * @private - */ - _getSVGLeftTopOffsets: function(ctx) { - var lineTop = this._getHeightOfLine(ctx, 0), - textLeft = -this.width / 2, - textTop = 0; - - return { - textLeft: textLeft + (this.group && this.group.type === 'path-group' ? this.left : 0), - textTop: textTop + (this.group && this.group.type === 'path-group' ? -this.top : 0), - lineTop: lineTop - }; - }, - - /** - * @private - */ - _wrapSVGTextAndBg: function(markup, textAndBg) { - markup.push( - '\t\n', - textAndBg.textBgRects.join(''), - '\t\t', - textAndBg.textSpans.join(''), - '\n', - '\t\n' - ); - }, - - /** - * @private - * @param {Number} textTopOffset Text top offset - * @param {Number} textLeftOffset Text left offset - * @return {Object} - */ - _getSVGTextAndBg: function(textTopOffset, textLeftOffset) { - var textSpans = [ ], - textBgRects = [ ], - height = 0; - // bounding-box background - this._setSVGBg(textBgRects); - - // text and text-background - for (var i = 0, len = this._textLines.length; i < len; i++) { - if (this.textBackgroundColor) { - this._setSVGTextLineBg(textBgRects, i, textLeftOffset, textTopOffset, height); - } - this._setSVGTextLineText(i, textSpans, height, textLeftOffset, textTopOffset, textBgRects); - height += this._getHeightOfLine(this.ctx, i); - } - - return { - textSpans: textSpans, - textBgRects: textBgRects - }; - }, - - _setSVGTextLineText: function(i, textSpans, height, textLeftOffset, textTopOffset) { - var yPos = this.fontSize * (this._fontSizeMult - this._fontSizeFraction) - - textTopOffset + height - this.height / 2; - textSpans.push( - ' elements since setting opacity - // on containing one doesn't work in Illustrator - this._getFillAttributes(this.fill), '>', - fabric.util.string.escapeXml(this._textLines[i]), - '' - ); - }, - - _setSVGTextLineBg: function(textBgRects, i, textLeftOffset, textTopOffset, height) { - textBgRects.push( - '\t\t\n'); - }, - - _setSVGBg: function(textBgRects) { - if (this.backgroundColor) { - textBgRects.push( - '\t\t\n'); - } - }, - - /** - * Adobe Illustrator (at least CS5) is unable to render rgba()-based fill values - * we work around it by "moving" alpha channel into opacity attribute and setting fill's alpha to 1 - * - * @private - * @param {Any} value - * @return {String} - */ - _getFillAttributes: function(value) { - var fillColor = (value && typeof value === 'string') ? new fabric.Color(value) : ''; - if (!fillColor || !fillColor.getSource() || fillColor.getAlpha() === 1) { - return 'fill="' + value + '"'; - } - return 'opacity="' + fillColor.getAlpha() + '" fill="' + fillColor.setAlpha(1).toRgb() + '"'; - }, - /* _TO_SVG_END_ */ - - /** - * Sets specified property to a specified value - * @param {String} key - * @param {Any} value - * @return {fabric.Text} thisArg - * @chainable - */ - _set: function(key, value) { - this.callSuper('_set', key, value); - - if (key in this._dimensionAffectingProps) { - this._initDimensions(); - this.setCoords(); - } - }, - - /** - * Returns complexity of an instance - * @return {Number} complexity - */ - complexity: function() { - return 1; - } - }); - - /* _FROM_SVG_START_ */ - /** - * List of attribute names to account for when parsing SVG element (used by {@link fabric.Text.fromElement}) - * @static - * @memberOf fabric.Text - * @see: http://www.w3.org/TR/SVG/text.html#TextElement - */ - fabric.Text.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat( - 'x y dx dy font-family font-style font-weight font-size text-decoration text-anchor'.split(' ')); - - /** - * Default SVG font size - * @static - * @memberOf fabric.Text - */ - fabric.Text.DEFAULT_SVG_FONT_SIZE = 16; - - /** - * Returns fabric.Text instance from an SVG element (not yet implemented) - * @static - * @memberOf fabric.Text - * @param {SVGElement} element Element to parse - * @param {Object} [options] Options object - * @return {fabric.Text} Instance of fabric.Text - */ - fabric.Text.fromElement = function(element, options) { - if (!element) { - return null; - } - - var parsedAttributes = fabric.parseAttributes(element, fabric.Text.ATTRIBUTE_NAMES); - options = fabric.util.object.extend((options ? fabric.util.object.clone(options) : { }), parsedAttributes); - - options.top = options.top || 0; - options.left = options.left || 0; - if ('dx' in parsedAttributes) { - options.left += parsedAttributes.dx; - } - if ('dy' in parsedAttributes) { - options.top += parsedAttributes.dy; - } - if (!('fontSize' in options)) { - options.fontSize = fabric.Text.DEFAULT_SVG_FONT_SIZE; - } - - if (!options.originX) { - options.originX = 'left'; - } - var textContent = element.textContent.replace(/^\s+|\s+$|\n+/g, '').replace(/\s+/g, ' '), - text = new fabric.Text(textContent, options), - /* - Adjust positioning: - x/y attributes in SVG correspond to the bottom-left corner of text bounding box - top/left properties in Fabric correspond to center point of text bounding box - */ - offX = 0; - - if (text.originX === 'left') { - offX = text.getWidth() / 2; - } - if (text.originX === 'right') { - offX = -text.getWidth() / 2; - } - text.set({ - left: text.getLeft() + offX, - top: text.getTop() - text.getHeight() / 2 + text.fontSize * (0.18 + text._fontSizeFraction) /* 0.3 is the old lineHeight */ - }); - - return text; - }; - /* _FROM_SVG_END_ */ - - /** - * Returns fabric.Text instance from an object representation - * @static - * @memberOf fabric.Text - * @param {Object} object Object to create an instance from - * @return {fabric.Text} Instance of fabric.Text - */ - fabric.Text.fromObject = function(object) { - return new fabric.Text(object.text, clone(object)); - }; - - fabric.util.createAccessors(fabric.Text); - -})(typeof exports !== 'undefined' ? exports : this); - - -(function() { - - var clone = fabric.util.object.clone; - - /** - * IText class (introduced in v1.4) Events are also fired with "text:" - * prefix when observing canvas. - * @class fabric.IText - * @extends fabric.Text - * @mixes fabric.Observable - * - * @fires changed - * @fires selection:changed - * @fires editing:entered - * @fires editing:exited - * - * @return {fabric.IText} thisArg - * @see {@link fabric.IText#initialize} for constructor definition - * - *

Supported key combinations:

- *
-   *   Move cursor:                    left, right, up, down
-   *   Select character:               shift + left, shift + right
-   *   Select text vertically:         shift + up, shift + down
-   *   Move cursor by word:            alt + left, alt + right
-   *   Select words:                   shift + alt + left, shift + alt + right
-   *   Move cursor to line start/end:  cmd + left, cmd + right or home, end
-   *   Select till start/end of line:  cmd + shift + left, cmd + shift + right or shift + home, shift + end
-   *   Jump to start/end of text:      cmd + up, cmd + down
-   *   Select till start/end of text:  cmd + shift + up, cmd + shift + down or shift + pgUp, shift + pgDown
-   *   Delete character:               backspace
-   *   Delete word:                    alt + backspace
-   *   Delete line:                    cmd + backspace
-   *   Forward delete:                 delete
-   *   Copy text:                      ctrl/cmd + c
-   *   Paste text:                     ctrl/cmd + v
-   *   Cut text:                       ctrl/cmd + x
-   *   Select entire text:             ctrl/cmd + a
-   *   Quit editing                    tab or esc
-   * 
- * - *

Supported mouse/touch combination

- *
-   *   Position cursor:                click/touch
-   *   Create selection:               click/touch & drag
-   *   Create selection:               click & shift + click
-   *   Select word:                    double click
-   *   Select line:                    triple click
-   * 
- */ - fabric.IText = fabric.util.createClass(fabric.Text, fabric.Observable, /** @lends fabric.IText.prototype */ { - - /** - * Type of an object - * @type String - * @default - */ - type: 'i-text', - - /** - * Index where text selection starts (or where cursor is when there is no selection) - * @type Nubmer - * @default - */ - selectionStart: 0, - - /** - * Index where text selection ends - * @type Nubmer - * @default - */ - selectionEnd: 0, - - /** - * Color of text selection - * @type String - * @default - */ - selectionColor: 'rgba(17,119,255,0.3)', - - /** - * Indicates whether text is in editing mode - * @type Boolean - * @default - */ - isEditing: false, - - /** - * Indicates whether a text can be edited - * @type Boolean - * @default - */ - editable: true, - - /** - * Border color of text object while it's in editing mode - * @type String - * @default - */ - editingBorderColor: 'rgba(102,153,255,0.25)', - - /** - * Width of cursor (in px) - * @type Number - * @default - */ - cursorWidth: 2, - - /** - * Color of default cursor (when not overwritten by character style) - * @type String - * @default - */ - cursorColor: '#333', - - /** - * Delay between cursor blink (in ms) - * @type Number - * @default - */ - cursorDelay: 1000, - - /** - * Duration of cursor fadein (in ms) - * @type Number - * @default - */ - cursorDuration: 600, - - /** - * Object containing character styles - * (where top-level properties corresponds to line number and 2nd-level properties -- to char number in a line) - * @type Object - * @default - */ - styles: null, - - /** - * Indicates whether internal text char widths can be cached - * @type Boolean - * @default - */ - caching: true, - - /** - * @private - * @type Boolean - * @default - */ - _skipFillStrokeCheck: false, - - /** - * @private - */ - _reSpace: /\s|\n/, - - /** - * @private - */ - _currentCursorOpacity: 0, - - /** - * @private - */ - _selectionDirection: null, - - /** - * @private - */ - _abortCursorAnimation: false, - - /** - * @private - */ - _charWidthsCache: { }, - - /** - * Constructor - * @param {String} text Text string - * @param {Object} [options] Options object - * @return {fabric.IText} thisArg - */ - initialize: function(text, options) { - this.styles = options ? (options.styles || { }) : { }; - this.callSuper('initialize', text, options); - this.initBehavior(); - }, - - /** - * @private - */ - _clearCache: function() { - this.callSuper('_clearCache'); - this.__maxFontHeights = [ ]; - this.__widthOfSpace = [ ]; - }, - - /** - * Returns true if object has no styling - */ - isEmptyStyles: function() { - if (!this.styles) { - return true; - } - var obj = this.styles; - - for (var p1 in obj) { - for (var p2 in obj[p1]) { - /*jshint unused:false */ - for (var p3 in obj[p1][p2]) { - return false; - } - } - } - return true; - }, - - /** - * Sets selection start (left boundary of a selection) - * @param {Number} index Index to set selection start to - */ - setSelectionStart: function(index) { - index = Math.max(index, 0); - if (this.selectionStart !== index) { - this.fire('selection:changed'); - this.canvas && this.canvas.fire('text:selection:changed', { target: this }); - this.selectionStart = index; - } - this._updateTextarea(); - }, - - /** - * Sets selection end (right boundary of a selection) - * @param {Number} index Index to set selection end to - */ - setSelectionEnd: function(index) { - index = Math.min(index, this.text.length); - if (this.selectionEnd !== index) { - this.fire('selection:changed'); - this.canvas && this.canvas.fire('text:selection:changed', { target: this }); - this.selectionEnd = index; - } - this._updateTextarea(); - }, - - /** - * Gets style of a current selection/cursor (at the start position) - * @param {Number} [startIndex] Start index to get styles at - * @param {Number} [endIndex] End index to get styles at - * @return {Object} styles Style object at a specified (or current) index - */ - getSelectionStyles: function(startIndex, endIndex) { - - if (arguments.length === 2) { - var styles = [ ]; - for (var i = startIndex; i < endIndex; i++) { - styles.push(this.getSelectionStyles(i)); - } - return styles; - } - - var loc = this.get2DCursorLocation(startIndex); - if (this.styles[loc.lineIndex]) { - return this.styles[loc.lineIndex][loc.charIndex] || { }; - } - - return { }; - }, - - /** - * Sets style of a current selection - * @param {Object} [styles] Styles object - * @return {fabric.IText} thisArg - * @chainable - */ - setSelectionStyles: function(styles) { - if (this.selectionStart === this.selectionEnd) { - this._extendStyles(this.selectionStart, styles); - } - else { - for (var i = this.selectionStart; i < this.selectionEnd; i++) { - this._extendStyles(i, styles); - } - } - /* not included in _extendStyles to avoid clearing cache more than once */ - this._clearCache(); - return this; - }, - - /** - * @private - */ - _extendStyles: function(index, styles) { - var loc = this.get2DCursorLocation(index); - - if (!this.styles[loc.lineIndex]) { - this.styles[loc.lineIndex] = { }; - } - if (!this.styles[loc.lineIndex][loc.charIndex]) { - this.styles[loc.lineIndex][loc.charIndex] = { }; - } - fabric.util.object.extend(this.styles[loc.lineIndex][loc.charIndex], styles); - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - _render: function(ctx) { - this.callSuper('_render', ctx); - this.ctx = ctx; - this.isEditing && this.renderCursorOrSelection(); - }, - - /** - * Renders cursor or selection (depending on what exists) - */ - renderCursorOrSelection: function() { - if (!this.active) { - return; - } - - var chars = this.text.split(''), - boundaries, ctx; - - if (this.canvas.contextTop) { - ctx = this.canvas.contextTop; - ctx.save(); - ctx.transform.apply(ctx, this.canvas.viewportTransform); - this.transform(ctx); - } - else { - ctx = this.ctx; - ctx.save(); - } - - if (this.selectionStart === this.selectionEnd) { - boundaries = this._getCursorBoundaries(chars, 'cursor'); - this.renderCursor(boundaries, ctx); - } - else { - boundaries = this._getCursorBoundaries(chars, 'selection'); - this.renderSelection(chars, boundaries, ctx); - } - - ctx.restore(); - }, - - /** - * Returns 2d representation (lineIndex and charIndex) of cursor (or selection start) - * @param {Number} [selectionStart] Optional index. When not given, current selectionStart is used. - */ - get2DCursorLocation: function(selectionStart) { - if (typeof selectionStart === 'undefined') { - selectionStart = this.selectionStart; - } - var textBeforeCursor = this.text.slice(0, selectionStart), - linesBeforeCursor = textBeforeCursor.split(this._reNewline); - - return { - lineIndex: linesBeforeCursor.length - 1, - charIndex: linesBeforeCursor[linesBeforeCursor.length - 1].length - }; - }, - - /** - * Returns complete style of char at the current cursor - * @param {Number} lineIndex Line index - * @param {Number} charIndex Char index - * @return {Object} Character style - */ - getCurrentCharStyle: function(lineIndex, charIndex) { - var style = this.styles[lineIndex] && this.styles[lineIndex][charIndex === 0 ? 0 : (charIndex - 1)]; - - return { - fontSize: style && style.fontSize || this.fontSize, - fill: style && style.fill || this.fill, - textBackgroundColor: style && style.textBackgroundColor || this.textBackgroundColor, - textDecoration: style && style.textDecoration || this.textDecoration, - fontFamily: style && style.fontFamily || this.fontFamily, - fontWeight: style && style.fontWeight || this.fontWeight, - fontStyle: style && style.fontStyle || this.fontStyle, - stroke: style && style.stroke || this.stroke, - strokeWidth: style && style.strokeWidth || this.strokeWidth - }; - }, - - /** - * Returns fontSize of char at the current cursor - * @param {Number} lineIndex Line index - * @param {Number} charIndex Char index - * @return {Number} Character font size - */ - getCurrentCharFontSize: function(lineIndex, charIndex) { - return ( - this.styles[lineIndex] && - this.styles[lineIndex][charIndex === 0 ? 0 : (charIndex - 1)] && - this.styles[lineIndex][charIndex === 0 ? 0 : (charIndex - 1)].fontSize) || this.fontSize; - }, - - /** - * Returns color (fill) of char at the current cursor - * @param {Number} lineIndex Line index - * @param {Number} charIndex Char index - * @return {String} Character color (fill) - */ - getCurrentCharColor: function(lineIndex, charIndex) { - return ( - this.styles[lineIndex] && - this.styles[lineIndex][charIndex === 0 ? 0 : (charIndex - 1)] && - this.styles[lineIndex][charIndex === 0 ? 0 : (charIndex - 1)].fill) || this.cursorColor; - }, - - /** - * Returns cursor boundaries (left, top, leftOffset, topOffset) - * @private - * @param {Array} chars Array of characters - * @param {String} typeOfBoundaries - */ - _getCursorBoundaries: function(chars, typeOfBoundaries) { - - // left/top are left/top of entire text box - // leftOffset/topOffset are offset from that left/top point of a text box - - var left = Math.round(this._getLeftOffset()), - top = this._getTopOffset(), - - offsets = this._getCursorBoundariesOffsets( - chars, typeOfBoundaries); - - return { - left: left, - top: top, - leftOffset: offsets.left + offsets.lineLeft, - topOffset: offsets.top - }; - }, - - /** - * @private - */ - _getCursorBoundariesOffsets: function(chars, typeOfBoundaries) { - - var lineLeftOffset = 0, - - lineIndex = 0, - charIndex = 0, - topOffset = 0, - leftOffset = 0; - - for (var i = 0; i < this.selectionStart; i++) { - if (chars[i] === '\n') { - leftOffset = 0; - topOffset += this._getHeightOfLine(this.ctx, lineIndex); - - lineIndex++; - charIndex = 0; - } - else { - leftOffset += this._getWidthOfChar(this.ctx, chars[i], lineIndex, charIndex); - charIndex++; - } - - lineLeftOffset = this._getCachedLineOffset(lineIndex); - } - if (typeOfBoundaries === 'cursor') { - topOffset += (1 - this._fontSizeFraction) * this._getHeightOfLine(this.ctx, lineIndex) / this.lineHeight - - this.getCurrentCharFontSize(lineIndex, charIndex) * (1 - this._fontSizeFraction); - } - - return { - top: topOffset, - left: leftOffset, - lineLeft: lineLeftOffset - }; - }, - - /** - * @private - */ - _getCachedLineOffset: function(lineIndex) { - var widthOfLine = this._getLineWidth(this.ctx, lineIndex); - - return this.__lineOffsets[lineIndex] || - (this.__lineOffsets[lineIndex] = this._getLineLeftOffset(widthOfLine)); - }, - - /** - * Renders cursor - * @param {Object} boundaries - * @param {CanvasRenderingContext2D} ctx transformed context to draw on - */ - renderCursor: function(boundaries, ctx) { - - var cursorLocation = this.get2DCursorLocation(), - lineIndex = cursorLocation.lineIndex, - charIndex = cursorLocation.charIndex, - charHeight = this.getCurrentCharFontSize(lineIndex, charIndex), - leftOffset = (lineIndex === 0 && charIndex === 0) - ? this._getCachedLineOffset(lineIndex) - : boundaries.leftOffset; - - ctx.fillStyle = this.getCurrentCharColor(lineIndex, charIndex); - ctx.globalAlpha = this.__isMousedown ? 1 : this._currentCursorOpacity; - - ctx.fillRect( - boundaries.left + leftOffset, - boundaries.top + boundaries.topOffset, - this.cursorWidth / this.scaleX, - charHeight); - - }, - - /** - * Renders text selection - * @param {Array} chars Array of characters - * @param {Object} boundaries Object with left/top/leftOffset/topOffset - * @param {CanvasRenderingContext2D} ctx transformed context to draw on - */ - renderSelection: function(chars, boundaries, ctx) { - - ctx.fillStyle = this.selectionColor; - - var start = this.get2DCursorLocation(this.selectionStart), - end = this.get2DCursorLocation(this.selectionEnd), - startLine = start.lineIndex, - endLine = end.lineIndex; - - for (var i = startLine; i <= endLine; i++) { - var lineOffset = this._getCachedLineOffset(i) || 0, - lineHeight = this._getHeightOfLine(this.ctx, i), - boxWidth = 0, line = this._textLines[i]; - - if (i === startLine) { - for (var j = 0, len = line.length; j < len; j++) { - if (j >= start.charIndex && (i !== endLine || j < end.charIndex)) { - boxWidth += this._getWidthOfChar(ctx, line[j], i, j); - } - if (j < start.charIndex) { - lineOffset += this._getWidthOfChar(ctx, line[j], i, j); - } - } - } - else if (i > startLine && i < endLine) { - boxWidth += this._getLineWidth(ctx, i) || 5; - } - else if (i === endLine) { - for (var j2 = 0, j2len = end.charIndex; j2 < j2len; j2++) { - boxWidth += this._getWidthOfChar(ctx, line[j2], i, j2); - } - } - - ctx.fillRect( - boundaries.left + lineOffset, - boundaries.top + boundaries.topOffset, - boxWidth, - lineHeight); - - boundaries.topOffset += lineHeight; - } - }, - - /** - * @private - * @param {String} method - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - _renderChars: function(method, ctx, line, left, top, lineIndex) { - - if (this.isEmptyStyles()) { - return this._renderCharsFast(method, ctx, line, left, top); - } - - this.skipTextAlign = true; - - // set proper box offset - left -= this.textAlign === 'center' - ? (this.width / 2) - : (this.textAlign === 'right') - ? this.width - : 0; - - // set proper line offset - var lineHeight = this._getHeightOfLine(ctx, lineIndex), - lineLeftOffset = this._getCachedLineOffset(lineIndex), - chars = line.split(''), - prevStyle, - charsToRender = ''; - - left += lineLeftOffset || 0; - - ctx.save(); - top -= lineHeight / this.lineHeight * this._fontSizeFraction; - for (var i = 0, len = chars.length; i <= len; i++) { - prevStyle = prevStyle || this.getCurrentCharStyle(lineIndex, i); - var thisStyle = this.getCurrentCharStyle(lineIndex, i + 1); - - if (this._hasStyleChanged(prevStyle, thisStyle) || i === len) { - this._renderChar(method, ctx, lineIndex, i - 1, charsToRender, left, top, lineHeight); - charsToRender = ''; - prevStyle = thisStyle; - } - charsToRender += chars[i]; - } - - ctx.restore(); - }, - - /** - * @private - * @param {String} method - * @param {CanvasRenderingContext2D} ctx Context to render on - * @param {String} line Content of the line - * @param {Number} left Left coordinate - * @param {Number} top Top coordinate - */ - _renderCharsFast: function(method, ctx, line, left, top) { - this.skipTextAlign = false; - - if (method === 'fillText' && this.fill) { - this.callSuper('_renderChars', method, ctx, line, left, top); - } - if (method === 'strokeText' && ((this.stroke && this.strokeWidth > 0) || this.skipFillStrokeCheck)) { - this.callSuper('_renderChars', method, ctx, line, left, top); - } - }, - - /** - * @private - * @param {String} method - * @param {CanvasRenderingContext2D} ctx Context to render on - * @param {Number} lineIndex - * @param {Number} i - * @param {String} _char - * @param {Number} left Left coordinate - * @param {Number} top Top coordinate - * @param {Number} lineHeight Height of the line - */ - _renderChar: function(method, ctx, lineIndex, i, _char, left, top, lineHeight) { - var decl, charWidth, charHeight, - offset = this._fontSizeFraction * lineHeight / this.lineHeight; - - if (this.styles && this.styles[lineIndex] && (decl = this.styles[lineIndex][i])) { - - var shouldStroke = decl.stroke || this.stroke, - shouldFill = decl.fill || this.fill; - - ctx.save(); - charWidth = this._applyCharStylesGetWidth(ctx, _char, lineIndex, i, decl); - charHeight = this._getHeightOfChar(ctx, _char, lineIndex, i); - - if (shouldFill) { - ctx.fillText(_char, left, top); - } - if (shouldStroke) { - ctx.strokeText(_char, left, top); - } - - this._renderCharDecoration(ctx, decl, left, top, offset, charWidth, charHeight); - ctx.restore(); - - ctx.translate(charWidth, 0); - } - else { - if (method === 'strokeText' && this.stroke) { - ctx[method](_char, left, top); - } - if (method === 'fillText' && this.fill) { - ctx[method](_char, left, top); - } - charWidth = this._applyCharStylesGetWidth(ctx, _char, lineIndex, i); - this._renderCharDecoration(ctx, null, left, top, offset, charWidth, this.fontSize); - - ctx.translate(ctx.measureText(_char).width, 0); - } - }, - - /** - * @private - * @param {Object} prevStyle - * @param {Object} thisStyle - */ - _hasStyleChanged: function(prevStyle, thisStyle) { - return (prevStyle.fill !== thisStyle.fill || - prevStyle.fontSize !== thisStyle.fontSize || - prevStyle.textBackgroundColor !== thisStyle.textBackgroundColor || - prevStyle.textDecoration !== thisStyle.textDecoration || - prevStyle.fontFamily !== thisStyle.fontFamily || - prevStyle.fontWeight !== thisStyle.fontWeight || - prevStyle.fontStyle !== thisStyle.fontStyle || - prevStyle.stroke !== thisStyle.stroke || - prevStyle.strokeWidth !== thisStyle.strokeWidth - ); - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - _renderCharDecoration: function(ctx, styleDeclaration, left, top, offset, charWidth, charHeight) { - - var textDecoration = styleDeclaration - ? (styleDeclaration.textDecoration || this.textDecoration) - : this.textDecoration; - - if (!textDecoration) { - return; - } - - if (textDecoration.indexOf('underline') > -1) { - ctx.fillRect( - left, - top + charHeight / 10, - charWidth , - charHeight / 15 - ); - } - if (textDecoration.indexOf('line-through') > -1) { - ctx.fillRect( - left, - top - charHeight * (this._fontSizeFraction + this._fontSizeMult - 1) + charHeight / 15, - charWidth, - charHeight / 15 - ); - } - if (textDecoration.indexOf('overline') > -1) { - ctx.fillRect( - left, - top - (this._fontSizeMult - this._fontSizeFraction) * charHeight, - charWidth, - charHeight / 15 - ); - } - }, - - /** - * @private - * @param {String} method - * @param {CanvasRenderingContext2D} ctx Context to render on - * @param {String} line - */ - _renderTextLine: function(method, ctx, line, left, top, lineIndex) { - // to "cancel" this.fontSize subtraction in fabric.Text#_renderTextLine - // the adding 0.03 is just to align text with itext by overlap test - if (!this.isEmptyStyles()) { - top += this.fontSize * (this._fontSizeFraction + 0.03); - } - this.callSuper('_renderTextLine', method, ctx, line, left, top, lineIndex); - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - _renderTextDecoration: function(ctx) { - if (this.isEmptyStyles()) { - return this.callSuper('_renderTextDecoration', ctx); - } - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - _renderTextLinesBackground: function(ctx) { - if (!this.textBackgroundColor && !this.styles) { - return; - } - - ctx.save(); - - if (this.textBackgroundColor) { - ctx.fillStyle = this.textBackgroundColor; - } - - var lineHeights = 0; - - for (var i = 0, len = this._textLines.length; i < len; i++) { - - var heightOfLine = this._getHeightOfLine(ctx, i); - if (this._textLines[i] === '') { - lineHeights += heightOfLine; - continue; - } - - var lineWidth = this._getLineWidth(ctx, i), - lineLeftOffset = this._getCachedLineOffset(i); - - if (this.textBackgroundColor) { - ctx.fillStyle = this.textBackgroundColor; - - ctx.fillRect( - this._getLeftOffset() + lineLeftOffset, - this._getTopOffset() + lineHeights, - lineWidth, - heightOfLine / this.lineHeight - ); - } - if (this.styles[i]) { - for (var j = 0, jlen = this._textLines[i].length; j < jlen; j++) { - if (this.styles[i] && this.styles[i][j] && this.styles[i][j].textBackgroundColor) { - - var _char = this._textLines[i][j]; - - ctx.fillStyle = this.styles[i][j].textBackgroundColor; - - ctx.fillRect( - this._getLeftOffset() + lineLeftOffset + this._getWidthOfCharsAt(ctx, i, j), - this._getTopOffset() + lineHeights, - this._getWidthOfChar(ctx, _char, i, j) + 1, - heightOfLine / this.lineHeight - ); - } - } - } - lineHeights += heightOfLine; - } - ctx.restore(); - }, - - /** - * @private - */ - _getCacheProp: function(_char, styleDeclaration) { - return _char + - styleDeclaration.fontFamily + - styleDeclaration.fontSize + - styleDeclaration.fontWeight + - styleDeclaration.fontStyle + - styleDeclaration.shadow; - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - * @param {String} _char - * @param {Number} lineIndex - * @param {Number} charIndex - * @param {Object} [decl] - */ - _applyCharStylesGetWidth: function(ctx, _char, lineIndex, charIndex, decl) { - var styleDeclaration = decl || - (this.styles[lineIndex] && - this.styles[lineIndex][charIndex]); - - if (styleDeclaration) { - // cloning so that original style object is not polluted with following font declarations - styleDeclaration = clone(styleDeclaration); - } - else { - styleDeclaration = { }; - } - - this._applyFontStyles(styleDeclaration); - - var cacheProp = this._getCacheProp(_char, styleDeclaration); - - // short-circuit if no styles - if (this.isEmptyStyles() && this._charWidthsCache[cacheProp] && this.caching) { - return this._charWidthsCache[cacheProp]; - } - - if (typeof styleDeclaration.shadow === 'string') { - styleDeclaration.shadow = new fabric.Shadow(styleDeclaration.shadow); - } - - var fill = styleDeclaration.fill || this.fill; - ctx.fillStyle = fill.toLive - ? fill.toLive(ctx, this) - : fill; - - if (styleDeclaration.stroke) { - ctx.strokeStyle = (styleDeclaration.stroke && styleDeclaration.stroke.toLive) - ? styleDeclaration.stroke.toLive(ctx, this) - : styleDeclaration.stroke; - } - - ctx.lineWidth = styleDeclaration.strokeWidth || this.strokeWidth; - ctx.font = this._getFontDeclaration.call(styleDeclaration); - this._setShadow.call(styleDeclaration, ctx); - - if (!this.caching) { - return ctx.measureText(_char).width; - } - - if (!this._charWidthsCache[cacheProp]) { - this._charWidthsCache[cacheProp] = ctx.measureText(_char).width; - } - - return this._charWidthsCache[cacheProp]; - }, - - /** - * @private - * @param {Object} styleDeclaration - */ - _applyFontStyles: function(styleDeclaration) { - if (!styleDeclaration.fontFamily) { - styleDeclaration.fontFamily = this.fontFamily; - } - if (!styleDeclaration.fontSize) { - styleDeclaration.fontSize = this.fontSize; - } - if (!styleDeclaration.fontWeight) { - styleDeclaration.fontWeight = this.fontWeight; - } - if (!styleDeclaration.fontStyle) { - styleDeclaration.fontStyle = this.fontStyle; - } - }, - - /** - * @private - * @param {Number} lineIndex - * @param {Number} charIndex - */ - _getStyleDeclaration: function(lineIndex, charIndex) { - return (this.styles[lineIndex] && this.styles[lineIndex][charIndex]) - ? clone(this.styles[lineIndex][charIndex]) - : { }; - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - _getWidthOfChar: function(ctx, _char, lineIndex, charIndex) { - if (this.textAlign === 'justify' && /\s/.test(_char)) { - return this._getWidthOfSpace(ctx, lineIndex); - } - - var styleDeclaration = this._getStyleDeclaration(lineIndex, charIndex); - this._applyFontStyles(styleDeclaration); - var cacheProp = this._getCacheProp(_char, styleDeclaration); - - if (this._charWidthsCache[cacheProp] && this.caching) { - return this._charWidthsCache[cacheProp]; - } - else if (ctx) { - ctx.save(); - var width = this._applyCharStylesGetWidth(ctx, _char, lineIndex, charIndex); - ctx.restore(); - return width; - } - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - _getHeightOfChar: function(ctx, _char, lineIndex, charIndex) { - if (this.styles[lineIndex] && this.styles[lineIndex][charIndex]) { - return this.styles[lineIndex][charIndex].fontSize || this.fontSize; - } - return this.fontSize; - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - _getHeightOfCharAt: function(ctx, lineIndex, charIndex) { - var _char = this._textLines[lineIndex][charIndex]; - return this._getHeightOfChar(ctx, _char, lineIndex, charIndex); - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - _getWidthOfCharsAt: function(ctx, lineIndex, charIndex) { - var width = 0, i, _char; - for (i = 0; i < charIndex; i++) { - _char = this._textLines[lineIndex][i]; - width += this._getWidthOfChar(ctx, _char, lineIndex, i); - } - return width; - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - _getLineWidth: function(ctx, lineIndex) { - if (this.__lineWidths[lineIndex]) { - return this.__lineWidths[lineIndex]; - } - this.__lineWidths[lineIndex] = this._getWidthOfCharsAt(ctx, lineIndex, this._textLines[lineIndex].length); - return this.__lineWidths[lineIndex]; - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - * @param {Number} lineIndex - */ - _getWidthOfSpace: function (ctx, lineIndex) { - if (this.__widthOfSpace[lineIndex]) { - return this.__widthOfSpace[lineIndex]; - } - var line = this._textLines[lineIndex], - wordsWidth = this._getWidthOfWords(ctx, line, lineIndex), - widthDiff = this.width - wordsWidth, - numSpaces = line.length - line.replace(/\s+/g, '').length, - width = widthDiff / numSpaces; - this.__widthOfSpace[lineIndex] = width; - return width; - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - * @param {Number} line - * @param {Number} lineIndex - */ - _getWidthOfWords: function (ctx, line, lineIndex) { - var width = 0; - - for (var charIndex = 0; charIndex < line.length; charIndex++) { - var _char = line[charIndex]; - - if (!_char.match(/\s/)) { - width += this._getWidthOfChar(ctx, _char, lineIndex, charIndex); - } - } - - return width; - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - _getHeightOfLine: function(ctx, lineIndex) { - if (this.__lineHeights[lineIndex]) { - return this.__lineHeights[lineIndex]; - } - - var line = this._textLines[lineIndex], - maxHeight = this._getHeightOfChar(ctx, line[0], lineIndex, 0); - - for (var i = 1, len = line.length; i < len; i++) { - var currentCharHeight = this._getHeightOfChar(ctx, line[i], lineIndex, i); - if (currentCharHeight > maxHeight) { - maxHeight = currentCharHeight; - } - } - this.__maxFontHeights[lineIndex] = maxHeight; - this.__lineHeights[lineIndex] = maxHeight * this.lineHeight * this._fontSizeMult; - return this.__lineHeights[lineIndex]; - }, - - /** - * @private - * @param {CanvasRenderingContext2D} ctx Context to render on - */ - _getTextHeight: function(ctx) { - var height = 0; - for (var i = 0, len = this._textLines.length; i < len; i++) { - height += this._getHeightOfLine(ctx, i); - } - return height; - }, - - /** - * This method is overwritten to account for different top offset - * @private - */ - _renderTextBoxBackground: function(ctx) { - if (!this.backgroundColor) { - return; - } - - ctx.save(); - ctx.fillStyle = this.backgroundColor; - - ctx.fillRect( - this._getLeftOffset(), - this._getTopOffset(), - this.width, - this.height - ); - - ctx.restore(); - }, - - /** - * Returns object representation of an instance - * @method toObject - * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output - * @return {Object} object representation of an instance - */ - toObject: function(propertiesToInclude) { - return fabric.util.object.extend(this.callSuper('toObject', propertiesToInclude), { - styles: clone(this.styles) - }); - } - }); - - /** - * Returns fabric.IText instance from an object representation - * @static - * @memberOf fabric.IText - * @param {Object} object Object to create an instance from - * @return {fabric.IText} instance of fabric.IText - */ - fabric.IText.fromObject = function(object) { - return new fabric.IText(object.text, clone(object)); - }; -})(); - - -(function() { - - var clone = fabric.util.object.clone; - - fabric.util.object.extend(fabric.IText.prototype, /** @lends fabric.IText.prototype */ { - - /** - * Initializes all the interactive behavior of IText - */ - initBehavior: function() { - this.initAddedHandler(); - this.initRemovedHandler(); - this.initCursorSelectionHandlers(); - this.initDoubleClickSimulation(); - }, - - /** - * Initializes "selected" event handler - */ - initSelectedHandler: function() { - this.on('selected', function() { - - var _this = this; - setTimeout(function() { - _this.selected = true; - }, 100); - }); - }, - - /** - * Initializes "added" event handler - */ - initAddedHandler: function() { - var _this = this; - this.on('added', function() { - if (this.canvas && !this.canvas._hasITextHandlers) { - this.canvas._hasITextHandlers = true; - this._initCanvasHandlers(); - } - - // Track IText instances per-canvas. Only register in this array once added - // to a canvas; we don't want to leak a reference to the instance forever - // simply because it existed at some point. - // - // (Might be added to a collection, but not on a canvas.) - if (_this.canvas) { - _this.canvas._iTextInstances = _this.canvas._iTextInstances || []; - _this.canvas._iTextInstances.push(_this); - } - }); - }, - - initRemovedHandler: function() { - var _this = this; - this.on('removed', function() { - // (Might be removed from a collection, but not on a canvas.) - if (_this.canvas) { - _this.canvas._iTextInstances = _this.canvas._iTextInstances || []; - fabric.util.removeFromArray(_this.canvas._iTextInstances, _this); - } - }); - }, - - /** - * @private - */ - _initCanvasHandlers: function() { - var _this = this; - - this.canvas.on('selection:cleared', function() { - fabric.IText.prototype.exitEditingOnOthers(_this.canvas); - }); - - this.canvas.on('mouse:up', function() { - if (_this.canvas._iTextInstances) { - _this.canvas._iTextInstances.forEach(function(obj) { - obj.__isMousedown = false; - }); - } - }); - - this.canvas.on('object:selected', function() { - fabric.IText.prototype.exitEditingOnOthers(_this.canvas); - }); - }, - - /** - * @private - */ - _tick: function() { - this._currentTickState = this._animateCursor(this, 1, this.cursorDuration, '_onTickComplete'); - }, - - /** - * @private - */ - _animateCursor: function(obj, targetOpacity, duration, completeMethod) { - - var tickState; - - tickState = { - isAborted: false, - abort: function() { - this.isAborted = true; - }, - }; - - obj.animate('_currentCursorOpacity', targetOpacity, { - duration: duration, - onComplete: function() { - if (!tickState.isAborted) { - obj[completeMethod](); - } - }, - onChange: function() { - if (obj.canvas) { - obj.canvas.clearContext(obj.canvas.contextTop || obj.ctx); - obj.renderCursorOrSelection(); - } - }, - abort: function() { - return tickState.isAborted; - } - }); - return tickState; - }, - - /** - * @private - */ - _onTickComplete: function() { - - var _this = this; - - if (this._cursorTimeout1) { - clearTimeout(this._cursorTimeout1); - } - this._cursorTimeout1 = setTimeout(function() { - _this._currentTickCompleteState = _this._animateCursor(_this, 0, this.cursorDuration / 2, '_tick'); - }, 100); - }, - - /** - * Initializes delayed cursor - */ - initDelayedCursor: function(restart) { - var _this = this, - delay = restart ? 0 : this.cursorDelay; - - this._currentTickState && this._currentTickState.abort(); - this._currentTickCompleteState && this._currentTickCompleteState.abort(); - clearTimeout(this._cursorTimeout1); - this._currentCursorOpacity = 1; - if (this.canvas) { - this.canvas.clearContext(this.canvas.contextTop || this.ctx); - this.renderCursorOrSelection(); - } - if (this._cursorTimeout2) { - clearTimeout(this._cursorTimeout2); - } - this._cursorTimeout2 = setTimeout(function() { - _this._tick(); - }, delay); - }, - - /** - * Aborts cursor animation and clears all timeouts - */ - abortCursorAnimation: function() { - this._currentTickState && this._currentTickState.abort(); - this._currentTickCompleteState && this._currentTickCompleteState.abort(); - - clearTimeout(this._cursorTimeout1); - clearTimeout(this._cursorTimeout2); - - this._currentCursorOpacity = 0; - this.canvas && this.canvas.clearContext(this.canvas.contextTop || this.ctx); - }, - - /** - * Selects entire text - */ - selectAll: function() { - this.setSelectionStart(0); - this.setSelectionEnd(this.text.length); - }, - - /** - * Returns selected text - * @return {String} - */ - getSelectedText: function() { - return this.text.slice(this.selectionStart, this.selectionEnd); - }, - - /** - * Find new selection index representing start of current word according to current selection index - * @param {Number} startFrom Surrent selection index - * @return {Number} New selection index - */ - findWordBoundaryLeft: function(startFrom) { - var offset = 0, index = startFrom - 1; - - // remove space before cursor first - if (this._reSpace.test(this.text.charAt(index))) { - while (this._reSpace.test(this.text.charAt(index))) { - offset++; - index--; - } - } - while (/\S/.test(this.text.charAt(index)) && index > -1) { - offset++; - index--; - } - - return startFrom - offset; - }, - - /** - * Find new selection index representing end of current word according to current selection index - * @param {Number} startFrom Current selection index - * @return {Number} New selection index - */ - findWordBoundaryRight: function(startFrom) { - var offset = 0, index = startFrom; - - // remove space after cursor first - if (this._reSpace.test(this.text.charAt(index))) { - while (this._reSpace.test(this.text.charAt(index))) { - offset++; - index++; - } - } - while (/\S/.test(this.text.charAt(index)) && index < this.text.length) { - offset++; - index++; - } - - return startFrom + offset; - }, - - /** - * Find new selection index representing start of current line according to current selection index - * @param {Number} startFrom Current selection index - * @return {Number} New selection index - */ - findLineBoundaryLeft: function(startFrom) { - var offset = 0, index = startFrom - 1; - - while (!/\n/.test(this.text.charAt(index)) && index > -1) { - offset++; - index--; - } - - return startFrom - offset; - }, - - /** - * Find new selection index representing end of current line according to current selection index - * @param {Number} startFrom Current selection index - * @return {Number} New selection index - */ - findLineBoundaryRight: function(startFrom) { - var offset = 0, index = startFrom; - - while (!/\n/.test(this.text.charAt(index)) && index < this.text.length) { - offset++; - index++; - } - - return startFrom + offset; - }, - - /** - * Returns number of newlines in selected text - * @return {Number} Number of newlines in selected text - */ - getNumNewLinesInSelectedText: function() { - var selectedText = this.getSelectedText(), - numNewLines = 0; - - for (var i = 0, chars = selectedText.split(''), len = chars.length; i < len; i++) { - if (chars[i] === '\n') { - numNewLines++; - } - } - return numNewLines; - }, - - /** - * Finds index corresponding to beginning or end of a word - * @param {Number} selectionStart Index of a character - * @param {Number} direction: 1 or -1 - * @return {Number} Index of the beginning or end of a word - */ - searchWordBoundary: function(selectionStart, direction) { - var index = this._reSpace.test(this.text.charAt(selectionStart)) ? selectionStart - 1 : selectionStart, - _char = this.text.charAt(index), - reNonWord = /[ \n\.,;!\?\-]/; - - while (!reNonWord.test(_char) && index > 0 && index < this.text.length) { - index += direction; - _char = this.text.charAt(index); - } - if (reNonWord.test(_char) && _char !== '\n') { - index += direction === 1 ? 0 : 1; - } - return index; - }, - - /** - * Selects a word based on the index - * @param {Number} selectionStart Index of a character - */ - selectWord: function(selectionStart) { - var newSelectionStart = this.searchWordBoundary(selectionStart, -1), /* search backwards */ - newSelectionEnd = this.searchWordBoundary(selectionStart, 1); /* search forward */ - - this.setSelectionStart(newSelectionStart); - this.setSelectionEnd(newSelectionEnd); - }, - - /** - * Selects a line based on the index - * @param {Number} selectionStart Index of a character - */ - selectLine: function(selectionStart) { - var newSelectionStart = this.findLineBoundaryLeft(selectionStart), - newSelectionEnd = this.findLineBoundaryRight(selectionStart); - - this.setSelectionStart(newSelectionStart); - this.setSelectionEnd(newSelectionEnd); - }, - - /** - * Enters editing state - * @return {fabric.IText} thisArg - * @chainable - */ - enterEditing: function() { - if (this.isEditing || !this.editable) { - return; - } - - if (this.canvas) { - this.exitEditingOnOthers(this.canvas); - } - - this.isEditing = true; - - this.initHiddenTextarea(); - this.hiddenTextarea.focus(); - this._updateTextarea(); - this._saveEditingProps(); - this._setEditingProps(); - - this._tick(); - this.fire('editing:entered'); - - if (!this.canvas) { - return this; - } - - this.canvas.renderAll(); - this.canvas.fire('text:editing:entered', { target: this }); - this.initMouseMoveHandler(); - return this; - }, - - exitEditingOnOthers: function(canvas) { - if (canvas._iTextInstances) { - canvas._iTextInstances.forEach(function(obj) { - obj.selected = false; - if (obj.isEditing) { - obj.exitEditing(); - } - }); - } - }, - - /** - * Initializes "mousemove" event handler - */ - initMouseMoveHandler: function() { - var _this = this; - this.canvas.on('mouse:move', function(options) { - if (!_this.__isMousedown || !_this.isEditing) { - return; - } - - var newSelectionStart = _this.getSelectionStartFromPointer(options.e); - if (newSelectionStart >= _this.__selectionStartOnMouseDown) { - _this.setSelectionStart(_this.__selectionStartOnMouseDown); - _this.setSelectionEnd(newSelectionStart); - } - else { - _this.setSelectionStart(newSelectionStart); - _this.setSelectionEnd(_this.__selectionStartOnMouseDown); - } - }); - }, - - /** - * @private - */ - _setEditingProps: function() { - this.hoverCursor = 'text'; - - if (this.canvas) { - this.canvas.defaultCursor = this.canvas.moveCursor = 'text'; - } - - this.borderColor = this.editingBorderColor; - - this.hasControls = this.selectable = false; - this.lockMovementX = this.lockMovementY = true; - }, - - /** - * @private - */ - _updateTextarea: function() { - if (!this.hiddenTextarea) { - return; - } - - this.hiddenTextarea.value = this.text; - this.hiddenTextarea.selectionStart = this.selectionStart; - this.hiddenTextarea.selectionEnd = this.selectionEnd; - }, - - /** - * @private - */ - _saveEditingProps: function() { - this._savedProps = { - hasControls: this.hasControls, - borderColor: this.borderColor, - lockMovementX: this.lockMovementX, - lockMovementY: this.lockMovementY, - hoverCursor: this.hoverCursor, - defaultCursor: this.canvas && this.canvas.defaultCursor, - moveCursor: this.canvas && this.canvas.moveCursor - }; - }, - - /** - * @private - */ - _restoreEditingProps: function() { - if (!this._savedProps) { - return; - } - - this.hoverCursor = this._savedProps.overCursor; - this.hasControls = this._savedProps.hasControls; - this.borderColor = this._savedProps.borderColor; - this.lockMovementX = this._savedProps.lockMovementX; - this.lockMovementY = this._savedProps.lockMovementY; - - if (this.canvas) { - this.canvas.defaultCursor = this._savedProps.defaultCursor; - this.canvas.moveCursor = this._savedProps.moveCursor; - } - }, - - /** - * Exits from editing state - * @return {fabric.IText} thisArg - * @chainable - */ - exitEditing: function() { - - this.selected = false; - this.isEditing = false; - this.selectable = true; - - this.selectionEnd = this.selectionStart; - this.hiddenTextarea && this.canvas && this.hiddenTextarea.parentNode.removeChild(this.hiddenTextarea); - this.hiddenTextarea = null; - - this.abortCursorAnimation(); - this._restoreEditingProps(); - this._currentCursorOpacity = 0; - - this.fire('editing:exited'); - this.canvas && this.canvas.fire('text:editing:exited', { target: this }); - - return this; - }, - - /** - * @private - */ - _removeExtraneousStyles: function() { - for (var prop in this.styles) { - if (!this._textLines[prop]) { - delete this.styles[prop]; - } - } - }, - - /** - * @private - */ - _removeCharsFromTo: function(start, end) { - - var i = end; - while (i !== start) { - - var prevIndex = this.get2DCursorLocation(i).charIndex; - i--; - - var index = this.get2DCursorLocation(i).charIndex, - isNewline = index > prevIndex; - - if (isNewline) { - this.removeStyleObject(isNewline, i + 1); - } - else { - this.removeStyleObject(this.get2DCursorLocation(i).charIndex === 0, i); - } - - } - - this.text = this.text.slice(0, start) + - this.text.slice(end); - this._clearCache(); - }, - - /** - * Inserts a character where cursor is (replacing selection if one exists) - * @param {String} _chars Characters to insert - */ - insertChars: function(_chars, useCopiedStyle) { - var isEndOfLine = this.text.slice(this.selectionStart, this.selectionStart + 1) === '\n'; - - this.text = this.text.slice(0, this.selectionStart) + - _chars + - this.text.slice(this.selectionEnd); - - if (this.selectionStart === this.selectionEnd) { - this.insertStyleObjects(_chars, isEndOfLine, useCopiedStyle); - } - // else if (this.selectionEnd - this.selectionStart > 1) { - // TODO: replace styles properly - // console.log('replacing MORE than 1 char'); - // } - this.setSelectionStart(this.selectionStart + _chars.length); - this.setSelectionEnd(this.selectionStart); - this._clearCache(); - this.canvas && this.canvas.renderAll(); - - this.setCoords(); - this.fire('changed'); - this.canvas && this.canvas.fire('text:changed', { target: this }); - }, - - /** - * Inserts new style object - * @param {Number} lineIndex Index of a line - * @param {Number} charIndex Index of a char - * @param {Boolean} isEndOfLine True if it's end of line - */ - insertNewlineStyleObject: function(lineIndex, charIndex, isEndOfLine) { - - this.shiftLineStyles(lineIndex, +1); - - if (!this.styles[lineIndex + 1]) { - this.styles[lineIndex + 1] = { }; - } - - var currentCharStyle = this.styles[lineIndex][charIndex - 1], - newLineStyles = { }; - - // if there's nothing after cursor, - // we clone current char style onto the next (otherwise empty) line - if (isEndOfLine) { - newLineStyles[0] = clone(currentCharStyle); - this.styles[lineIndex + 1] = newLineStyles; - } - // otherwise we clone styles of all chars - // after cursor onto the next line, from the beginning - else { - for (var index in this.styles[lineIndex]) { - if (parseInt(index, 10) >= charIndex) { - newLineStyles[parseInt(index, 10) - charIndex] = this.styles[lineIndex][index]; - // remove lines from the previous line since they're on a new line now - delete this.styles[lineIndex][index]; - } - } - this.styles[lineIndex + 1] = newLineStyles; - } - this._clearCache(); - }, - - /** - * Inserts style object for a given line/char index - * @param {Number} lineIndex Index of a line - * @param {Number} charIndex Index of a char - * @param {Object} [style] Style object to insert, if given - */ - insertCharStyleObject: function(lineIndex, charIndex, style) { - - var currentLineStyles = this.styles[lineIndex], - currentLineStylesCloned = clone(currentLineStyles); - - if (charIndex === 0 && !style) { - charIndex = 1; - } - - // shift all char styles by 1 forward - // 0,1,2,3 -> (charIndex=2) -> 0,1,3,4 -> (insert 2) -> 0,1,2,3,4 - for (var index in currentLineStylesCloned) { - var numericIndex = parseInt(index, 10); - if (numericIndex >= charIndex) { - currentLineStyles[numericIndex + 1] = currentLineStylesCloned[numericIndex]; - //delete currentLineStyles[index]; - } - } - - this.styles[lineIndex][charIndex] = - style || clone(currentLineStyles[charIndex - 1]); - this._clearCache(); - }, - - /** - * Inserts style object(s) - * @param {String} _chars Characters at the location where style is inserted - * @param {Boolean} isEndOfLine True if it's end of line - * @param {Boolean} [useCopiedStyle] Style to insert - */ - insertStyleObjects: function(_chars, isEndOfLine, useCopiedStyle) { - // removed shortcircuit over isEmptyStyles - - var cursorLocation = this.get2DCursorLocation(), - lineIndex = cursorLocation.lineIndex, - charIndex = cursorLocation.charIndex; - - if (!this.styles[lineIndex]) { - this.styles[lineIndex] = { }; - } - - if (_chars === '\n') { - this.insertNewlineStyleObject(lineIndex, charIndex, isEndOfLine); - } - else { - if (useCopiedStyle) { - this._insertStyles(this.copiedStyles); - } - else { - // TODO: support multiple style insertion if _chars.length > 1 - this.insertCharStyleObject(lineIndex, charIndex); - } - } - }, - - /** - * @private - */ - _insertStyles: function(styles) { - for (var i = 0, len = styles.length; i < len; i++) { - - var cursorLocation = this.get2DCursorLocation(this.selectionStart + i), - lineIndex = cursorLocation.lineIndex, - charIndex = cursorLocation.charIndex; - - this.insertCharStyleObject(lineIndex, charIndex, styles[i]); - } - }, - - /** - * Shifts line styles up or down - * @param {Number} lineIndex Index of a line - * @param {Number} offset Can be -1 or +1 - */ - shiftLineStyles: function(lineIndex, offset) { - // shift all line styles by 1 upward - var clonedStyles = clone(this.styles); - for (var line in this.styles) { - var numericLine = parseInt(line, 10); - if (numericLine > lineIndex) { - this.styles[numericLine + offset] = clonedStyles[numericLine]; - } - } - }, - - /** - * Removes style object - * @param {Boolean} isBeginningOfLine True if cursor is at the beginning of line - * @param {Number} [index] Optional index. When not given, current selectionStart is used. - */ - removeStyleObject: function(isBeginningOfLine, index) { - - var cursorLocation = this.get2DCursorLocation(index), - lineIndex = cursorLocation.lineIndex, - charIndex = cursorLocation.charIndex; - - if (isBeginningOfLine) { - - var textOnPreviousLine = this._textLines[lineIndex - 1], - newCharIndexOnPrevLine = textOnPreviousLine - ? textOnPreviousLine.length - : 0; - - if (!this.styles[lineIndex - 1]) { - this.styles[lineIndex - 1] = { }; - } - - for (charIndex in this.styles[lineIndex]) { - this.styles[lineIndex - 1][parseInt(charIndex, 10) + newCharIndexOnPrevLine] - = this.styles[lineIndex][charIndex]; - } - - this.shiftLineStyles(lineIndex, -1); - } - else { - var currentLineStyles = this.styles[lineIndex]; - - if (currentLineStyles) { - var offset = this.selectionStart === this.selectionEnd ? -1 : 0; - delete currentLineStyles[charIndex + offset]; - // console.log('deleting', lineIndex, charIndex + offset); - } - - var currentLineStylesCloned = clone(currentLineStyles); - - // shift all styles by 1 backwards - for (var i in currentLineStylesCloned) { - var numericIndex = parseInt(i, 10); - if (numericIndex >= charIndex && numericIndex !== 0) { - currentLineStyles[numericIndex - 1] = currentLineStylesCloned[numericIndex]; - delete currentLineStyles[numericIndex]; - } - } - } - }, - - /** - * Inserts new line - */ - insertNewline: function() { - this.insertChars('\n'); - } - }); -})(); - - -fabric.util.object.extend(fabric.IText.prototype, /** @lends fabric.IText.prototype */ { - /** - * Initializes "dbclick" event handler - */ - initDoubleClickSimulation: function() { - - // for double click - this.__lastClickTime = +new Date(); - - // for triple click - this.__lastLastClickTime = +new Date(); - - this.__lastPointer = { }; - - this.on('mousedown', this.onMouseDown.bind(this)); - }, - - onMouseDown: function(options) { - - this.__newClickTime = +new Date(); - var newPointer = this.canvas.getPointer(options.e); - - if (this.isTripleClick(newPointer)) { - this.fire('tripleclick', options); - this._stopEvent(options.e); - } - else if (this.isDoubleClick(newPointer)) { - this.fire('dblclick', options); - this._stopEvent(options.e); - } - - this.__lastLastClickTime = this.__lastClickTime; - this.__lastClickTime = this.__newClickTime; - this.__lastPointer = newPointer; - this.__lastIsEditing = this.isEditing; - this.__lastSelected = this.selected; - }, - - isDoubleClick: function(newPointer) { - return this.__newClickTime - this.__lastClickTime < 500 && - this.__lastPointer.x === newPointer.x && - this.__lastPointer.y === newPointer.y && this.__lastIsEditing; - }, - - isTripleClick: function(newPointer) { - return this.__newClickTime - this.__lastClickTime < 500 && - this.__lastClickTime - this.__lastLastClickTime < 500 && - this.__lastPointer.x === newPointer.x && - this.__lastPointer.y === newPointer.y; - }, - - /** - * @private - */ - _stopEvent: function(e) { - e.preventDefault && e.preventDefault(); - e.stopPropagation && e.stopPropagation(); - }, - - /** - * Initializes event handlers related to cursor or selection - */ - initCursorSelectionHandlers: function() { - this.initSelectedHandler(); - this.initMousedownHandler(); - this.initMouseupHandler(); - this.initClicks(); - }, - - /** - * Initializes double and triple click event handlers - */ - initClicks: function() { - this.on('dblclick', function(options) { - this.selectWord(this.getSelectionStartFromPointer(options.e)); - }); - this.on('tripleclick', function(options) { - this.selectLine(this.getSelectionStartFromPointer(options.e)); - }); - }, - - /** - * Initializes "mousedown" event handler - */ - initMousedownHandler: function() { - this.on('mousedown', function(options) { - - var pointer = this.canvas.getPointer(options.e); - - this.__mousedownX = pointer.x; - this.__mousedownY = pointer.y; - this.__isMousedown = true; - - if (this.hiddenTextarea && this.canvas) { - this.canvas.wrapperEl.appendChild(this.hiddenTextarea); - } - - if (this.selected) { - this.setCursorByClick(options.e); - } - - if (this.isEditing) { - this.__selectionStartOnMouseDown = this.selectionStart; - this.initDelayedCursor(true); - } - }); - }, - - /** - * @private - */ - _isObjectMoved: function(e) { - var pointer = this.canvas.getPointer(e); - - return this.__mousedownX !== pointer.x || - this.__mousedownY !== pointer.y; - }, - - /** - * Initializes "mouseup" event handler - */ - initMouseupHandler: function() { - this.on('mouseup', function(options) { - this.__isMousedown = false; - if (this._isObjectMoved(options.e)) { - return; - } - - if (this.__lastSelected) { - this.enterEditing(); - this.initDelayedCursor(true); - } - this.selected = true; - }); - }, - - /** - * Changes cursor location in a text depending on passed pointer (x/y) object - * @param {Event} e Event object - */ - setCursorByClick: function(e) { - var newSelectionStart = this.getSelectionStartFromPointer(e); - - if (e.shiftKey) { - if (newSelectionStart < this.selectionStart) { - this.setSelectionEnd(this.selectionStart); - this.setSelectionStart(newSelectionStart); - } - else { - this.setSelectionEnd(newSelectionStart); - } - } - else { - this.setSelectionStart(newSelectionStart); - this.setSelectionEnd(newSelectionStart); - } - }, - - /** - * @private - * @param {Event} e Event object - * @return {Object} Coordinates of a pointer (x, y) - */ - _getLocalRotatedPointer: function(e) { - var pointer = this.canvas.getPointer(e), - - pClicked = new fabric.Point(pointer.x, pointer.y), - pLeftTop = new fabric.Point(this.left, this.top), - - rotated = fabric.util.rotatePoint( - pClicked, pLeftTop, fabric.util.degreesToRadians(-this.angle)); - - return this.getLocalPointer(e, rotated); - }, - - /** - * Returns index of a character corresponding to where an object was clicked - * @param {Event} e Event object - * @return {Number} Index of a character - */ - getSelectionStartFromPointer: function(e) { - var mouseOffset = this._getLocalRotatedPointer(e), - prevWidth = 0, - width = 0, - height = 0, - charIndex = 0, - newSelectionStart, - line; - - for (var i = 0, len = this._textLines.length; i < len; i++) { - line = this._textLines[i].split(''); - height += this._getHeightOfLine(this.ctx, i) * this.scaleY; - - var widthOfLine = this._getLineWidth(this.ctx, i), - lineLeftOffset = this._getLineLeftOffset(widthOfLine); - - width = lineLeftOffset * this.scaleX; - - if (this.flipX) { - // when oject is horizontally flipped we reverse chars - this._textLines[i] = line.reverse().join(''); - } - - for (var j = 0, jlen = line.length; j < jlen; j++) { - - var _char = line[j]; - prevWidth = width; - - width += this._getWidthOfChar(this.ctx, _char, i, this.flipX ? jlen - j : j) * - this.scaleX; - - if (height <= mouseOffset.y || width <= mouseOffset.x) { - charIndex++; - continue; - } - - return this._getNewSelectionStartFromOffset( - mouseOffset, prevWidth, width, charIndex + i, jlen); - } - - if (mouseOffset.y < height) { - return this._getNewSelectionStartFromOffset( - mouseOffset, prevWidth, width, charIndex + i, jlen); - } - } - - // clicked somewhere after all chars, so set at the end - if (typeof newSelectionStart === 'undefined') { - return this.text.length; - } - }, - - /** - * @private - */ - _getNewSelectionStartFromOffset: function(mouseOffset, prevWidth, width, index, jlen) { - - var distanceBtwLastCharAndCursor = mouseOffset.x - prevWidth, - distanceBtwNextCharAndCursor = width - mouseOffset.x, - offset = distanceBtwNextCharAndCursor > distanceBtwLastCharAndCursor ? 0 : 1, - newSelectionStart = index + offset; - - // if object is horizontally flipped, mirror cursor location from the end - if (this.flipX) { - newSelectionStart = jlen - newSelectionStart; - } - - if (newSelectionStart > this.text.length) { - newSelectionStart = this.text.length; - } - - return newSelectionStart; - } -}); - - -fabric.util.object.extend(fabric.IText.prototype, /** @lends fabric.IText.prototype */ { - - /** - * Initializes hidden textarea (needed to bring up keyboard in iOS) - */ - initHiddenTextarea: function() { - this.hiddenTextarea = fabric.document.createElement('textarea'); - - this.hiddenTextarea.setAttribute('autocapitalize', 'off'); - this.hiddenTextarea.style.cssText = 'position: fixed; bottom: 20px; left: 0px; opacity: 0;' - + ' width: 0px; height: 0px; z-index: -999;'; - fabric.document.body.appendChild(this.hiddenTextarea); - - fabric.util.addListener(this.hiddenTextarea, 'keydown', this.onKeyDown.bind(this)); - fabric.util.addListener(this.hiddenTextarea, 'keypress', this.onKeyPress.bind(this)); - fabric.util.addListener(this.hiddenTextarea, 'copy', this.copy.bind(this)); - fabric.util.addListener(this.hiddenTextarea, 'paste', this.paste.bind(this)); - - if (!this._clickHandlerInitialized && this.canvas) { - fabric.util.addListener(this.canvas.upperCanvasEl, 'click', this.onClick.bind(this)); - this._clickHandlerInitialized = true; - } - }, - - /** - * @private - */ - _keysMap: { - 8: 'removeChars', - 9: 'exitEditing', - 27: 'exitEditing', - 13: 'insertNewline', - 33: 'moveCursorUp', - 34: 'moveCursorDown', - 35: 'moveCursorRight', - 36: 'moveCursorLeft', - 37: 'moveCursorLeft', - 38: 'moveCursorUp', - 39: 'moveCursorRight', - 40: 'moveCursorDown', - 46: 'forwardDelete' - }, - - /** - * @private - */ - _ctrlKeysMap: { - 65: 'selectAll', - 88: 'cut' - }, - - onClick: function() { - // No need to trigger click event here, focus is enough to have the keyboard appear on Android - this.hiddenTextarea && this.hiddenTextarea.focus(); - }, - - /** - * Handles keyup event - * @param {Event} e Event object - */ - onKeyDown: function(e) { - if (!this.isEditing) { - return; - } - if (e.keyCode in this._keysMap) { - this[this._keysMap[e.keyCode]](e); - } - else if ((e.keyCode in this._ctrlKeysMap) && (e.ctrlKey || e.metaKey)) { - this[this._ctrlKeysMap[e.keyCode]](e); - } - else { - return; - } - e.stopImmediatePropagation(); - e.preventDefault(); - this.canvas && this.canvas.renderAll(); - }, - - /** - * Forward delete - */ - forwardDelete: function(e) { - if (this.selectionStart === this.selectionEnd) { - this.moveCursorRight(e); - } - this.removeChars(e); - }, - - /** - * Copies selected text - * @param {Event} e Event object - */ - copy: function(e) { - var selectedText = this.getSelectedText(), - clipboardData = this._getClipboardData(e); - - // Check for backward compatibility with old browsers - if (clipboardData) { - clipboardData.setData('text', selectedText); - } - - this.copiedText = selectedText; - this.copiedStyles = this.getSelectionStyles( - this.selectionStart, - this.selectionEnd); - }, - - /** - * Pastes text - * @param {Event} e Event object - */ - paste: function(e) { - var copiedText = null, - clipboardData = this._getClipboardData(e); - - // Check for backward compatibility with old browsers - if (clipboardData) { - copiedText = clipboardData.getData('text'); - } - else { - copiedText = this.copiedText; - } - - if (copiedText) { - this.insertChars(copiedText, true); - } - }, - - /** - * Cuts text - * @param {Event} e Event object - */ - cut: function(e) { - if (this.selectionStart === this.selectionEnd) { - return; - } - - this.copy(); - this.removeChars(e); - }, - - /** - * @private - * @param {Event} e Event object - * @return {Object} Clipboard data object - */ - _getClipboardData: function(e) { - return e && (e.clipboardData || fabric.window.clipboardData); - }, - - /** - * Handles keypress event - * @param {Event} e Event object - */ - onKeyPress: function(e) { - if (!this.isEditing || e.metaKey || e.ctrlKey) { - return; - } - if (e.which !== 0) { - this.insertChars(String.fromCharCode(e.which)); - } - e.stopPropagation(); - }, - - /** - * Gets start offset of a selection - * @param {Event} e Event object - * @param {Boolean} isRight - * @return {Number} - */ - getDownCursorOffset: function(e, isRight) { - var selectionProp = isRight ? this.selectionEnd : this.selectionStart, - _char, lineLeftOffset, - textBeforeCursor = this.text.slice(0, selectionProp), - textAfterCursor = this.text.slice(selectionProp), - - textOnSameLineBeforeCursor = textBeforeCursor.slice(textBeforeCursor.lastIndexOf('\n') + 1), - textOnSameLineAfterCursor = textAfterCursor.match(/(.*)\n?/)[1], - textOnNextLine = (textAfterCursor.match(/.*\n(.*)\n?/) || { })[1] || '', - - cursorLocation = this.get2DCursorLocation(selectionProp); - - // if on last line, down cursor goes to end of line - if (cursorLocation.lineIndex === this._textLines.length - 1 || e.metaKey || e.keyCode === 34) { - - // move to the end of a text - return this.text.length - selectionProp; - } - - var widthOfSameLineBeforeCursor = this._getLineWidth(this.ctx, cursorLocation.lineIndex); - lineLeftOffset = this._getLineLeftOffset(widthOfSameLineBeforeCursor); - - var widthOfCharsOnSameLineBeforeCursor = lineLeftOffset, - lineIndex = cursorLocation.lineIndex; - - for (var i = 0, len = textOnSameLineBeforeCursor.length; i < len; i++) { - _char = textOnSameLineBeforeCursor[i]; - widthOfCharsOnSameLineBeforeCursor += this._getWidthOfChar(this.ctx, _char, lineIndex, i); - } - - var indexOnNextLine = this._getIndexOnNextLine( - cursorLocation, textOnNextLine, widthOfCharsOnSameLineBeforeCursor); - - return textOnSameLineAfterCursor.length + 1 + indexOnNextLine; - }, - - /** - * @private - */ - _getIndexOnNextLine: function(cursorLocation, textOnNextLine, widthOfCharsOnSameLineBeforeCursor) { - var lineIndex = cursorLocation.lineIndex + 1, - widthOfNextLine = this._getLineWidth(this.ctx, lineIndex), - lineLeftOffset = this._getLineLeftOffset(widthOfNextLine), - widthOfCharsOnNextLine = lineLeftOffset, - indexOnNextLine = 0, - foundMatch; - - for (var j = 0, jlen = textOnNextLine.length; j < jlen; j++) { - - var _char = textOnNextLine[j], - widthOfChar = this._getWidthOfChar(this.ctx, _char, lineIndex, j); - - widthOfCharsOnNextLine += widthOfChar; - - if (widthOfCharsOnNextLine > widthOfCharsOnSameLineBeforeCursor) { - - foundMatch = true; - - var leftEdge = widthOfCharsOnNextLine - widthOfChar, - rightEdge = widthOfCharsOnNextLine, - offsetFromLeftEdge = Math.abs(leftEdge - widthOfCharsOnSameLineBeforeCursor), - offsetFromRightEdge = Math.abs(rightEdge - widthOfCharsOnSameLineBeforeCursor); - - indexOnNextLine = offsetFromRightEdge < offsetFromLeftEdge ? j + 1 : j; - - break; - } - } - - // reached end - if (!foundMatch) { - indexOnNextLine = textOnNextLine.length; - } - - return indexOnNextLine; - }, - - /** - * Moves cursor down - * @param {Event} e Event object - */ - moveCursorDown: function(e) { - this.abortCursorAnimation(); - this._currentCursorOpacity = 1; - - var offset = this.getDownCursorOffset(e, this._selectionDirection === 'right'); - - if (e.shiftKey) { - this.moveCursorDownWithShift(offset); - } - else { - this.moveCursorDownWithoutShift(offset); - } - - this.initDelayedCursor(); - }, - - /** - * Moves cursor down without keeping selection - * @param {Number} offset - */ - moveCursorDownWithoutShift: function(offset) { - this._selectionDirection = 'right'; - this.setSelectionStart(this.selectionStart + offset); - this.setSelectionEnd(this.selectionStart); - }, - - /** - * private - */ - swapSelectionPoints: function() { - var swapSel = this.selectionEnd; - this.setSelectionEnd(this.selectionStart); - this.setSelectionStart(swapSel); - }, - - /** - * Moves cursor down while keeping selection - * @param {Number} offset - */ - moveCursorDownWithShift: function(offset) { - if (this.selectionEnd === this.selectionStart) { - this._selectionDirection = 'right'; - } - if (this._selectionDirection === 'right') { - this.setSelectionEnd(this.selectionEnd + offset); - } - else { - this.setSelectionStart(this.selectionStart + offset); - } - if (this.selectionEnd < this.selectionStart && this._selectionDirection === 'left') { - this.swapSelectionPoints(); - this._selectionDirection = 'right'; - } - if (this.selectionEnd > this.text.length) { - this.setSelectionEnd(this.text.length); - } - }, - - /** - * @param {Event} e Event object - * @param {Boolean} isRight - * @return {Number} - */ - getUpCursorOffset: function(e, isRight) { - var selectionProp = isRight ? this.selectionEnd : this.selectionStart, - cursorLocation = this.get2DCursorLocation(selectionProp); - // if on first line, up cursor goes to start of line - if (cursorLocation.lineIndex === 0 || e.metaKey || e.keyCode === 33) { - return selectionProp; - } - - var textBeforeCursor = this.text.slice(0, selectionProp), - textOnSameLineBeforeCursor = textBeforeCursor.slice(textBeforeCursor.lastIndexOf('\n') + 1), - textOnPreviousLine = (textBeforeCursor.match(/\n?(.*)\n.*$/) || {})[1] || '', - _char, - widthOfSameLineBeforeCursor = this._getLineWidth(this.ctx, cursorLocation.lineIndex), - lineLeftOffset = this._getLineLeftOffset(widthOfSameLineBeforeCursor), - widthOfCharsOnSameLineBeforeCursor = lineLeftOffset, - lineIndex = cursorLocation.lineIndex; - - for (var i = 0, len = textOnSameLineBeforeCursor.length; i < len; i++) { - _char = textOnSameLineBeforeCursor[i]; - widthOfCharsOnSameLineBeforeCursor += this._getWidthOfChar(this.ctx, _char, lineIndex, i); - } - - var indexOnPrevLine = this._getIndexOnPrevLine( - cursorLocation, textOnPreviousLine, widthOfCharsOnSameLineBeforeCursor); - - return textOnPreviousLine.length - indexOnPrevLine + textOnSameLineBeforeCursor.length; - }, - - /** - * @private - */ - _getIndexOnPrevLine: function(cursorLocation, textOnPreviousLine, widthOfCharsOnSameLineBeforeCursor) { - - var lineIndex = cursorLocation.lineIndex - 1, - widthOfPreviousLine = this._getLineWidth(this.ctx, lineIndex), - lineLeftOffset = this._getLineLeftOffset(widthOfPreviousLine), - widthOfCharsOnPreviousLine = lineLeftOffset, - indexOnPrevLine = 0, - foundMatch; - - for (var j = 0, jlen = textOnPreviousLine.length; j < jlen; j++) { - - var _char = textOnPreviousLine[j], - widthOfChar = this._getWidthOfChar(this.ctx, _char, lineIndex, j); - - widthOfCharsOnPreviousLine += widthOfChar; - - if (widthOfCharsOnPreviousLine > widthOfCharsOnSameLineBeforeCursor) { - - foundMatch = true; - - var leftEdge = widthOfCharsOnPreviousLine - widthOfChar, - rightEdge = widthOfCharsOnPreviousLine, - offsetFromLeftEdge = Math.abs(leftEdge - widthOfCharsOnSameLineBeforeCursor), - offsetFromRightEdge = Math.abs(rightEdge - widthOfCharsOnSameLineBeforeCursor); - - indexOnPrevLine = offsetFromRightEdge < offsetFromLeftEdge ? j : (j - 1); - - break; - } - } - - // reached end - if (!foundMatch) { - indexOnPrevLine = textOnPreviousLine.length - 1; - } - - return indexOnPrevLine; - }, - - /** - * Moves cursor up - * @param {Event} e Event object - */ - moveCursorUp: function(e) { - - this.abortCursorAnimation(); - this._currentCursorOpacity = 1; - - var offset = this.getUpCursorOffset(e, this._selectionDirection === 'right'); - if (e.shiftKey) { - this.moveCursorUpWithShift(offset); - } - else { - this.moveCursorUpWithoutShift(offset); - } - - this.initDelayedCursor(); - }, - - /** - * Moves cursor up with shift - * @param {Number} offset - */ - moveCursorUpWithShift: function(offset) { - if (this.selectionEnd === this.selectionStart) { - this._selectionDirection = 'left'; - } - if (this._selectionDirection === 'right') { - this.setSelectionEnd(this.selectionEnd - offset); - } - else { - this.setSelectionStart(this.selectionStart - offset); - } - if (this.selectionEnd < this.selectionStart && this._selectionDirection === 'right') { - this.swapSelectionPoints(); - this._selectionDirection = 'left'; - } - }, - - /** - * Moves cursor up without shift - * @param {Number} offset - */ - moveCursorUpWithoutShift: function(offset) { - if (this.selectionStart === this.selectionEnd) { - this.setSelectionStart(this.selectionStart - offset); - } - this.setSelectionEnd(this.selectionStart); - - this._selectionDirection = 'left'; - }, - - /** - * Moves cursor left - * @param {Event} e Event object - */ - moveCursorLeft: function(e) { - if (this.selectionStart === 0 && this.selectionEnd === 0) { - return; - } - - this.abortCursorAnimation(); - this._currentCursorOpacity = 1; - - if (e.shiftKey) { - this.moveCursorLeftWithShift(e); - } - else { - this.moveCursorLeftWithoutShift(e); - } - - this.initDelayedCursor(); - }, - - /** - * @private - */ - _move: function(e, prop, direction) { - var propMethod = (prop === 'selectionStart' ? 'setSelectionStart' : 'setSelectionEnd'); - if (e.altKey) { - this[propMethod](this['findWordBoundary' + direction](this[prop])); - } - else if (e.metaKey || e.keyCode === 35 || e.keyCode === 36 ) { - this[propMethod](this['findLineBoundary' + direction](this[prop])); - } - else { - this[propMethod](this[prop] + (direction === 'Left' ? -1 : 1)); - } - }, - - /** - * @private - */ - _moveLeft: function(e, prop) { - this._move(e, prop, 'Left'); - }, - - /** - * @private - */ - _moveRight: function(e, prop) { - this._move(e, prop, 'Right'); - }, - - /** - * Moves cursor left without keeping selection - * @param {Event} e - */ - moveCursorLeftWithoutShift: function(e) { - this._selectionDirection = 'left'; - - // only move cursor when there is no selection, - // otherwise we discard it, and leave cursor on same place - if (this.selectionEnd === this.selectionStart) { - this._moveLeft(e, 'selectionStart'); - } - this.setSelectionEnd(this.selectionStart); - }, - - /** - * Moves cursor left while keeping selection - * @param {Event} e - */ - moveCursorLeftWithShift: function(e) { - if (this._selectionDirection === 'right' && this.selectionStart !== this.selectionEnd) { - this._moveLeft(e, 'selectionEnd'); - } - else { - this._selectionDirection = 'left'; - this._moveLeft(e, 'selectionStart'); - - // increase selection by one if it's a newline - if (this.text.charAt(this.selectionStart) === '\n') { - this.setSelectionStart(this.selectionStart - 1); - } - } - }, - - /** - * Moves cursor right - * @param {Event} e Event object - */ - moveCursorRight: function(e) { - if (this.selectionStart >= this.text.length && this.selectionEnd >= this.text.length) { - return; - } - - this.abortCursorAnimation(); - this._currentCursorOpacity = 1; - - if (e.shiftKey) { - this.moveCursorRightWithShift(e); - } - else { - this.moveCursorRightWithoutShift(e); - } - - this.initDelayedCursor(); - }, - - /** - * Moves cursor right while keeping selection - * @param {Event} e - */ - moveCursorRightWithShift: function(e) { - if (this._selectionDirection === 'left' && this.selectionStart !== this.selectionEnd) { - this._moveRight(e, 'selectionStart'); - } - else { - this._selectionDirection = 'right'; - this._moveRight(e, 'selectionEnd'); - - // increase selection by one if it's a newline - if (this.text.charAt(this.selectionEnd - 1) === '\n') { - this.setSelectionEnd(this.selectionEnd + 1); - } - } - }, - - /** - * Moves cursor right without keeping selection - * @param {Event} e Event object - */ - moveCursorRightWithoutShift: function(e) { - this._selectionDirection = 'right'; - - if (this.selectionStart === this.selectionEnd) { - this._moveRight(e, 'selectionStart'); - this.setSelectionEnd(this.selectionStart); - } - else { - this.setSelectionEnd(this.selectionEnd + this.getNumNewLinesInSelectedText()); - this.setSelectionStart(this.selectionEnd); - } - }, - - /** - * Removes characters selected by selection - * @param {Event} e Event object - */ - removeChars: function(e) { - if (this.selectionStart === this.selectionEnd) { - this._removeCharsNearCursor(e); - } - else { - this._removeCharsFromTo(this.selectionStart, this.selectionEnd); - } - - this.setSelectionEnd(this.selectionStart); - - this._removeExtraneousStyles(); - - this._clearCache(); - this.canvas && this.canvas.renderAll(); - - this.setCoords(); - this.fire('changed'); - this.canvas && this.canvas.fire('text:changed', { target: this }); - }, - - /** - * @private - * @param {Event} e Event object - */ - _removeCharsNearCursor: function(e) { - if (this.selectionStart !== 0) { - - if (e.metaKey) { - // remove all till the start of current line - var leftLineBoundary = this.findLineBoundaryLeft(this.selectionStart); - - this._removeCharsFromTo(leftLineBoundary, this.selectionStart); - this.setSelectionStart(leftLineBoundary); - } - else if (e.altKey) { - // remove all till the start of current word - var leftWordBoundary = this.findWordBoundaryLeft(this.selectionStart); - - this._removeCharsFromTo(leftWordBoundary, this.selectionStart); - this.setSelectionStart(leftWordBoundary); - } - else { - var isBeginningOfLine = this.text.slice(this.selectionStart - 1, this.selectionStart) === '\n'; - this.removeStyleObject(isBeginningOfLine); - this.setSelectionStart(this.selectionStart - 1); - this.text = this.text.slice(0, this.selectionStart) + - this.text.slice(this.selectionStart + 1); - } - } - } -}); - - -/* _TO_SVG_START_ */ -fabric.util.object.extend(fabric.IText.prototype, /** @lends fabric.IText.prototype */ { - - /** - * @private - */ - _setSVGTextLineText: function(lineIndex, textSpans, height, textLeftOffset, textTopOffset, textBgRects) { - if (!this.styles[lineIndex]) { - this.callSuper('_setSVGTextLineText', - lineIndex, textSpans, height, textLeftOffset, textTopOffset); - } - else { - this._setSVGTextLineChars( - lineIndex, textSpans, height, textLeftOffset, textBgRects); - } - }, - - /** - * @private - */ - _setSVGTextLineChars: function(lineIndex, textSpans, height, textLeftOffset, textBgRects) { - - var chars = this._textLines[lineIndex].split(''), - charOffset = 0, - lineLeftOffset = this._getSVGLineLeftOffset(lineIndex) - this.width / 2, - lineOffset = this._getSVGLineTopOffset(lineIndex), - heightOfLine = this._getHeightOfLine(this.ctx, lineIndex); - - for (var i = 0, len = chars.length; i < len; i++) { - var styleDecl = this.styles[lineIndex][i] || { }; - - textSpans.push( - this._createTextCharSpan( - chars[i], styleDecl, lineLeftOffset, lineOffset.lineTop + lineOffset.offset, charOffset)); - - var charWidth = this._getWidthOfChar(this.ctx, chars[i], lineIndex, i); - - if (styleDecl.textBackgroundColor) { - textBgRects.push( - this._createTextCharBg( - styleDecl, lineLeftOffset, lineOffset.lineTop, heightOfLine, charWidth, charOffset)); - } - - charOffset += charWidth; - } - }, - - /** - * @private - */ - _getSVGLineLeftOffset: function(lineIndex) { - return fabric.util.toFixed(this._getLineLeftOffset(this.__lineWidths[lineIndex]), 2); - }, - - /** - * @private - */ - _getSVGLineTopOffset: function(lineIndex) { - var lineTopOffset = 0, lastHeight = 0; - for (var j = 0; j < lineIndex; j++) { - lineTopOffset += this._getHeightOfLine(this.ctx, j); - } - lastHeight = this._getHeightOfLine(this.ctx, j); - return { - lineTop: lineTopOffset, - offset: (this._fontSizeMult - this._fontSizeFraction) * lastHeight / (this.lineHeight * this._fontSizeMult) - }; - }, - - /** - * @private - */ - _createTextCharBg: function(styleDecl, lineLeftOffset, lineTopOffset, heightOfLine, charWidth, charOffset) { - return [ - //jscs:disable validateIndentation - '' - //jscs:enable validateIndentation - ].join(''); - }, - - /** - * @private - */ - _createTextCharSpan: function(_char, styleDecl, lineLeftOffset, lineTopOffset, charOffset) { - - var fillStyles = this.getSvgStyles.call(fabric.util.object.extend({ - visible: true, - fill: this.fill, - stroke: this.stroke, - type: 'text' - }, styleDecl)); - - return [ - //jscs:disable validateIndentation - '', - fabric.util.string.escapeXml(_char), - '' - //jscs:enable validateIndentation - ].join(''); - } -}); -/* _TO_SVG_END_ */ - - -(function() { - - if (typeof document !== 'undefined' && typeof window !== 'undefined') { - return; - } - - var DOMParser = require('xmldom').DOMParser, - URL = require('url'), - HTTP = require('http'), - HTTPS = require('https'), - - Canvas = require('canvas'), - Image = require('canvas').Image; - - /** @private */ - function request(url, encoding, callback) { - var oURL = URL.parse(url); - - // detect if http or https is used - if ( !oURL.port ) { - oURL.port = ( oURL.protocol.indexOf('https:') === 0 ) ? 443 : 80; - } - - // assign request handler based on protocol - var reqHandler = (oURL.protocol.indexOf('https:') === 0 ) ? HTTPS : HTTP, - req = reqHandler.request({ - hostname: oURL.hostname, - port: oURL.port, - path: oURL.path, - method: 'GET' - }, function(response) { - var body = ''; - if (encoding) { - response.setEncoding(encoding); - } - response.on('end', function () { - callback(body); - }); - response.on('data', function (chunk) { - if (response.statusCode === 200) { - body += chunk; - } - }); - }); - - req.on('error', function(err) { - if (err.errno === process.ECONNREFUSED) { - fabric.log('ECONNREFUSED: connection refused to ' + oURL.hostname + ':' + oURL.port); - } - else { - fabric.log(err.message); - } - }); - - req.end(); - } - - /** @private */ - function requestFs(path, callback) { - var fs = require('fs'); - fs.readFile(path, function (err, data) { - if (err) { - fabric.log(err); - throw err; - } - else { - callback(data); - } - }); - } - - fabric.util.loadImage = function(url, callback, context) { - function createImageAndCallBack(data) { - img.src = new Buffer(data, 'binary'); - // preserving original url, which seems to be lost in node-canvas - img._src = url; - callback && callback.call(context, img); - } - var img = new Image(); - if (url && (url instanceof Buffer || url.indexOf('data') === 0)) { - img.src = img._src = url; - callback && callback.call(context, img); - } - else if (url && url.indexOf('http') !== 0) { - requestFs(url, createImageAndCallBack); - } - else if (url) { - request(url, 'binary', createImageAndCallBack); - } - else { - callback && callback.call(context, url); - } - }; - - fabric.loadSVGFromURL = function(url, callback, reviver) { - url = url.replace(/^\n\s*/, '').replace(/\?.*$/, '').trim(); - if (url.indexOf('http') !== 0) { - requestFs(url, function(body) { - fabric.loadSVGFromString(body.toString(), callback, reviver); - }); - } - else { - request(url, '', function(body) { - fabric.loadSVGFromString(body, callback, reviver); - }); - } - }; - - fabric.loadSVGFromString = function(string, callback, reviver) { - var doc = new DOMParser().parseFromString(string); - fabric.parseSVGDocument(doc.documentElement, function(results, options) { - callback && callback(results, options); - }, reviver); - }; - - fabric.util.getScript = function(url, callback) { - request(url, '', function(body) { - eval(body); - callback && callback(); - }); - }; - - fabric.Image.fromObject = function(object, callback) { - fabric.util.loadImage(object.src, function(img) { - var oImg = new fabric.Image(img); - - oImg._initConfig(object); - oImg._initFilters(object, function(filters) { - oImg.filters = filters || [ ]; - callback && callback(oImg); - }); - }); - }; - - /** - * Only available when running fabric on node.js - * @param {Number} width Canvas width - * @param {Number} height Canvas height - * @param {Object} [options] Options to pass to FabricCanvas. - * @param {Object} [nodeCanvasOptions] Options to pass to NodeCanvas. - * @return {Object} wrapped canvas instance - */ - fabric.createCanvasForNode = function(width, height, options, nodeCanvasOptions) { - nodeCanvasOptions = nodeCanvasOptions || options; - - var canvasEl = fabric.document.createElement('canvas'), - nodeCanvas = new Canvas(width || 600, height || 600, nodeCanvasOptions); - - // jsdom doesn't create style on canvas element, so here be temp. workaround - canvasEl.style = { }; - - canvasEl.width = nodeCanvas.width; - canvasEl.height = nodeCanvas.height; - - var FabricCanvas = fabric.Canvas || fabric.StaticCanvas, - fabricCanvas = new FabricCanvas(canvasEl, options); - - fabricCanvas.contextContainer = nodeCanvas.getContext('2d'); - fabricCanvas.nodeCanvas = nodeCanvas; - fabricCanvas.Font = Canvas.Font; - - return fabricCanvas; - }; - - /** @ignore */ - fabric.StaticCanvas.prototype.createPNGStream = function() { - return this.nodeCanvas.createPNGStream(); - }; - - fabric.StaticCanvas.prototype.createJPEGStream = function(opts) { - return this.nodeCanvas.createJPEGStream(opts); - }; - - var origSetWidth = fabric.StaticCanvas.prototype.setWidth; - fabric.StaticCanvas.prototype.setWidth = function(width, options) { - origSetWidth.call(this, width, options); - this.nodeCanvas.width = width; - return this; - }; - if (fabric.Canvas) { - fabric.Canvas.prototype.setWidth = fabric.StaticCanvas.prototype.setWidth; - } - - var origSetHeight = fabric.StaticCanvas.prototype.setHeight; - fabric.StaticCanvas.prototype.setHeight = function(height, options) { - origSetHeight.call(this, height, options); - this.nodeCanvas.height = height; - return this; - }; - if (fabric.Canvas) { - fabric.Canvas.prototype.setHeight = fabric.StaticCanvas.prototype.setHeight; - } - -})(); diff --git a/chronos/static/js/amcharts/plugins/export/libs/fabric.js/fabric.min.js b/chronos/static/js/amcharts/plugins/export/libs/fabric.js/fabric.min.js deleted file mode 100644 index ddd6a41..0000000 --- a/chronos/static/js/amcharts/plugins/export/libs/fabric.js/fabric.min.js +++ /dev/null @@ -1,15 +0,0 @@ -var fabric=fabric||{version:"1.5.0"};if(typeof exports!=="undefined"){exports.fabric=fabric}if(typeof document!=="undefined"&&typeof window!=="undefined"){fabric.document=document;fabric.window=window;window.fabric=fabric}else{fabric.document=require("jsdom").jsdom("");if(fabric.document.createWindow){fabric.window=fabric.document.createWindow()}else{fabric.window=fabric.document.parentWindow}}fabric.isTouchSupported="ontouchstart"in fabric.document.documentElement;fabric.isLikelyNode=typeof Buffer!=="undefined"&&typeof window==="undefined";fabric.SHARED_ATTRIBUTES=["display","transform","fill","fill-opacity","fill-rule","opacity","stroke","stroke-dasharray","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width"];fabric.DPI=96;fabric.reNum="(?:[-+]?(?:\\d+|\\d*\\.\\d+)(?:e[-+]?\\d+)?)";(function(){function _removeEventListener(eventName,handler){if(!this.__eventListeners[eventName]){return}if(handler){fabric.util.removeFromArray(this.__eventListeners[eventName],handler)}else{this.__eventListeners[eventName].length=0}}function observe(eventName,handler){if(!this.__eventListeners){this.__eventListeners={}}if(arguments.length===1){for(var prop in eventName){this.on(prop,eventName[prop])}}else{if(!this.__eventListeners[eventName]){this.__eventListeners[eventName]=[]}this.__eventListeners[eventName].push(handler)}return this}function stopObserving(eventName,handler){if(!this.__eventListeners){return}if(arguments.length===0){this.__eventListeners={}}else if(arguments.length===1&&typeof arguments[0]==="object"){for(var prop in eventName){_removeEventListener.call(this,prop,eventName[prop])}}else{_removeEventListener.call(this,eventName,handler)}return this}function fire(eventName,options){if(!this.__eventListeners){return}var listenersForEvent=this.__eventListeners[eventName];if(!listenersForEvent){return}for(var i=0,len=listenersForEvent.length;i-1},complexity:function(){return this.getObjects().reduce(function(memo,current){memo+=current.complexity?current.complexity():0;return memo},0)}};(function(global){var sqrt=Math.sqrt,atan2=Math.atan2,PiBy180=Math.PI/180;fabric.util={removeFromArray:function(array,value){var idx=array.indexOf(value);if(idx!==-1){array.splice(idx,1)}return array},getRandomInt:function(min,max){return Math.floor(Math.random()*(max-min+1))+min},degreesToRadians:function(degrees){return degrees*PiBy180},radiansToDegrees:function(radians){return radians/PiBy180},rotatePoint:function(point,origin,radians){var sin=Math.sin(radians),cos=Math.cos(radians);point.subtractEquals(origin);var rx=point.x*cos-point.y*sin,ry=point.x*sin+point.y*cos;return new fabric.Point(rx,ry).addEquals(origin)},transformPoint:function(p,t,ignoreOffset){if(ignoreOffset){return new fabric.Point(t[0]*p.x+t[2]*p.y,t[1]*p.x+t[3]*p.y)}return new fabric.Point(t[0]*p.x+t[2]*p.y+t[4],t[1]*p.x+t[3]*p.y+t[5])},invertTransform:function(t){var r=t.slice(),a=1/(t[0]*t[3]-t[1]*t[2]);r=[a*t[3],-a*t[1],-a*t[2],a*t[0],0,0];var o=fabric.util.transformPoint({x:t[4],y:t[5]},r);r[4]=-o.x;r[5]=-o.y;return r},toFixed:function(number,fractionDigits){return parseFloat(Number(number).toFixed(fractionDigits))},parseUnit:function(value,fontSize){var unit=/\D{0,2}$/.exec(value),number=parseFloat(value);if(!fontSize){fontSize=fabric.Text.DEFAULT_SVG_FONT_SIZE}switch(unit[0]){case"mm":return number*fabric.DPI/25.4;case"cm":return number*fabric.DPI/2.54;case"in":return number*fabric.DPI;case"pt":return number*fabric.DPI/72;case"pc":return number*fabric.DPI/72*12;case"em":return number*fontSize;default:return number}},falseFunction:function(){return false},getKlass:function(type,namespace){type=fabric.util.string.camelize(type.charAt(0).toUpperCase()+type.slice(1));return fabric.util.resolveNamespace(namespace)[type]},resolveNamespace:function(namespace){if(!namespace){return fabric}var parts=namespace.split("."),len=parts.length,obj=global||fabric.window;for(var i=0;ix){x+=da[di++%dc];if(x>len){x=len}ctx[draw?"lineTo":"moveTo"](x,0);draw=!draw}ctx.restore()},createCanvasElement:function(canvasEl){canvasEl||(canvasEl=fabric.document.createElement("canvas"));if(!canvasEl.getContext&&typeof G_vmlCanvasManager!=="undefined"){G_vmlCanvasManager.initElement(canvasEl)}return canvasEl},createImage:function(){return fabric.isLikelyNode?new(require("canvas").Image):fabric.document.createElement("img")},createAccessors:function(klass){var proto=klass.prototype;for(var i=proto.stateProperties.length;i--;){var propName=proto.stateProperties[i],capitalizedPropName=propName.charAt(0).toUpperCase()+propName.slice(1),setterName="set"+capitalizedPropName,getterName="get"+capitalizedPropName;if(!proto[getterName]){proto[getterName]=function(property){return new Function('return this.get("'+property+'")')}(propName)}if(!proto[setterName]){proto[setterName]=function(property){return new Function("value",'return this.set("'+property+'", value)')}(propName)}}},clipContext:function(receiver,ctx){ctx.save();ctx.beginPath();receiver.clipTo(ctx);ctx.clip()},multiplyTransformMatrices:function(a,b){return[a[0]*b[0]+a[2]*b[1],a[1]*b[0]+a[3]*b[1],a[0]*b[2]+a[2]*b[3],a[1]*b[2]+a[3]*b[3],a[0]*b[4]+a[2]*b[5]+a[4],a[1]*b[4]+a[3]*b[5]+a[5]]},getFunctionBody:function(fn){return(String(fn).match(/function[^{]*\{([\s\S]*)\}/)||{})[1]},isTransparent:function(ctx,x,y,tolerance){if(tolerance>0){if(x>tolerance){x-=tolerance}else{x=0}if(y>tolerance){y-=tolerance}else{y=0}}var _isTransparent=true,imageData=ctx.getImageData(x,y,tolerance*2||1,tolerance*2||1);for(var i=3,l=imageData.data.length;i0){dtheta-=2*PI}else if(sweep===1&&dtheta<0){dtheta+=2*PI}var segments=Math.ceil(Math.abs(dtheta/PI*2)),result=[],mDelta=dtheta/segments,mT=8/3*Math.sin(mDelta/4)*Math.sin(mDelta/4)/Math.sin(mDelta/2),th3=mTheta+mDelta;for(var i=0;i=ta){return tb-ta}else{return 2*Math.PI-(ta-tb)}}fabric.util.drawArc=function(ctx,fx,fy,coords){var rx=coords[0],ry=coords[1],rot=coords[2],large=coords[3],sweep=coords[4],tx=coords[5],ty=coords[6],segs=[[],[],[],[]],segsNorm=arcToSegments(tx-fx,ty-fy,rx,ry,large,sweep,rot);for(var i=0,len=segsNorm.length;i0){b=6*y0-12*y1+6*y2;a=-3*y0+9*y1-9*y2+3*y3;c=3*y1-3*y0}if(abs(a)<1e-12){if(abs(b)<1e-12){continue}t=-c/b;if(0>>0;if(len===0){return-1}var n=0;if(arguments.length>0){n=Number(arguments[1]);if(n!==n){n=0}else if(n!==0&&n!==Number.POSITIVE_INFINITY&&n!==Number.NEGATIVE_INFINITY){n=(n>0||-1)*Math.floor(Math.abs(n))}}if(n>=len){return-1}var k=n>=0?n:Math.max(len-Math.abs(n),0);for(;k>>0;i>>0;i>>0;i>>0;i>>0;i>>0,i=0,rv;if(arguments.length>1){rv=arguments[1]}else{do{if(i in this){rv=this[i++];break}if(++i>=len){throw new TypeError}}while(true)}for(;i=value2})}function min(array,byProperty){return find(array,byProperty,function(value1,value2){return value1/g,">")}fabric.util.string={camelize:camelize,capitalize:capitalize,escapeXml:escapeXml}})();(function(){var slice=Array.prototype.slice,apply=Function.prototype.apply,Dummy=function(){};if(!Function.prototype.bind){Function.prototype.bind=function(thisArg){var _this=this,args=slice.call(arguments,1),bound;if(args.length){bound=function(){return apply.call(_this,this instanceof Dummy?this:thisArg,args.concat(slice.call(arguments)))}}else{bound=function(){return apply.call(_this,this instanceof Dummy?this:thisArg,arguments)}}Dummy.prototype=this.prototype;bound.prototype=new Dummy;return bound}}})();(function(){var slice=Array.prototype.slice,emptyFunction=function(){},IS_DONTENUM_BUGGY=function(){for(var p in{toString:1}){if(p==="toString"){return false}}return true}(),addMethods=function(klass,source,parent){for(var property in source){if(property in klass.prototype&&typeof klass.prototype[property]==="function"&&(source[property]+"").indexOf("callSuper")>-1){klass.prototype[property]=function(property){return function(){var superclass=this.constructor.superclass;this.constructor.superclass=parent;var returnValue=source[property].apply(this,arguments);this.constructor.superclass=superclass;if(property!=="initialize"){return returnValue}}}(property)}else{klass.prototype[property]=source[property]}if(IS_DONTENUM_BUGGY){if(source.toString!==Object.prototype.toString){klass.prototype.toString=source.toString}if(source.valueOf!==Object.prototype.valueOf){klass.prototype.valueOf=source.valueOf}}}};function Subclass(){}function callSuper(methodName){var fn=this.constructor.superclass.prototype[methodName];return arguments.length>1?fn.apply(this,slice.call(arguments,1)):fn.call(this)}function createClass(){var parent=null,properties=slice.call(arguments,0);if(typeof properties[0]==="function"){parent=properties.shift()}function klass(){this.initialize.apply(this,arguments)}klass.superclass=parent;klass.subclasses=[];if(parent){Subclass.prototype=parent.prototype;klass.prototype=new Subclass;parent.subclasses.push(klass)}for(var i=0,length=properties.length;i-1?setOpacity(element,styles.match(/opacity:\s*(\d?\.?\d*)/)[1]):element}for(var property in styles){if(property==="opacity"){setOpacity(element,styles[property])}else{var normalizedProperty=property==="float"||property==="cssFloat"?typeof elementStyle.styleFloat==="undefined"?"cssFloat":"styleFloat":property;elementStyle[normalizedProperty]=styles[property]}}return element}var parseEl=fabric.document.createElement("div"),supportsOpacity=typeof parseEl.style.opacity==="string",supportsFilters=typeof parseEl.style.filter==="string",reOpacity=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,setOpacity=function(element){return element};if(supportsOpacity){setOpacity=function(element,value){element.style.opacity=value;return element}}else if(supportsFilters){setOpacity=function(element,value){var es=element.style;if(element.currentStyle&&!element.currentStyle.hasLayout){es.zoom=1}if(reOpacity.test(es.filter)){value=value>=.9999?"":"alpha(opacity="+value*100+")";es.filter=es.filter.replace(reOpacity,value)}else{es.filter+=" alpha(opacity="+value*100+")"}return element}}fabric.util.setStyle=setStyle})();(function(){var _slice=Array.prototype.slice;function getById(id){return typeof id==="string"?fabric.document.getElementById(id):id}var sliceCanConvertNodelists,toArray=function(arrayLike){return _slice.call(arrayLike,0)};try{sliceCanConvertNodelists=toArray(fabric.document.childNodes)instanceof Array}catch(err){}if(!sliceCanConvertNodelists){toArray=function(arrayLike){var arr=new Array(arrayLike.length),i=arrayLike.length;while(i--){arr[i]=arrayLike[i]}return arr}}function makeElement(tagName,attributes){var el=fabric.document.createElement(tagName);for(var prop in attributes){if(prop==="class"){el.className=attributes[prop]}else if(prop==="for"){el.htmlFor=attributes[prop]}else{el.setAttribute(prop,attributes[prop])}}return el}function addClass(element,className){if(element&&(" "+element.className+" ").indexOf(" "+className+" ")===-1){element.className+=(element.className?" ":"")+className}}function wrapElement(element,wrapper,attributes){if(typeof wrapper==="string"){wrapper=makeElement(wrapper,attributes)}if(element.parentNode){element.parentNode.replaceChild(wrapper,element)}wrapper.appendChild(element);return wrapper}function getScrollLeftTop(element,upperCanvasEl){var firstFixedAncestor,origElement,left=0,top=0,docElement=fabric.document.documentElement,body=fabric.document.body||{scrollLeft:0,scrollTop:0};origElement=element;while(element&&element.parentNode&&!firstFixedAncestor){element=element.parentNode;if(element.nodeType===1&&fabric.util.getElementStyle(element,"position")==="fixed"){firstFixedAncestor=element}if(element.nodeType===1&&origElement!==upperCanvasEl&&fabric.util.getElementStyle(element,"position")==="absolute"){left=0;top=0}else if(element===fabric.document){left=body.scrollLeft||docElement.scrollLeft||0;top=body.scrollTop||docElement.scrollTop||0}else{left+=element.scrollLeft||0;top+=element.scrollTop||0}}return{left:left,top:top}}function getElementOffset(element){var docElem,doc=element&&element.ownerDocument,box={left:0,top:0},offset={left:0,top:0},scrollLeftTop,offsetAttributes={borderLeftWidth:"left",borderTopWidth:"top",paddingLeft:"left",paddingTop:"top"};if(!doc){return{left:0,top:0}}for(var attr in offsetAttributes){offset[offsetAttributes[attr]]+=parseInt(getElementStyle(element,attr),10)||0}docElem=doc.documentElement;if(typeof element.getBoundingClientRect!=="undefined"){box=element.getBoundingClientRect()}scrollLeftTop=fabric.util.getScrollLeftTop(element,null);return{left:box.left+scrollLeftTop.left-(docElem.clientLeft||0)+offset.left,top:box.top+scrollLeftTop.top-(docElem.clientTop||0)+offset.top}}var getElementStyle;if(fabric.document.defaultView&&fabric.document.defaultView.getComputedStyle){getElementStyle=function(element,attr){var style=fabric.document.defaultView.getComputedStyle(element,null);return style?style[attr]:undefined}}else{getElementStyle=function(element,attr){var value=element.style[attr];if(!value&&element.currentStyle){value=element.currentStyle[attr]}return value}}(function(){var style=fabric.document.documentElement.style,selectProp="userSelect"in style?"userSelect":"MozUserSelect"in style?"MozUserSelect":"WebkitUserSelect"in style?"WebkitUserSelect":"KhtmlUserSelect"in style?"KhtmlUserSelect":"";function makeElementUnselectable(element){if(typeof element.onselectstart!=="undefined"){element.onselectstart=fabric.util.falseFunction}if(selectProp){element.style[selectProp]="none"}else if(typeof element.unselectable==="string"){element.unselectable="on"}return element}function makeElementSelectable(element){if(typeof element.onselectstart!=="undefined"){element.onselectstart=null}if(selectProp){element.style[selectProp]=""}else if(typeof element.unselectable==="string"){element.unselectable=""}return element}fabric.util.makeElementUnselectable=makeElementUnselectable;fabric.util.makeElementSelectable=makeElementSelectable})();(function(){function getScript(url,callback){var headEl=fabric.document.getElementsByTagName("head")[0],scriptEl=fabric.document.createElement("script"),loading=true;scriptEl.onload=scriptEl.onreadystatechange=function(e){if(loading){if(typeof this.readyState==="string"&&this.readyState!=="loaded"&&this.readyState!=="complete"){return}loading=false;callback(e||fabric.window.event);scriptEl=scriptEl.onload=scriptEl.onreadystatechange=null}};scriptEl.src=url;headEl.appendChild(scriptEl)}fabric.util.getScript=getScript})();fabric.util.getById=getById;fabric.util.toArray=toArray;fabric.util.makeElement=makeElement;fabric.util.addClass=addClass;fabric.util.wrapElement=wrapElement;fabric.util.getScrollLeftTop=getScrollLeftTop;fabric.util.getElementOffset=getElementOffset;fabric.util.getElementStyle=getElementStyle})();(function(){function addParamToUrl(url,param){return url+(/\?/.test(url)?"&":"?")+param}var makeXHR=function(){var factories=[function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP.3.0")},function(){return new XMLHttpRequest}];for(var i=factories.length;i--;){try{var req=factories[i]();if(req){return factories[i]}}catch(err){}}}();function emptyFn(){}function request(url,options){options||(options={});var method=options.method?options.method.toUpperCase():"GET",onComplete=options.onComplete||function(){},xhr=makeXHR(),body;xhr.onreadystatechange=function(){if(xhr.readyState===4){onComplete(xhr);xhr.onreadystatechange=emptyFn}};if(method==="GET"){body=null;if(typeof options.parameters==="string"){url=addParamToUrl(url,options.parameters)}}xhr.open(method,url,true);if(method==="POST"||method==="PUT"){xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded")}xhr.send(body);return xhr}fabric.util.request=request})();fabric.log=function(){};fabric.warn=function(){};if(typeof console!=="undefined"){["log","warn"].forEach(function(methodName){if(typeof console[methodName]!=="undefined"&&typeof console[methodName].apply==="function"){fabric[methodName]=function(){return console[methodName].apply(console,arguments)}}})}(function(){function animate(options){requestAnimFrame(function(timestamp){options||(options={});var start=timestamp||+new Date,duration=options.duration||500,finish=start+duration,time,onChange=options.onChange||function(){},abort=options.abort||function(){return false},easing=options.easing||function(t,b,c,d){return-c*Math.cos(t/d*(Math.PI/2))+c+b},startValue="startValue"in options?options.startValue:0,endValue="endValue"in options?options.endValue:100,byValue=options.byValue||endValue-startValue;options.onStart&&options.onStart();(function tick(ticktime){time=ticktime||+new Date;var currentTime=time>finish?duration:time-start;if(abort()){options.onComplete&&options.onComplete();return}onChange(easing(currentTime,startValue,byValue,duration));if(time>finish){options.onComplete&&options.onComplete();return}requestAnimFrame(tick)})(start)})}var _requestAnimFrame=fabric.window.requestAnimationFrame||fabric.window.webkitRequestAnimationFrame||fabric.window.mozRequestAnimationFrame||fabric.window.oRequestAnimationFrame||fabric.window.msRequestAnimationFrame||function(callback){fabric.window.setTimeout(callback,1e3/60)};function requestAnimFrame(){return _requestAnimFrame.apply(fabric.window,arguments)}fabric.util.animate=animate;fabric.util.requestAnimFrame=requestAnimFrame})();(function(){function normalize(a,c,p,s){if(a1){matrices.shift();combinedMatrix=fabric.util.multiplyTransformMatrices(combinedMatrix,matrices[0])}return combinedMatrix}}();function parseStyleString(style,oStyle){var attr,value;style.replace(/;$/,"").split(";").forEach(function(chunk){var pair=chunk.split(":");attr=normalizeAttr(pair[0].trim().toLowerCase());value=normalizeValue(attr,pair[1].trim());oStyle[attr]=value})}function parseStyleObject(style,oStyle){var attr,value;for(var prop in style){if(typeof style[prop]==="undefined"){continue}attr=normalizeAttr(prop.toLowerCase());value=normalizeValue(attr,style[prop]);oStyle[attr]=value}}function getGlobalStylesForElement(element,svgUid){var styles={};for(var rule in fabric.cssRules[svgUid]){if(elementMatchesRule(element,rule.split(" "))){for(var property in fabric.cssRules[svgUid][rule]){styles[property]=fabric.cssRules[svgUid][rule][property]}}}return styles}function elementMatchesRule(element,selectors){var firstMatching,parentMatching=true;firstMatching=selectorMatches(element,selectors.pop());if(firstMatching&&selectors.length){parentMatching=doesSomeParentMatch(element,selectors)}return firstMatching&&parentMatching&&selectors.length===0}function doesSomeParentMatch(element,selectors){var selector,parentMatching=true;while(element.parentNode&&element.parentNode.nodeType===1&&selectors.length){if(parentMatching){selector=selectors.pop()}element=element.parentNode;parentMatching=selectorMatches(element,selector)}return selectors.length===0}function selectorMatches(element,selector){var nodeName=element.nodeName,classNames=element.getAttribute("class"),id=element.getAttribute("id"),matcher;matcher=new RegExp("^"+nodeName,"i");selector=selector.replace(matcher,"");if(id&&selector.length){matcher=new RegExp("#"+id+"(?![a-zA-Z\\-]+)","i");selector=selector.replace(matcher,"")}if(classNames&&selector.length){classNames=classNames.split(" ");for(var i=classNames.length;i--;){matcher=new RegExp("\\."+classNames[i]+"(?![a-zA-Z\\-]+)","i");selector=selector.replace(matcher,"")}}return selector.length===0}function parseUseDirectives(doc){var nodelist=doc.getElementsByTagName("use");while(nodelist.length){var el=nodelist[0],xlink=el.getAttribute("xlink:href").substr(1),x=el.getAttribute("x")||0,y=el.getAttribute("y")||0,el2=doc.getElementById(xlink).cloneNode(true),currentTrans=(el2.getAttribute("transform")||"")+" translate("+x+", "+y+")",parentNode;for(var j=0,attrs=el.attributes,l=attrs.length;jscaleY?scaleY:scaleX;if(!(scaleX!==1||scaleY!==1||minX!==0||minY!==0)){return}matrix=" matrix("+scaleX+" 0"+" 0 "+scaleY+" "+minX*scaleX+" "+minY*scaleY+") ";if(element.tagName==="svg"){el=element.ownerDocument.createElement("g");while(element.firstChild!=null){el.appendChild(element.firstChild)}element.appendChild(el)}else{el=element;matrix=el.getAttribute("transform")+matrix}el.setAttribute("transform",matrix)}fabric.parseSVGDocument=function(){var reAllowedSVGTagNames=/^(path|circle|polygon|polyline|ellipse|rect|line|image|text)$/,reViewBoxTagNames=/^(symbol|image|marker|pattern|view)$/;function hasAncestorWithNodeName(element,nodeName){while(element&&(element=element.parentNode)){if(nodeName.test(element.nodeName)&&!element.getAttribute("instantiated_by_use")){return true}}return false}return function(doc,callback,reviver){if(!doc){return}parseUseDirectives(doc);var startTime=new Date,svgUid=fabric.Object.__uid++,widthAttr,heightAttr,toBeParsed=false;if(doc.getAttribute("width")&&doc.getAttribute("width")!=="100%"){widthAttr=parseUnit(doc.getAttribute("width"))}if(doc.getAttribute("height")&&doc.getAttribute("height")!=="100%"){heightAttr=parseUnit(doc.getAttribute("height"))}if(!widthAttr||!heightAttr){var viewBoxAttr=doc.getAttribute("viewBox");if(viewBoxAttr&&(viewBoxAttr=viewBoxAttr.match(reViewBoxAttrValue))){widthAttr=parseFloat(viewBoxAttr[3]),heightAttr=parseFloat(viewBoxAttr[4])}else{toBeParsed=true}}addVBTransform(doc,widthAttr,heightAttr);var descendants=fabric.util.toArray(doc.getElementsByTagName("*"));if(descendants.length===0&&fabric.isLikelyNode){descendants=doc.selectNodes('//*[name(.)!="svg"]');var arr=[];for(var i=0,len=descendants.length;i','')}}var reFontDeclaration=new RegExp("(normal|italic)?\\s*(normal|small-caps)?\\s*"+"(normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900)?\\s*("+fabric.reNum+"(?:px|cm|mm|em|pt|pc|in)*)(?:\\/(normal|"+fabric.reNum+"))?\\s+(.*)");extend(fabric,{parseFontDeclaration:function(value,oStyle){var match=value.match(reFontDeclaration);if(!match){return}var fontStyle=match[1],fontWeight=match[3],fontSize=match[4],lineHeight=match[5],fontFamily=match[6];if(fontStyle){oStyle.fontStyle=fontStyle}if(fontWeight){oStyle.fontWeight=isNaN(parseFloat(fontWeight))?fontWeight:parseFloat(fontWeight)}if(fontSize){oStyle.fontSize=parseUnit(fontSize)}if(fontFamily){oStyle.fontFamily=fontFamily}if(lineHeight){oStyle.lineHeight=lineHeight==="normal"?1:lineHeight}},getGradientDefs:function(doc){var linearGradientEls=doc.getElementsByTagName("linearGradient"),radialGradientEls=doc.getElementsByTagName("radialGradient"),el,i,j=0,id,xlink,elList=[],gradientDefs={},idsToXlinkMap={};elList.length=linearGradientEls.length+radialGradientEls.length;i=linearGradientEls.length;while(i--){elList[j++]=linearGradientEls[i]}i=radialGradientEls.length;while(i--){elList[j++]=radialGradientEls[i]}while(j--){el=elList[j];xlink=el.getAttribute("xlink:href");id=el.getAttribute("id");if(xlink){idsToXlinkMap[id]=xlink.substr(1)}gradientDefs[id]=el}for(id in idsToXlinkMap){var el2=gradientDefs[idsToXlinkMap[id]].cloneNode(true);el=gradientDefs[id];while(el2.firstChild){el.appendChild(el2.firstChild)}}return gradientDefs},parseAttributes:function(element,attributes,svgUid){if(!element){return}var value,parentAttributes={},fontSize;if(typeof svgUid==="undefined"){svgUid=element.getAttribute("svgUid")}if(element.parentNode&&/^symbol|[g|a]$/i.test(element.parentNode.nodeName)){parentAttributes=fabric.parseAttributes(element.parentNode,attributes,svgUid)}fontSize=parentAttributes&&parentAttributes.fontSize||element.getAttribute("font-size")||fabric.Text.DEFAULT_SVG_FONT_SIZE;var ownAttributes=attributes.reduce(function(memo,attr){value=element.getAttribute(attr);if(value){attr=normalizeAttr(attr);value=normalizeValue(attr,value,parentAttributes,fontSize);memo[attr]=value}return memo},{});ownAttributes=extend(ownAttributes,extend(getGlobalStylesForElement(element,svgUid),fabric.parseStyleAttribute(element)));if(ownAttributes.font){fabric.parseFontDeclaration(ownAttributes.font,ownAttributes)}return _setStrokeFillOpacity(extend(parentAttributes,ownAttributes))},parseElements:function(elements,callback,options,reviver){new fabric.ElementsParser(elements,callback,options,reviver).parse()},parseStyleAttribute:function(element){var oStyle={},style=element.getAttribute("style");if(!style){return oStyle}if(typeof style==="string"){parseStyleString(style,oStyle)}else{parseStyleObject(style,oStyle)}return oStyle},parsePointsAttribute:function(points){if(!points){return null}points=points.replace(/,/g," ").trim();points=points.split(/\s+/);var parsedPoints=[],i,len;i=0;len=points.length;for(;i/i,""))}if(!xml||!xml.documentElement){return}fabric.parseSVGDocument(xml.documentElement,function(results,options){svgCache.set(url,{objects:fabric.util.array.invoke(results,"toObject"),options:options});callback(results,options)},reviver)}},loadSVGFromString:function(string,callback,reviver){string=string.trim();var doc;if(typeof DOMParser!=="undefined"){var parser=new DOMParser;if(parser&&parser.parseFromString){doc=parser.parseFromString(string,"text/xml")}}else if(fabric.window.ActiveXObject){doc=new ActiveXObject("Microsoft.XMLDOM");doc.async="false";doc.loadXML(string.replace(//i,""))}fabric.parseSVGDocument(doc.documentElement,function(results,options){callback(results,options)},reviver)},createSVGFontFacesMarkup:function(objects){var markup="";for(var i=0,len=objects.length;i',"",""].join("")}return markup},createSVGRefElementsMarkup:function(canvas){var markup=[];_createSVGPattern(markup,canvas,"backgroundColor");_createSVGPattern(markup,canvas,"overlayColor");return markup.join("")}})})(typeof exports!=="undefined"?exports:this);fabric.ElementsParser=function(elements,callback,options,reviver){this.elements=elements;this.callback=callback;this.options=options;this.reviver=reviver;this.svgUid=options&&options.svgUid||0};fabric.ElementsParser.prototype.parse=function(){this.instances=new Array(this.elements.length);this.numElements=this.elements.length;this.createObjects()};fabric.ElementsParser.prototype.createObjects=function(){for(var i=0,len=this.elements.length;ithat.x&&this.y>that.y},gte:function(that){return this.x>=that.x&&this.y>=that.y},lerp:function(that,t){return new Point(this.x+(that.x-this.x)*t,this.y+(that.y-this.y)*t)},distanceFrom:function(that){var dx=this.x-that.x,dy=this.y-that.y;return Math.sqrt(dx*dx+dy*dy)},midPointFrom:function(that){return new Point(this.x+(that.x-this.x)/2,this.y+(that.y-this.y)/2)},min:function(that){return new Point(Math.min(this.x,that.x),Math.min(this.y,that.y))},max:function(that){return new Point(Math.max(this.x,that.x),Math.max(this.y,that.y))},toString:function(){return this.x+","+this.y},setXY:function(x,y){this.x=x;this.y=y},setFromPoint:function(that){this.x=that.x;this.y=that.y},swap:function(that){var x=this.x,y=this.y;this.x=that.x;this.y=that.y;that.x=x;that.y=y}}})(typeof exports!=="undefined"?exports:this);(function(global){"use strict";var fabric=global.fabric||(global.fabric={});if(fabric.Intersection){fabric.warn("fabric.Intersection is already defined");return}function Intersection(status){this.status=status;this.points=[]}fabric.Intersection=Intersection;fabric.Intersection.prototype={appendPoint:function(point){this.points.push(point)},appendPoints:function(points){this.points=this.points.concat(points)}};fabric.Intersection.intersectLineLine=function(a1,a2,b1,b2){var result,uaT=(b2.x-b1.x)*(a1.y-b1.y)-(b2.y-b1.y)*(a1.x-b1.x),ubT=(a2.x-a1.x)*(a1.y-b1.y)-(a2.y-a1.y)*(a1.x-b1.x),uB=(b2.y-b1.y)*(a2.x-a1.x)-(b2.x-b1.x)*(a2.y-a1.y);if(uB!==0){var ua=uaT/uB,ub=ubT/uB;if(0<=ua&&ua<=1&&0<=ub&&ub<=1){result=new Intersection("Intersection");result.points.push(new fabric.Point(a1.x+ua*(a2.x-a1.x),a1.y+ua*(a2.y-a1.y)))}else{result=new Intersection}}else{if(uaT===0||ubT===0){result=new Intersection("Coincident")}else{result=new Intersection("Parallel")}}return result};fabric.Intersection.intersectLinePolygon=function(a1,a2,points){var result=new Intersection,length=points.length;for(var i=0;i0){result.status="Intersection"}return result};fabric.Intersection.intersectPolygonPolygon=function(points1,points2){var result=new Intersection,length=points1.length;for(var i=0;i0){result.status="Intersection"}return result};fabric.Intersection.intersectPolygonRectangle=function(points,r1,r2){var min=r1.min(r2),max=r1.max(r2),topRight=new fabric.Point(max.x,min.y),bottomLeft=new fabric.Point(min.x,max.y),inter1=Intersection.intersectLinePolygon(min,topRight,points),inter2=Intersection.intersectLinePolygon(topRight,max,points),inter3=Intersection.intersectLinePolygon(max,bottomLeft,points),inter4=Intersection.intersectLinePolygon(bottomLeft,min,points),result=new Intersection;result.appendPoints(inter1.points);result.appendPoints(inter2.points);result.appendPoints(inter3.points);result.appendPoints(inter4.points);if(result.points.length>0){result.status="Intersection"}return result}})(typeof exports!=="undefined"?exports:this);(function(global){"use strict";var fabric=global.fabric||(global.fabric={});if(fabric.Color){fabric.warn("fabric.Color is already defined.");return}function Color(color){if(!color){this.setSource([0,0,0,1])}else{this._tryParsingColor(color)}}fabric.Color=Color;fabric.Color.prototype={_tryParsingColor:function(color){var source;if(color in Color.colorNameMap){color=Color.colorNameMap[color]}if(color==="transparent"){this.setSource([255,255,255,0]);return}source=Color.sourceFromHex(color);if(!source){source=Color.sourceFromRgb(color)}if(!source){source=Color.sourceFromHsl(color)}if(source){this.setSource(source)}},_rgbToHsl:function(r,g,b){r/=255,g/=255,b/=255;var h,s,l,max=fabric.util.array.max([r,g,b]),min=fabric.util.array.min([r,g,b]);l=(max+min)/2;if(max===min){h=s=0}else{var d=max-min;s=l>.5?d/(2-max-min):d/(max+min);switch(max){case r:h=(g-b)/d+(g1){t-=1}if(t<1/6){return p+(q-p)*6*t}if(t<1/2){return q}if(t<2/3){return p+(q-p)*(2/3-t)*6}return p}fabric.Color.fromRgb=function(color){return Color.fromSource(Color.sourceFromRgb(color))};fabric.Color.sourceFromRgb=function(color){var match=color.match(Color.reRGBa);if(match){var r=parseInt(match[1],10)/(/%$/.test(match[1])?100:1)*(/%$/.test(match[1])?255:1),g=parseInt(match[2],10)/(/%$/.test(match[2])?100:1)*(/%$/.test(match[2])?255:1),b=parseInt(match[3],10)/(/%$/.test(match[3])?100:1)*(/%$/.test(match[3])?255:1);return[parseInt(r,10),parseInt(g,10),parseInt(b,10),match[4]?parseFloat(match[4]):1]}};fabric.Color.fromRgba=Color.fromRgb; - -fabric.Color.fromHsl=function(color){return Color.fromSource(Color.sourceFromHsl(color))};fabric.Color.sourceFromHsl=function(color){var match=color.match(Color.reHSLa);if(!match){return}var h=(parseFloat(match[1])%360+360)%360/360,s=parseFloat(match[2])/(/%$/.test(match[2])?100:1),l=parseFloat(match[3])/(/%$/.test(match[3])?100:1),r,g,b;if(s===0){r=g=b=l}else{var q=l<=.5?l*(s+1):l+s-l*s,p=l*2-q;r=hue2rgb(p,q,h+1/3);g=hue2rgb(p,q,h);b=hue2rgb(p,q,h-1/3)}return[Math.round(r*255),Math.round(g*255),Math.round(b*255),match[4]?parseFloat(match[4]):1]};fabric.Color.fromHsla=Color.fromHsl;fabric.Color.fromHex=function(color){return Color.fromSource(Color.sourceFromHex(color))};fabric.Color.sourceFromHex=function(color){if(color.match(Color.reHex)){var value=color.slice(color.indexOf("#")+1),isShortNotation=value.length===3,r=isShortNotation?value.charAt(0)+value.charAt(0):value.substring(0,2),g=isShortNotation?value.charAt(1)+value.charAt(1):value.substring(2,4),b=isShortNotation?value.charAt(2)+value.charAt(2):value.substring(4,6);return[parseInt(r,16),parseInt(g,16),parseInt(b,16),1]}};fabric.Color.fromSource=function(source){var oColor=new Color;oColor.setSource(source);return oColor}})(typeof exports!=="undefined"?exports:this);(function(){function getColorStop(el){var style=el.getAttribute("style"),offset=el.getAttribute("offset"),color,colorAlpha,opacity;offset=parseFloat(offset)/(/%$/.test(offset)?100:1);offset=offset<0?0:offset>1?1:offset;if(style){var keyValuePairs=style.split(/\s*;\s*/);if(keyValuePairs[keyValuePairs.length-1]===""){keyValuePairs.pop()}for(var i=keyValuePairs.length;i--;){var split=keyValuePairs[i].split(/\s*:\s*/),key=split[0].trim(),value=split[1].trim();if(key==="stop-color"){color=value}else if(key==="stop-opacity"){opacity=value}}}if(!color){color=el.getAttribute("stop-color")||"rgb(0,0,0)"}if(!opacity){opacity=el.getAttribute("stop-opacity")}color=new fabric.Color(color);colorAlpha=color.getAlpha();opacity=isNaN(parseFloat(opacity))?1:parseFloat(opacity);opacity*=colorAlpha;return{offset:offset,color:color.toRgb(),opacity:opacity}}function getLinearCoords(el){return{x1:el.getAttribute("x1")||0,y1:el.getAttribute("y1")||0,x2:el.getAttribute("x2")||"100%",y2:el.getAttribute("y2")||0}}function getRadialCoords(el){return{x1:el.getAttribute("fx")||el.getAttribute("cx")||"50%",y1:el.getAttribute("fy")||el.getAttribute("cy")||"50%",r1:0,x2:el.getAttribute("cx")||"50%",y2:el.getAttribute("cy")||"50%",r2:el.getAttribute("r")||"50%"}}fabric.Gradient=fabric.util.createClass({offsetX:0,offsetY:0,initialize:function(options){options||(options={});var coords={};this.id=fabric.Object.__uid++;this.type=options.type||"linear";coords={x1:options.coords.x1||0,y1:options.coords.y1||0,x2:options.coords.x2||0,y2:options.coords.y2||0};if(this.type==="radial"){coords.r1=options.coords.r1||0;coords.r2=options.coords.r2||0}this.coords=coords;this.colorStops=options.colorStops.slice();if(options.gradientTransform){this.gradientTransform=options.gradientTransform}this.offsetX=options.offsetX||this.offsetX;this.offsetY=options.offsetY||this.offsetY},addColorStop:function(colorStop){for(var position in colorStop){var color=new fabric.Color(colorStop[position]);this.colorStops.push({offset:position,color:color.toRgb(),opacity:color.getAlpha()})}return this},toObject:function(){return{type:this.type,coords:this.coords,colorStops:this.colorStops,offsetX:this.offsetX,offsetY:this.offsetY}},toSVG:function(object){var coords=fabric.util.object.clone(this.coords),markup,commonAttributes;this.colorStops.sort(function(a,b){return a.offset-b.offset});if(!(object.group&&object.group.type==="path-group")){for(var prop in coords){if(prop==="x1"||prop==="x2"||prop==="r2"){coords[prop]+=this.offsetX-object.width/2}else if(prop==="y1"||prop==="y2"){coords[prop]+=this.offsetY-object.height/2}}}commonAttributes='id="SVGID_'+this.id+'" gradientUnits="userSpaceOnUse"';if(this.gradientTransform){commonAttributes+=' gradientTransform="matrix('+this.gradientTransform.join(" ")+')" '}if(this.type==="linear"){markup=["\n']}else if(this.type==="radial"){markup=["\n']}for(var i=0;i\n')}markup.push(this.type==="linear"?"\n":"\n");return markup.join("")},toLive:function(ctx,object){var gradient,prop,coords=fabric.util.object.clone(this.coords);if(!this.type){return}if(object.group&&object.group.type==="path-group"){for(prop in coords){if(prop==="x1"||prop==="x2"){coords[prop]+=-this.offsetX+object.width/2}else if(prop==="y1"||prop==="y2"){coords[prop]+=-this.offsetY+object.height/2}}}if(object.type==="text"||object.type==="i-text"){for(prop in coords){if(prop==="x1"||prop==="x2"){coords[prop]-=object.width/2}else if(prop==="y1"||prop==="y2"){coords[prop]-=object.height/2}}}if(this.type==="linear"){gradient=ctx.createLinearGradient(coords.x1,coords.y1,coords.x2,coords.y2)}else if(this.type==="radial"){gradient=ctx.createRadialGradient(coords.x1,coords.y1,coords.r1,coords.x2,coords.y2,coords.r2)}for(var i=0,len=this.colorStops.length;i\n'+'\n'+"\n"},toLive:function(ctx){var source=typeof this.source==="function"?this.source():this.source;if(!source){return""}if(typeof source.src!=="undefined"){if(!source.complete){return""}if(source.naturalWidth===0||source.naturalHeight===0){return""}}return ctx.createPattern(source,this.repeat)}});(function(global){"use strict";var fabric=global.fabric||(global.fabric={}),toFixed=fabric.util.toFixed;if(fabric.Shadow){fabric.warn("fabric.Shadow is already defined.");return}fabric.Shadow=fabric.util.createClass({color:"rgb(0,0,0)",blur:0,offsetX:0,offsetY:0,affectStroke:false,includeDefaultValues:true,initialize:function(options){if(typeof options==="string"){options=this._parseShadow(options)}for(var prop in options){this[prop]=options[prop]}this.id=fabric.Object.__uid++},_parseShadow:function(shadow){var shadowStr=shadow.trim(),offsetsAndBlur=fabric.Shadow.reOffsetsAndBlur.exec(shadowStr)||[],color=shadowStr.replace(fabric.Shadow.reOffsetsAndBlur,"")||"rgb(0,0,0)";return{color:color.trim(),offsetX:parseInt(offsetsAndBlur[1],10)||0,offsetY:parseInt(offsetsAndBlur[2],10)||0,blur:parseInt(offsetsAndBlur[3],10)||0}},toString:function(){return[this.offsetX,this.offsetY,this.blur,this.color].join("px ")},toSVG:function(object){var mode="SourceAlpha",fBoxX=40,fBoxY=40;if(object&&(object.fill===this.color||object.stroke===this.color)){mode="SourceGraphic"}if(object.width&&object.height){fBoxX=toFixed(Math.abs(this.offsetX/object.getWidth()),2)*100+20;fBoxY=toFixed(Math.abs(this.offsetY/object.getHeight()),2)*100+20}return'\n"+' \n'+' \n'+' \n'+" \n"+" \n"+' \n'+" \n"+"\n"},toObject:function(){if(this.includeDefaultValues){return{color:this.color,blur:this.blur,offsetX:this.offsetX,offsetY:this.offsetY}}var obj={},proto=fabric.Shadow.prototype;if(this.color!==proto.color){obj.color=this.color}if(this.blur!==proto.blur){obj.blur=this.blur}if(this.offsetX!==proto.offsetX){obj.offsetX=this.offsetX}if(this.offsetY!==proto.offsetY){obj.offsetY=this.offsetY}return obj}});fabric.Shadow.reOffsetsAndBlur=/(?:\s|^)(-?\d+(?:px)?(?:\s?|$))?(-?\d+(?:px)?(?:\s?|$))?(\d+(?:px)?)?(?:\s?|$)(?:$|\s)/})(typeof exports!=="undefined"?exports:this);(function(){"use strict";if(fabric.StaticCanvas){fabric.warn("fabric.StaticCanvas is already defined.");return}var extend=fabric.util.object.extend,getElementOffset=fabric.util.getElementOffset,removeFromArray=fabric.util.removeFromArray,CANVAS_INIT_ERROR=new Error("Could not initialize `canvas` element");fabric.StaticCanvas=fabric.util.createClass({initialize:function(el,options){options||(options={});this._initStatic(el,options);fabric.StaticCanvas.activeInstance=this},backgroundColor:"",backgroundImage:null,overlayColor:"",overlayImage:null,includeDefaultValues:true,stateful:true,renderOnAddRemove:true,clipTo:null,controlsAboveOverlay:false,allowTouchScrolling:false,imageSmoothingEnabled:true,preserveObjectStacking:false,viewportTransform:[1,0,0,1,0,0],onBeforeScaleRotate:function(){},_initStatic:function(el,options){this._objects=[];this._createLowerCanvas(el);this._initOptions(options);this._setImageSmoothing();if(options.overlayImage){this.setOverlayImage(options.overlayImage,this.renderAll.bind(this))}if(options.backgroundImage){this.setBackgroundImage(options.backgroundImage,this.renderAll.bind(this))}if(options.backgroundColor){this.setBackgroundColor(options.backgroundColor,this.renderAll.bind(this))}if(options.overlayColor){this.setOverlayColor(options.overlayColor,this.renderAll.bind(this))}this.calcOffset()},calcOffset:function(){this._offset=getElementOffset(this.lowerCanvasEl);return this},setOverlayImage:function(image,callback,options){return this.__setBgOverlayImage("overlayImage",image,callback,options)},setBackgroundImage:function(image,callback,options){return this.__setBgOverlayImage("backgroundImage",image,callback,options)},setOverlayColor:function(overlayColor,callback){return this.__setBgOverlayColor("overlayColor",overlayColor,callback)},setBackgroundColor:function(backgroundColor,callback){return this.__setBgOverlayColor("backgroundColor",backgroundColor,callback)},_setImageSmoothing:function(){var ctx=this.getContext();ctx.imageSmoothingEnabled=this.imageSmoothingEnabled;ctx.webkitImageSmoothingEnabled=this.imageSmoothingEnabled;ctx.mozImageSmoothingEnabled=this.imageSmoothingEnabled;ctx.msImageSmoothingEnabled=this.imageSmoothingEnabled;ctx.oImageSmoothingEnabled=this.imageSmoothingEnabled},__setBgOverlayImage:function(property,image,callback,options){if(typeof image==="string"){fabric.util.loadImage(image,function(img){this[property]=new fabric.Image(img,options);callback&&callback()},this,options&&options.crossOrigin)}else{options&&image.setOptions(options);this[property]=image;callback&&callback()}return this},__setBgOverlayColor:function(property,color,callback){if(color&&color.source){var _this=this;fabric.util.loadImage(color.source,function(img){_this[property]=new fabric.Pattern({source:img,repeat:color.repeat,offsetX:color.offsetX,offsetY:color.offsetY});callback&&callback()})}else{this[property]=color;callback&&callback()}return this},_createCanvasElement:function(){var element=fabric.document.createElement("canvas");if(!element.style){element.style={}}if(!element){throw CANVAS_INIT_ERROR}this._initCanvasElement(element);return element},_initCanvasElement:function(element){fabric.util.createCanvasElement(element);if(typeof element.getContext==="undefined"){throw CANVAS_INIT_ERROR}},_initOptions:function(options){for(var prop in options){this[prop]=options[prop]}this.width=this.width||parseInt(this.lowerCanvasEl.width,10)||0;this.height=this.height||parseInt(this.lowerCanvasEl.height,10)||0;if(!this.lowerCanvasEl.style){return}this.lowerCanvasEl.width=this.width;this.lowerCanvasEl.height=this.height;this.lowerCanvasEl.style.width=this.width+"px";this.lowerCanvasEl.style.height=this.height+"px";this.viewportTransform=this.viewportTransform.slice()},_createLowerCanvas:function(canvasEl){this.lowerCanvasEl=fabric.util.getById(canvasEl)||this._createCanvasElement();this._initCanvasElement(this.lowerCanvasEl);fabric.util.addClass(this.lowerCanvasEl,"lower-canvas");if(this.interactive){this._applyCanvasStyle(this.lowerCanvasEl)}this.contextContainer=this.lowerCanvasEl.getContext("2d")},getWidth:function(){return this.width},getHeight:function(){return this.height},setWidth:function(value,options){return this.setDimensions({width:value},options)},setHeight:function(value,options){return this.setDimensions({height:value},options)},setDimensions:function(dimensions,options){var cssValue;options=options||{};for(var prop in dimensions){cssValue=dimensions[prop];if(!options.cssOnly){this._setBackstoreDimension(prop,dimensions[prop]);cssValue+="px"}if(!options.backstoreOnly){this._setCssDimension(prop,cssValue)}}if(!options.cssOnly){this.renderAll()}this.calcOffset();return this},_setBackstoreDimension:function(prop,value){this.lowerCanvasEl[prop]=value;if(this.upperCanvasEl){this.upperCanvasEl[prop]=value}if(this.cacheCanvasEl){this.cacheCanvasEl[prop]=value}this[prop]=value;return this},_setCssDimension:function(prop,value){this.lowerCanvasEl.style[prop]=value;if(this.upperCanvasEl){this.upperCanvasEl.style[prop]=value}if(this.wrapperEl){this.wrapperEl.style[prop]=value}return this},getZoom:function(){return Math.sqrt(this.viewportTransform[0]*this.viewportTransform[3])},setViewportTransform:function(vpt){var activeGroup=this.getActiveGroup();this.viewportTransform=vpt;this.renderAll();for(var i=0,len=this._objects.length;i");return markup.join("")},_setSVGPreamble:function(markup,options){if(!options.suppressPreamble){markup.push('','\n')}},_setSVGHeader:function(markup,options){var width,height,vpt;if(options.viewBox){width=options.viewBox.width;height=options.viewBox.height}else{width=this.width;height=this.height;if(!this.svgViewportTransformation){vpt=this.viewportTransform;width/=vpt[0];height/=vpt[3]}}markup.push("',"Created with Fabric.js ",fabric.version,"","",fabric.createSVGFontFacesMarkup(this.getObjects()),fabric.createSVGRefElementsMarkup(this),"")},_setSVGObjects:function(markup,reviver){for(var i=0,objects=this.getObjects(),len=objects.length;i")}else if(this[property]&&property==="overlayColor"){markup.push('")}},sendToBack:function(object){removeFromArray(this._objects,object);this._objects.unshift(object);return this.renderAll&&this.renderAll()},bringToFront:function(object){removeFromArray(this._objects,object);this._objects.push(object);return this.renderAll&&this.renderAll()},sendBackwards:function(object,intersecting){var idx=this._objects.indexOf(object);if(idx!==0){var newIdx=this._findNewLowerIndex(object,idx,intersecting);removeFromArray(this._objects,object);this._objects.splice(newIdx,0,object);this.renderAll&&this.renderAll()}return this},_findNewLowerIndex:function(object,idx,intersecting){var newIdx;if(intersecting){newIdx=idx;for(var i=idx-1;i>=0;--i){var isIntersecting=object.intersectsWithObject(this._objects[i])||object.isContainedWithinObject(this._objects[i])||this._objects[i].isContainedWithinObject(object);if(isIntersecting){newIdx=i;break}}}else{newIdx=idx-1}return newIdx},bringForward:function(object,intersecting){var idx=this._objects.indexOf(object);if(idx!==this._objects.length-1){var newIdx=this._findNewUpperIndex(object,idx,intersecting);removeFromArray(this._objects,object);this._objects.splice(newIdx,0,object);this.renderAll&&this.renderAll()}return this},_findNewUpperIndex:function(object,idx,intersecting){var newIdx;if(intersecting){newIdx=idx;for(var i=idx+1;i"}});extend(fabric.StaticCanvas.prototype,fabric.Observable);extend(fabric.StaticCanvas.prototype,fabric.Collection);extend(fabric.StaticCanvas.prototype,fabric.DataURLExporter);extend(fabric.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',supports:function(methodName){var el=fabric.util.createCanvasElement();if(!el||!el.getContext){return null}var ctx=el.getContext("2d");if(!ctx){return null}switch(methodName){case"getImageData":return typeof ctx.getImageData!=="undefined";case"setLineDash":return typeof ctx.setLineDash!=="undefined";case"toDataURL":return typeof el.toDataURL!=="undefined";case"toDataURLWithQuality":try{el.toDataURL("image/jpeg",0);return true}catch(e){}return false;default:return null}}});fabric.StaticCanvas.prototype.toJSON=fabric.StaticCanvas.prototype.toObject})();fabric.BaseBrush=fabric.util.createClass({color:"rgb(0, 0, 0)",width:1,shadow:null,strokeLineCap:"round",strokeLineJoin:"round",strokeDashArray:null,setShadow:function(options){this.shadow=new fabric.Shadow(options);return this},_setBrushStyles:function(){var ctx=this.canvas.contextTop;ctx.strokeStyle=this.color;ctx.lineWidth=this.width;ctx.lineCap=this.strokeLineCap;ctx.lineJoin=this.strokeLineJoin;if(this.strokeDashArray&&fabric.StaticCanvas.supports("setLineDash")){ctx.setLineDash(this.strokeDashArray)}},_setShadow:function(){if(!this.shadow){return}var ctx=this.canvas.contextTop;ctx.shadowColor=this.shadow.color;ctx.shadowBlur=this.shadow.blur;ctx.shadowOffsetX=this.shadow.offsetX;ctx.shadowOffsetY=this.shadow.offsetY},_resetShadow:function(){var ctx=this.canvas.contextTop;ctx.shadowColor="";ctx.shadowBlur=ctx.shadowOffsetX=ctx.shadowOffsetY=0}});(function(){fabric.PencilBrush=fabric.util.createClass(fabric.BaseBrush,{initialize:function(canvas){this.canvas=canvas;this._points=[]},onMouseDown:function(pointer){this._prepareForDrawing(pointer);this._captureDrawingPath(pointer);this._render()},onMouseMove:function(pointer){this._captureDrawingPath(pointer);this.canvas.clearContext(this.canvas.contextTop);this._render()},onMouseUp:function(){this._finalizeAndAddPath()},_prepareForDrawing:function(pointer){var p=new fabric.Point(pointer.x,pointer.y);this._reset();this._addPoint(p);this.canvas.contextTop.moveTo(p.x,p.y)},_addPoint:function(point){this._points.push(point)},_reset:function(){this._points.length=0;this._setBrushStyles();this._setShadow()},_captureDrawingPath:function(pointer){var pointerPoint=new fabric.Point(pointer.x,pointer.y);this._addPoint(pointerPoint)},_render:function(){ -var ctx=this.canvas.contextTop,v=this.canvas.viewportTransform,p1=this._points[0],p2=this._points[1];ctx.save();ctx.transform(v[0],v[1],v[2],v[3],v[4],v[5]);ctx.beginPath();if(this._points.length===2&&p1.x===p2.x&&p1.y===p2.y){p1.x-=.5;p2.x+=.5}ctx.moveTo(p1.x,p1.y);for(var i=1,len=this._points.length;itarget.padding){if(localMouse.x<0){localMouse.x+=target.padding}else{localMouse.x-=target.padding}}else{localMouse.x=0}if(abs(localMouse.y)>target.padding){if(localMouse.y<0){localMouse.y+=target.padding}else{localMouse.y-=target.padding}}else{localMouse.y=0}},_rotateObject:function(x,y){var t=this._currentTransform;if(t.target.get("lockRotation")){return}var lastAngle=atan2(t.ey-t.top,t.ex-t.left),curAngle=atan2(y-t.top,x-t.left),angle=radiansToDegrees(curAngle-lastAngle+t.theta);if(angle<0){angle=360+angle}t.target.angle=angle%360},setCursor:function(value){this.upperCanvasEl.style.cursor=value},_resetObjectTransform:function(target){target.scaleX=1;target.scaleY=1;target.setAngle(0)},_drawSelection:function(){var ctx=this.contextTop,groupSelector=this._groupSelector,left=groupSelector.left,top=groupSelector.top,aleft=abs(left),atop=abs(top);ctx.fillStyle=this.selectionColor;ctx.fillRect(groupSelector.ex-(left>0?0:-left),groupSelector.ey-(top>0?0:-top),aleft,atop);ctx.lineWidth=this.selectionLineWidth;ctx.strokeStyle=this.selectionBorderColor;if(this.selectionDashArray.length>1){var px=groupSelector.ex+STROKE_OFFSET-(left>0?0:aleft),py=groupSelector.ey+STROKE_OFFSET-(top>0?0:atop);ctx.beginPath();fabric.util.drawDashedLine(ctx,px,py,px+aleft,py,this.selectionDashArray);fabric.util.drawDashedLine(ctx,px,py+atop-1,px+aleft,py+atop-1,this.selectionDashArray);fabric.util.drawDashedLine(ctx,px,py,px,py+atop,this.selectionDashArray);fabric.util.drawDashedLine(ctx,px+aleft-1,py,px+aleft-1,py+atop,this.selectionDashArray);ctx.closePath();ctx.stroke()}else{ctx.strokeRect(groupSelector.ex+STROKE_OFFSET-(left>0?0:aleft),groupSelector.ey+STROKE_OFFSET-(top>0?0:atop),aleft,atop)}},_isLastRenderedObject:function(e){return this.controlsAboveOverlay&&this.lastRenderedObjectWithControlsAboveOverlay&&this.lastRenderedObjectWithControlsAboveOverlay.visible&&this.containsPoint(e,this.lastRenderedObjectWithControlsAboveOverlay)&&this.lastRenderedObjectWithControlsAboveOverlay._findTargetCorner(this.getPointer(e,true))},findTarget:function(e,skipGroup){if(this.skipTargetFind){return}if(this._isLastRenderedObject(e)){return this.lastRenderedObjectWithControlsAboveOverlay}var activeGroup=this.getActiveGroup();if(activeGroup&&!skipGroup&&this.containsPoint(e,activeGroup)){return activeGroup}var target=this._searchPossibleTargets(e);this._fireOverOutEvents(target);return target},_fireOverOutEvents:function(target){if(target){if(this._hoveredTarget!==target){this.fire("mouse:over",{target:target});target.fire("mouseover");if(this._hoveredTarget){this.fire("mouse:out",{target:this._hoveredTarget});this._hoveredTarget.fire("mouseout")}this._hoveredTarget=target}}else if(this._hoveredTarget){this.fire("mouse:out",{target:this._hoveredTarget});this._hoveredTarget.fire("mouseout");this._hoveredTarget=null}},_checkTarget:function(e,obj,pointer){if(obj&&obj.visible&&obj.evented&&this.containsPoint(e,obj)){if((this.perPixelTargetFind||obj.perPixelTargetFind)&&!obj.isEditing){var isTransparent=this.isTargetTransparent(obj,pointer.x,pointer.y);if(!isTransparent){return true}}else{return true}}},_searchPossibleTargets:function(e){var target,pointer=this.getPointer(e,true),i=this._objects.length;while(i--){if(!this._objects[i].group&&this._checkTarget(e,this._objects[i],pointer)){this.relatedTarget=this._objects[i];target=this._objects[i];break}}return target},getPointer:function(e,ignoreZoom,upperCanvasEl){if(!upperCanvasEl){upperCanvasEl=this.upperCanvasEl}var pointer=getPointer(e,upperCanvasEl),bounds=upperCanvasEl.getBoundingClientRect(),boundsWidth=bounds.width||0,boundsHeight=bounds.height||0,cssScale;if(!boundsWidth||!boundsHeight){if("top"in bounds&&"bottom"in bounds){boundsHeight=Math.abs(bounds.top-bounds.bottom)}if("right"in bounds&&"left"in bounds){boundsWidth=Math.abs(bounds.right-bounds.left)}}this.calcOffset();pointer.x=pointer.x-this._offset.left;pointer.y=pointer.y-this._offset.top;if(!ignoreZoom){pointer=fabric.util.transformPoint(pointer,fabric.util.invertTransform(this.viewportTransform))}if(boundsWidth===0||boundsHeight===0){cssScale={width:1,height:1}}else{cssScale={width:upperCanvasEl.width/boundsWidth,height:upperCanvasEl.height/boundsHeight}}return{x:pointer.x*cssScale.width,y:pointer.y*cssScale.height}},_createUpperCanvas:function(){var lowerCanvasClass=this.lowerCanvasEl.className.replace(/\s*lower-canvas\s*/,"");this.upperCanvasEl=this._createCanvasElement();fabric.util.addClass(this.upperCanvasEl,"upper-canvas "+lowerCanvasClass);this.wrapperEl.appendChild(this.upperCanvasEl);this._copyCanvasStyle(this.lowerCanvasEl,this.upperCanvasEl);this._applyCanvasStyle(this.upperCanvasEl);this.contextTop=this.upperCanvasEl.getContext("2d")},_createCacheCanvas:function(){this.cacheCanvasEl=this._createCanvasElement();this.cacheCanvasEl.setAttribute("width",this.width);this.cacheCanvasEl.setAttribute("height",this.height);this.contextCache=this.cacheCanvasEl.getContext("2d")},_initWrapperElement:function(){this.wrapperEl=fabric.util.wrapElement(this.lowerCanvasEl,"div",{"class":this.containerClass});fabric.util.setStyle(this.wrapperEl,{width:this.getWidth()+"px",height:this.getHeight()+"px",position:"relative"});fabric.util.makeElementUnselectable(this.wrapperEl)},_applyCanvasStyle:function(element){var width=this.getWidth()||element.width,height=this.getHeight()||element.height;fabric.util.setStyle(element,{position:"absolute",width:width+"px",height:height+"px",left:0,top:0});element.width=width;element.height=height;fabric.util.makeElementUnselectable(element)},_copyCanvasStyle:function(fromEl,toEl){toEl.style.cssText=fromEl.style.cssText},getSelectionContext:function(){return this.contextTop},getSelectionElement:function(){return this.upperCanvasEl},_setActiveObject:function(object){if(this._activeObject){this._activeObject.set("active",false)}this._activeObject=object;object.set("active",true)},setActiveObject:function(object,e){this._setActiveObject(object);this.renderAll();this.fire("object:selected",{target:object,e:e});object.fire("selected",{e:e});return this},getActiveObject:function(){return this._activeObject},_discardActiveObject:function(){if(this._activeObject){this._activeObject.set("active",false)}this._activeObject=null},discardActiveObject:function(e){this._discardActiveObject();this.renderAll();this.fire("selection:cleared",{e:e});return this},_setActiveGroup:function(group){this._activeGroup=group;if(group){group.set("active",true)}},setActiveGroup:function(group,e){this._setActiveGroup(group);if(group){this.fire("object:selected",{target:group,e:e});group.fire("selected",{e:e})}return this},getActiveGroup:function(){return this._activeGroup},_discardActiveGroup:function(){var g=this.getActiveGroup();if(g){g.destroy()}this.setActiveGroup(null)},discardActiveGroup:function(e){this._discardActiveGroup();this.fire("selection:cleared",{e:e});return this},deactivateAll:function(){var allObjects=this.getObjects(),i=0,len=allObjects.length;for(;i1){ -return}var groupSelector=this._groupSelector;if(groupSelector){pointer=this.getPointer(e,true);groupSelector.left=pointer.x-groupSelector.ex;groupSelector.top=pointer.y-groupSelector.ey;this.renderTop()}else if(!this._currentTransform){target=this.findTarget(e);if(!target||target&&!target.selectable){this.setCursor(this.defaultCursor)}else{this._setCursorFromEvent(e,target)}}else{this._transformObject(e)}this.fire("mouse:move",{target:target,e:e});target&&target.fire("mousemove",{e:e})},_transformObject:function(e){var pointer=this.getPointer(e),transform=this._currentTransform;transform.reset=false,transform.target.isMoving=true;this._beforeScaleTransform(e,transform);this._performTransformAction(e,transform,pointer);this.renderAll()},_performTransformAction:function(e,transform,pointer){var x=pointer.x,y=pointer.y,target=transform.target,action=transform.action;if(action==="rotate"){this._rotateObject(x,y);this._fire("rotating",target,e)}else if(action==="scale"){this._onScale(e,transform,x,y);this._fire("scaling",target,e)}else if(action==="scaleX"){this._scaleObject(x,y,"x");this._fire("scaling",target,e)}else if(action==="scaleY"){this._scaleObject(x,y,"y");this._fire("scaling",target,e)}else{this._translateObject(x,y);this._fire("moving",target,e);this.setCursor(this.moveCursor)}},_fire:function(eventName,target,e){this.fire("object:"+eventName,{target:target,e:e});target.fire(eventName,{e:e})},_beforeScaleTransform:function(e,transform){if(transform.action==="scale"||transform.action==="scaleX"||transform.action==="scaleY"){var centerTransform=this._shouldCenterTransform(e,transform.target);if(centerTransform&&(transform.originX!=="center"||transform.originY!=="center")||!centerTransform&&transform.originX==="center"&&transform.originY==="center"){this._resetCurrentTransform(e);transform.reset=true}}},_onScale:function(e,transform,x,y){if((e.shiftKey||this.uniScaleTransform)&&!transform.target.get("lockUniScaling")){transform.currentAction="scale";this._scaleObject(x,y)}else{if(!transform.reset&&transform.currentAction==="scale"){this._resetCurrentTransform(e,transform.target)}transform.currentAction="scaleEqually";this._scaleObject(x,y,"equally")}},_setCursorFromEvent:function(e,target){if(!target||!target.selectable){this.setCursor(this.defaultCursor);return false}else{var activeGroup=this.getActiveGroup(),corner=target._findTargetCorner&&(!activeGroup||!activeGroup.contains(target))&&target._findTargetCorner(this.getPointer(e,true));if(!corner){this.setCursor(target.hoverCursor||this.hoverCursor)}else{this._setCornerCursor(corner,target)}}return true},_setCornerCursor:function(corner,target){if(corner in cursorOffset){this.setCursor(this._getRotatedCornerCursor(corner,target))}else if(corner==="mtr"&&target.hasRotatingPoint){this.setCursor(this.rotationCursor)}else{this.setCursor(this.defaultCursor);return false}},_getRotatedCornerCursor:function(corner,target){var n=Math.round(target.getAngle()%360/45);if(n<0){n+=8}n+=cursorOffset[corner];n%=8;return this.cursorMap[n]}})})();(function(){var min=Math.min,max=Math.max;fabric.util.object.extend(fabric.Canvas.prototype,{_shouldGroup:function(e,target){var activeObject=this.getActiveObject();return e.shiftKey&&(this.getActiveGroup()||activeObject&&activeObject!==target)&&this.selection},_handleGrouping:function(e,target){if(target===this.getActiveGroup()){target=this.findTarget(e,true);if(!target||target.isType("group")){return}}if(this.getActiveGroup()){this._updateActiveGroup(target,e)}else{this._createActiveGroup(target,e)}if(this._activeGroup){this._activeGroup.saveCoords()}},_updateActiveGroup:function(target,e){var activeGroup=this.getActiveGroup();if(activeGroup.contains(target)){activeGroup.removeWithUpdate(target);this._resetObjectTransform(activeGroup);target.set("active",false);if(activeGroup.size()===1){this.discardActiveGroup(e);this.setActiveObject(activeGroup.item(0));return}}else{activeGroup.addWithUpdate(target);this._resetObjectTransform(activeGroup)}this.fire("selection:created",{target:activeGroup,e:e});activeGroup.set("active",true)},_createActiveGroup:function(target,e){if(this._activeObject&&target!==this._activeObject){var group=this._createGroup(target);group.addWithUpdate();this.setActiveGroup(group);this._activeObject=null;this.fire("selection:created",{target:group,e:e})}target.set("active",true)},_createGroup:function(target){var objects=this.getObjects(),isActiveLower=objects.indexOf(this._activeObject)1){group=new fabric.Group(group.reverse(),{canvas:this});group.addWithUpdate();this.setActiveGroup(group,e);group.saveCoords();this.fire("selection:created",{target:group});this.renderAll()}},_collectObjects:function(){var group=[],currentObject,x1=this._groupSelector.ex,y1=this._groupSelector.ey,x2=x1+this._groupSelector.left,y2=y1+this._groupSelector.top,selectionX1Y1=new fabric.Point(min(x1,x2),min(y1,y2)),selectionX2Y2=new fabric.Point(max(x1,x2),max(y1,y2)),isClick=x1===x2&&y1===y2;for(var i=this._objects.length;i--;){currentObject=this._objects[i];if(!currentObject||!currentObject.selectable||!currentObject.visible){continue}if(currentObject.intersectsWithRect(selectionX1Y1,selectionX2Y2)||currentObject.isContainedWithinRect(selectionX1Y1,selectionX2Y2)||currentObject.containsPoint(selectionX1Y1)||currentObject.containsPoint(selectionX2Y2)){currentObject.set("active",true);group.push(currentObject);if(isClick){break}}}return group},_maybeGroupObjects:function(e){if(this.selection&&this._groupSelector){this._groupSelectedObjects(e)}var activeGroup=this.getActiveGroup();if(activeGroup){activeGroup.setObjectsCoords().setCoords();activeGroup.isMoving=false;this.setCursor(this.defaultCursor)}this._groupSelector=null;this._currentTransform=null}})})();fabric.util.object.extend(fabric.StaticCanvas.prototype,{toDataURL:function(options){options||(options={});var format=options.format||"png",quality=options.quality||1,multiplier=options.multiplier||1,cropping={left:options.left,top:options.top,width:options.width,height:options.height};if(multiplier!==1){return this.__toDataURLWithMultiplier(format,quality,cropping,multiplier)}else{return this.__toDataURL(format,quality,cropping)}},__toDataURL:function(format,quality,cropping){this.renderAll(true);var canvasEl=this.upperCanvasEl||this.lowerCanvasEl,croppedCanvasEl=this.__getCroppedCanvas(canvasEl,cropping);if(format==="jpg"){format="jpeg"}var data=fabric.StaticCanvas.supports("toDataURLWithQuality")?(croppedCanvasEl||canvasEl).toDataURL("image/"+format,quality):(croppedCanvasEl||canvasEl).toDataURL("image/"+format);this.contextTop&&this.clearContext(this.contextTop);this.renderAll();if(croppedCanvasEl){croppedCanvasEl=null}return data},__getCroppedCanvas:function(canvasEl,cropping){var croppedCanvasEl,croppedCtx,shouldCrop="left"in cropping||"top"in cropping||"width"in cropping||"height"in cropping;if(shouldCrop){croppedCanvasEl=fabric.util.createCanvasElement();croppedCtx=croppedCanvasEl.getContext("2d");croppedCanvasEl.width=cropping.width||this.width;croppedCanvasEl.height=cropping.height||this.height;croppedCtx.drawImage(canvasEl,-cropping.left||0,-cropping.top||0)}return croppedCanvasEl},__toDataURLWithMultiplier:function(format,quality,cropping,multiplier){var origWidth=this.getWidth(),origHeight=this.getHeight(),scaledWidth=origWidth*multiplier,scaledHeight=origHeight*multiplier,activeObject=this.getActiveObject(),activeGroup=this.getActiveGroup(),ctx=this.contextTop||this.contextContainer;if(multiplier>1){this.setWidth(scaledWidth).setHeight(scaledHeight)}ctx.scale(multiplier,multiplier);if(cropping.left){cropping.left*=multiplier}if(cropping.top){cropping.top*=multiplier}if(cropping.width){cropping.width*=multiplier}else if(multiplier<1){cropping.width=scaledWidth}if(cropping.height){cropping.height*=multiplier}else if(multiplier<1){cropping.height=scaledHeight}if(activeGroup){this._tempRemoveBordersControlsFromGroup(activeGroup)}else if(activeObject&&this.deactivateAll){this.deactivateAll()}this.renderAll(true);var data=this.__toDataURL(format,quality,cropping);this.width=origWidth;this.height=origHeight;ctx.scale(1/multiplier,1/multiplier);this.setWidth(origWidth).setHeight(origHeight);if(activeGroup){this._restoreBordersControlsOnGroup(activeGroup)}else if(activeObject&&this.setActiveObject){this.setActiveObject(activeObject)}this.contextTop&&this.clearContext(this.contextTop);this.renderAll();return data},toDataURLWithMultiplier:function(format,multiplier,quality){return this.toDataURL({format:format,multiplier:multiplier,quality:quality})},_tempRemoveBordersControlsFromGroup:function(group){group.origHasControls=group.hasControls;group.origBorderColor=group.borderColor;group.hasControls=true;group.borderColor="rgba(0,0,0,0)";group.forEachObject(function(o){o.origBorderColor=o.borderColor;o.borderColor="rgba(0,0,0,0)"})},_restoreBordersControlsOnGroup:function(group){group.hideControls=group.origHideControls;group.borderColor=group.origBorderColor;group.forEachObject(function(o){o.borderColor=o.origBorderColor;delete o.origBorderColor})}});fabric.util.object.extend(fabric.StaticCanvas.prototype,{loadFromDatalessJSON:function(json,callback,reviver){return this.loadFromJSON(json,callback,reviver)},loadFromJSON:function(json,callback,reviver){if(!json){return}var serialized=typeof json==="string"?JSON.parse(json):json;this.clear();var _this=this;this._enlivenObjects(serialized.objects,function(){_this._setBgOverlay(serialized,callback)},reviver);return this},_setBgOverlay:function(serialized,callback){var _this=this,loaded={backgroundColor:false,overlayColor:false,backgroundImage:false,overlayImage:false};if(!serialized.backgroundImage&&!serialized.overlayImage&&!serialized.background&&!serialized.overlay){callback&&callback();return}var cbIfLoaded=function(){if(loaded.backgroundImage&&loaded.overlayImage&&loaded.backgroundColor&&loaded.overlayColor){_this.renderAll();callback&&callback()}};this.__setBgOverlay("backgroundImage",serialized.backgroundImage,loaded,cbIfLoaded);this.__setBgOverlay("overlayImage",serialized.overlayImage,loaded,cbIfLoaded);this.__setBgOverlay("backgroundColor",serialized.background,loaded,cbIfLoaded);this.__setBgOverlay("overlayColor",serialized.overlay,loaded,cbIfLoaded);cbIfLoaded()},__setBgOverlay:function(property,value,loaded,callback){var _this=this;if(!value){loaded[property]=true;return}if(property==="backgroundImage"||property==="overlayImage"){fabric.Image.fromObject(value,function(img){_this[property]=img;loaded[property]=true;callback&&callback()})}else{this["set"+fabric.util.string.capitalize(property,true)](value,function(){loaded[property]=true;callback&&callback()})}},_enlivenObjects:function(objects,callback,reviver){var _this=this;if(!objects||objects.length===0){callback&&callback();return}var renderOnAddRemove=this.renderOnAddRemove;this.renderOnAddRemove=false;fabric.util.enlivenObjects(objects,function(enlivenedObjects){enlivenedObjects.forEach(function(obj,index){_this.insertAt(obj,index,true)});_this.renderOnAddRemove=renderOnAddRemove;callback&&callback()},null,reviver)},_toDataURL:function(format,callback){this.clone(function(clone){callback(clone.toDataURL(format))})},_toDataURLWithMultiplier:function(format,multiplier,callback){this.clone(function(clone){callback(clone.toDataURLWithMultiplier(format,multiplier))})},clone:function(callback,properties){var data=JSON.stringify(this.toJSON(properties));this.cloneWithoutData(function(clone){clone.loadFromJSON(data,function(){callback&&callback(clone)})})},cloneWithoutData:function(callback){var el=fabric.document.createElement("canvas");el.width=this.getWidth();el.height=this.getHeight();var clone=new fabric.Canvas(el);clone.clipTo=this.clipTo;if(this.backgroundImage){clone.setBackgroundImage(this.backgroundImage.src,function(){clone.renderAll();callback&&callback(clone)});clone.backgroundImageOpacity=this.backgroundImageOpacity;clone.backgroundImageStretch=this.backgroundImageStretch}else{callback&&callback(clone)}}});(function(global){"use strict";var fabric=global.fabric||(global.fabric={}),extend=fabric.util.object.extend,toFixed=fabric.util.toFixed,capitalize=fabric.util.string.capitalize,degreesToRadians=fabric.util.degreesToRadians,supportsLineDash=fabric.StaticCanvas.supports("setLineDash");if(fabric.Object){return}fabric.Object=fabric.util.createClass({type:"object",originX:"left",originY:"top",top:0,left:0,width:0,height:0,scaleX:1,scaleY:1,flipX:false,flipY:false,opacity:1,angle:0,cornerSize:12,transparentCorners:true,hoverCursor:null,padding:0,borderColor:"rgba(102,153,255,0.75)",cornerColor:"rgba(102,153,255,0.5)",centeredScaling:false,centeredRotation:true,fill:"rgb(0,0,0)",fillRule:"nonzero",globalCompositeOperation:"source-over",backgroundColor:"",stroke:null,strokeWidth:1,strokeDashArray:null,strokeLineCap:"butt",strokeLineJoin:"miter",strokeMiterLimit:10,shadow:null,borderOpacityWhenMoving:.4,borderScaleFactor:1,transformMatrix:null,minScaleLimit:.01,selectable:true,evented:true,visible:true,hasControls:true,hasBorders:true,hasRotatingPoint:true,rotatingPointOffset:40,perPixelTargetFind:false,includeDefaultValues:true,clipTo:null,lockMovementX:false,lockMovementY:false,lockRotation:false,lockScalingX:false,lockScalingY:false,lockUniScaling:false,lockScalingFlip:false,stateProperties:("top left width height scaleX scaleY flipX flipY originX originY transformMatrix "+"stroke strokeWidth strokeDashArray strokeLineCap strokeLineJoin strokeMiterLimit "+"angle opacity fill fillRule globalCompositeOperation shadow clipTo visible backgroundColor").split(" "),initialize:function(options){if(options){this.setOptions(options)}},_initGradient:function(options){if(options.fill&&options.fill.colorStops&&!(options.fill instanceof fabric.Gradient)){this.set("fill",new fabric.Gradient(options.fill))}},_initPattern:function(options){if(options.fill&&options.fill.source&&!(options.fill instanceof fabric.Pattern)){this.set("fill",new fabric.Pattern(options.fill))}if(options.stroke&&options.stroke.source&&!(options.stroke instanceof fabric.Pattern)){this.set("stroke",new fabric.Pattern(options.stroke))}},_initClipping:function(options){if(!options.clipTo||typeof options.clipTo!=="string"){return}var functionBody=fabric.util.getFunctionBody(options.clipTo);if(typeof functionBody!=="undefined"){this.clipTo=new Function("ctx",functionBody)}},setOptions:function(options){for(var prop in options){this.set(prop,options[prop])}this._initGradient(options);this._initPattern(options);this._initClipping(options)},transform:function(ctx,fromLeft){var center=fromLeft?this._getLeftTopCoords():this.getCenterPoint();ctx.translate(center.x,center.y);ctx.rotate(degreesToRadians(this.angle));ctx.scale(this.scaleX*(this.flipX?-1:1),this.scaleY*(this.flipY?-1:1))},toObject:function(propertiesToInclude){var NUM_FRACTION_DIGITS=fabric.Object.NUM_FRACTION_DIGITS,object={type:this.type,originX:this.originX,originY:this.originY,left:toFixed(this.left,NUM_FRACTION_DIGITS),top:toFixed(this.top,NUM_FRACTION_DIGITS),width:toFixed(this.width,NUM_FRACTION_DIGITS),height:toFixed(this.height,NUM_FRACTION_DIGITS),fill:this.fill&&this.fill.toObject?this.fill.toObject():this.fill,stroke:this.stroke&&this.stroke.toObject?this.stroke.toObject():this.stroke,strokeWidth:toFixed(this.strokeWidth,NUM_FRACTION_DIGITS),strokeDashArray:this.strokeDashArray,strokeLineCap:this.strokeLineCap,strokeLineJoin:this.strokeLineJoin,strokeMiterLimit:toFixed(this.strokeMiterLimit,NUM_FRACTION_DIGITS),scaleX:toFixed(this.scaleX,NUM_FRACTION_DIGITS),scaleY:toFixed(this.scaleY,NUM_FRACTION_DIGITS),angle:toFixed(this.getAngle(),NUM_FRACTION_DIGITS),flipX:this.flipX,flipY:this.flipY,opacity:toFixed(this.opacity,NUM_FRACTION_DIGITS),shadow:this.shadow&&this.shadow.toObject?this.shadow.toObject():this.shadow,visible:this.visible,clipTo:this.clipTo&&String(this.clipTo),backgroundColor:this.backgroundColor,fillRule:this.fillRule,globalCompositeOperation:this.globalCompositeOperation};if(!this.includeDefaultValues){object=this._removeDefaultValues(object)}fabric.util.populateWithProperties(this,object,propertiesToInclude);return object},toDatalessObject:function(propertiesToInclude){return this.toObject(propertiesToInclude)},_removeDefaultValues:function(object){var prototype=fabric.util.getKlass(object.type).prototype,stateProperties=prototype.stateProperties;stateProperties.forEach(function(prop){if(object[prop]===prototype[prop]){delete object[prop]}});return object},toString:function(){return"#"},get:function(property){return this[property]},_setObject:function(obj){for(var prop in obj){this._set(prop,obj[prop])}},set:function(key,value){if(typeof key==="object"){this._setObject(key)}else{if(typeof value==="function"&&key!=="clipTo"){this._set(key,value(this.get(key)))}else{this._set(key,value)}}return this},_set:function(key,value){var shouldConstrainValue=key==="scaleX"||key==="scaleY";if(shouldConstrainValue){value=this._constrainScale(value)}if(key==="scaleX"&&value<0){this.flipX=!this.flipX;value*=-1}else if(key==="scaleY"&&value<0){this.flipY=!this.flipY;value*=-1}else if(key==="width"||key==="height"){this.minScaleLimit=toFixed(Math.min(.1,1/Math.max(this.width,this.height)),2)}else if(key==="shadow"&&value&&!(value instanceof fabric.Shadow)){value=new fabric.Shadow(value)}this[key]=value;return this},toggle:function(property){var value=this.get(property);if(typeof value==="boolean"){this.set(property,!value)}return this},setSourcePath:function(value){this.sourcePath=value;return this},getViewportTransform:function(){if(this.canvas&&this.canvas.viewportTransform){return this.canvas.viewportTransform}return[1,0,0,1,0,0]},render:function(ctx,noTransform){if(this.width===0&&this.height===0||!this.visible){return}ctx.save();this._setupCompositeOperation(ctx);if(!noTransform){this.transform(ctx)}this._setStrokeStyles(ctx);this._setFillStyles(ctx);if(this.transformMatrix){ctx.transform.apply(ctx,this.transformMatrix)}this._setOpacity(ctx);this._setShadow(ctx);this.clipTo&&fabric.util.clipContext(this,ctx);this._render(ctx,noTransform);this.clipTo&&ctx.restore();this._removeShadow(ctx);this._restoreCompositeOperation(ctx);ctx.restore()},_setOpacity:function(ctx){if(this.group){this.group._setOpacity(ctx)}ctx.globalAlpha*=this.opacity},_setStrokeStyles:function(ctx){if(this.stroke){ctx.lineWidth=this.strokeWidth;ctx.lineCap=this.strokeLineCap;ctx.lineJoin=this.strokeLineJoin;ctx.miterLimit=this.strokeMiterLimit;ctx.strokeStyle=this.stroke.toLive?this.stroke.toLive(ctx,this):this.stroke}},_setFillStyles:function(ctx){if(this.fill){ctx.fillStyle=this.fill.toLive?this.fill.toLive(ctx,this):this.fill}},_renderControls:function(ctx,noTransform){if(!this.active||noTransform){return}var vpt=this.getViewportTransform();ctx.save();var center;if(this.group){center=fabric.util.transformPoint(this.group.getCenterPoint(),vpt);ctx.translate(center.x,center.y);ctx.rotate(degreesToRadians(this.group.angle))}center=fabric.util.transformPoint(this.getCenterPoint(),vpt,null!=this.group);if(this.group){center.x*=this.group.scaleX;center.y*=this.group.scaleY}ctx.translate(center.x,center.y);ctx.rotate(degreesToRadians(this.angle));this.drawBorders(ctx);this.drawControls(ctx);ctx.restore()},_setShadow:function(ctx){if(!this.shadow){return}var multX=this.canvas&&this.canvas.viewportTransform[0]||1,multY=this.canvas&&this.canvas.viewportTransform[3]||1;ctx.shadowColor=this.shadow.color;ctx.shadowBlur=this.shadow.blur*(multX+multY)*(this.scaleX+this.scaleY)/4;ctx.shadowOffsetX=this.shadow.offsetX*multX*this.scaleX;ctx.shadowOffsetY=this.shadow.offsetY*multY*this.scaleY},_removeShadow:function(ctx){if(!this.shadow){return}ctx.shadowColor="";ctx.shadowBlur=ctx.shadowOffsetX=ctx.shadowOffsetY=0},_renderFill:function(ctx){if(!this.fill){return}ctx.save();if(this.fill.gradientTransform){var g=this.fill.gradientTransform;ctx.transform.apply(ctx,g)}if(this.fill.toLive){ctx.translate(-this.width/2+this.fill.offsetX||0,-this.height/2+this.fill.offsetY||0)}if(this.fillRule==="evenodd"){ctx.fill("evenodd")}else{ctx.fill()}ctx.restore();if(this.shadow&&!this.shadow.affectStroke){this._removeShadow(ctx)}},_renderStroke:function(ctx){if(!this.stroke||this.strokeWidth===0){return}ctx.save();if(this.strokeDashArray){if(1&this.strokeDashArray.length){this.strokeDashArray.push.apply(this.strokeDashArray,this.strokeDashArray)}if(supportsLineDash){ctx.setLineDash(this.strokeDashArray);this._stroke&&this._stroke(ctx)}else{this._renderDashedStroke&&this._renderDashedStroke(ctx)}ctx.stroke()}else{if(this.stroke.gradientTransform){var g=this.stroke.gradientTransform;ctx.transform.apply(ctx,g)}this._stroke?this._stroke(ctx):ctx.stroke()}this._removeShadow(ctx);ctx.restore()},clone:function(callback,propertiesToInclude){if(this.constructor.fromObject){return this.constructor.fromObject(this.toObject(propertiesToInclude),callback)}return new fabric.Object(this.toObject(propertiesToInclude))},cloneAsImage:function(callback){var dataUrl=this.toDataURL();fabric.util.loadImage(dataUrl,function(img){if(callback){callback(new fabric.Image(img))}});return this},toDataURL:function(options){options||(options={});var el=fabric.util.createCanvasElement(),boundingRect=this.getBoundingRect();el.width=boundingRect.width;el.height=boundingRect.height;fabric.util.wrapElement(el,"div");var canvas=new fabric.StaticCanvas(el);if(options.format==="jpg"){options.format="jpeg"}if(options.format==="jpeg"){canvas.backgroundColor="#fff"}var origParams={active:this.get("active"),left:this.getLeft(),top:this.getTop()};this.set("active",false);this.setPositionByOrigin(new fabric.Point(el.width/2,el.height/2),"center","center");var originalCanvas=this.canvas;canvas.add(this);var data=canvas.toDataURL(options);this.set(origParams).setCoords();this.canvas=originalCanvas;canvas.dispose();canvas=null;return data},isType:function(type){return this.type===type},complexity:function(){return 0},toJSON:function(propertiesToInclude){return this.toObject(propertiesToInclude)},setGradient:function(property,options){options||(options={});var gradient={colorStops:[]};gradient.type=options.type||(options.r1||options.r2?"radial":"linear");gradient.coords={x1:options.x1,y1:options.y1,x2:options.x2,y2:options.y2};if(options.r1||options.r2){gradient.coords.r1=options.r1;gradient.coords.r2=options.r2}for(var position in options.colorStops){var color=new fabric.Color(options.colorStops[position]);gradient.colorStops.push({offset:position,color:color.toRgb(),opacity:color.getAlpha()})}return this.set(property,fabric.Gradient.forObject(this,gradient))},setPatternFill:function(options){return this.set("fill",new fabric.Pattern(options))},setShadow:function(options){return this.set("shadow",options?new fabric.Shadow(options):null)},setColor:function(color){this.set("fill",color);return this},setAngle:function(angle){var shouldCenterOrigin=(this.originX!=="center"||this.originY!=="center")&&this.centeredRotation;if(shouldCenterOrigin){this._setOriginToCenter()}this.set("angle",angle);if(shouldCenterOrigin){this._resetOrigin()}return this},centerH:function(){this.canvas.centerObjectH(this);return this},centerV:function(){this.canvas.centerObjectV(this);return this},center:function(){this.canvas.centerObject(this);return this},remove:function(){this.canvas.remove(this);return this},getLocalPointer:function(e,pointer){pointer=pointer||this.canvas.getPointer(e);var objectLeftTop=this.translateToOriginPoint(this.getCenterPoint(),"left","top");return{x:pointer.x-objectLeftTop.x,y:pointer.y-objectLeftTop.y}},_setupCompositeOperation:function(ctx){if(this.globalCompositeOperation){this._prevGlobalCompositeOperation=ctx.globalCompositeOperation;ctx.globalCompositeOperation=this.globalCompositeOperation}},_restoreCompositeOperation:function(ctx){if(this.globalCompositeOperation&&this._prevGlobalCompositeOperation){ctx.globalCompositeOperation=this._prevGlobalCompositeOperation}}});fabric.util.createAccessors(fabric.Object);fabric.Object.prototype.rotate=fabric.Object.prototype.setAngle;extend(fabric.Object.prototype,fabric.Observable);fabric.Object.NUM_FRACTION_DIGITS=2;fabric.Object.__uid=0})(typeof exports!=="undefined"?exports:this);(function(){var degreesToRadians=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{translateToCenterPoint:function(point,originX,originY){var cx=point.x,cy=point.y,strokeWidth=this.stroke?this.strokeWidth:0;if(originX==="left"){cx=point.x+(this.getWidth()+strokeWidth*this.scaleX)/2}else if(originX==="right"){cx=point.x-(this.getWidth()+strokeWidth*this.scaleX)/2}if(originY==="top"){cy=point.y+(this.getHeight()+strokeWidth*this.scaleY)/2}else if(originY==="bottom"){cy=point.y-(this.getHeight()+strokeWidth*this.scaleY)/2}return fabric.util.rotatePoint(new fabric.Point(cx,cy),point,degreesToRadians(this.angle))},translateToOriginPoint:function(center,originX,originY){var x=center.x,y=center.y,strokeWidth=this.stroke?this.strokeWidth:0;if(originX==="left"){x=center.x-(this.getWidth()+strokeWidth*this.scaleX)/2}else if(originX==="right"){x=center.x+(this.getWidth()+strokeWidth*this.scaleX)/2}if(originY==="top"){y=center.y-(this.getHeight()+strokeWidth*this.scaleY)/2}else if(originY==="bottom"){y=center.y+(this.getHeight()+strokeWidth*this.scaleY)/2}return fabric.util.rotatePoint(new fabric.Point(x,y),center,degreesToRadians(this.angle))},getCenterPoint:function(){var leftTop=new fabric.Point(this.left,this.top);return this.translateToCenterPoint(leftTop,this.originX,this.originY)},getPointByOrigin:function(originX,originY){var center=this.getCenterPoint();return this.translateToOriginPoint(center,originX,originY)},toLocalPoint:function(point,originX,originY){var center=this.getCenterPoint(),strokeWidth=this.stroke?this.strokeWidth:0,x,y;if(originX&&originY){if(originX==="left"){x=center.x-(this.getWidth()+strokeWidth*this.scaleX)/2}else if(originX==="right"){x=center.x+(this.getWidth()+strokeWidth*this.scaleX)/2}else{x=center.x}if(originY==="top"){y=center.y-(this.getHeight()+strokeWidth*this.scaleY)/2}else if(originY==="bottom"){y=center.y+(this.getHeight()+strokeWidth*this.scaleY)/2}else{y=center.y}}else{x=this.left;y=this.top}return fabric.util.rotatePoint(new fabric.Point(point.x,point.y),center,-degreesToRadians(this.angle)).subtractEquals(new fabric.Point(x,y))},setPositionByOrigin:function(pos,originX,originY){var center=this.translateToCenterPoint(pos,originX,originY),position=this.translateToOriginPoint(center,this.originX,this.originY);this.set("left",position.x);this.set("top",position.y)},adjustPosition:function(to){var angle=degreesToRadians(this.angle),hypotHalf=this.getWidth()/2,xHalf=Math.cos(angle)*hypotHalf,yHalf=Math.sin(angle)*hypotHalf,hypotFull=this.getWidth(),xFull=Math.cos(angle)*hypotFull,yFull=Math.sin(angle)*hypotFull;if(this.originX==="center"&&to==="left"||this.originX==="right"&&to==="center"){this.left-=xHalf;this.top-=yHalf}else if(this.originX==="left"&&to==="center"||this.originX==="center"&&to==="right"){this.left+=xHalf;this.top+=yHalf}else if(this.originX==="left"&&to==="right"){this.left+=xFull;this.top+=yFull}else if(this.originX==="right"&&to==="left"){this.left-=xFull;this.top-=yFull}this.setCoords();this.originX=to},_setOriginToCenter:function(){this._originalOriginX=this.originX;this._originalOriginY=this.originY;var center=this.getCenterPoint();this.originX="center";this.originY="center";this.left=center.x;this.top=center.y},_resetOrigin:function(){var originPoint=this.translateToOriginPoint(this.getCenterPoint(),this._originalOriginX,this._originalOriginY);this.originX=this._originalOriginX;this.originY=this._originalOriginY;this.left=originPoint.x;this.top=originPoint.y;this._originalOriginX=null;this._originalOriginY=null},_getLeftTopCoords:function(){return this.translateToOriginPoint(this.getCenterPoint(),"left","center")}})})();(function(){var degreesToRadians=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{oCoords:null,intersectsWithRect:function(pointTL,pointBR){var oCoords=this.oCoords,tl=new fabric.Point(oCoords.tl.x,oCoords.tl.y),tr=new fabric.Point(oCoords.tr.x,oCoords.tr.y),bl=new fabric.Point(oCoords.bl.x,oCoords.bl.y),br=new fabric.Point(oCoords.br.x,oCoords.br.y),intersection=fabric.Intersection.intersectPolygonRectangle([tl,tr,br,bl],pointTL,pointBR);return intersection.status==="Intersection"},intersectsWithObject:function(other){function getCoords(oCoords){return{tl:new fabric.Point(oCoords.tl.x,oCoords.tl.y),tr:new fabric.Point(oCoords.tr.x,oCoords.tr.y),bl:new fabric.Point(oCoords.bl.x,oCoords.bl.y),br:new fabric.Point(oCoords.br.x,oCoords.br.y)}}var thisCoords=getCoords(this.oCoords),otherCoords=getCoords(other.oCoords),intersection=fabric.Intersection.intersectPolygonPolygon([thisCoords.tl,thisCoords.tr,thisCoords.br,thisCoords.bl],[otherCoords.tl,otherCoords.tr,otherCoords.br,otherCoords.bl]);return intersection.status==="Intersection"},isContainedWithinObject:function(other){var boundingRect=other.getBoundingRect(),point1=new fabric.Point(boundingRect.left,boundingRect.top),point2=new fabric.Point(boundingRect.left+boundingRect.width,boundingRect.top+boundingRect.height);return this.isContainedWithinRect(point1,point2)},isContainedWithinRect:function(pointTL,pointBR){var boundingRect=this.getBoundingRect();return boundingRect.left>=pointTL.x&&boundingRect.left+boundingRect.width<=pointBR.x&&boundingRect.top>=pointTL.y&&boundingRect.top+boundingRect.height<=pointBR.y},containsPoint:function(point){var lines=this._getImageLines(this.oCoords),xPoints=this._findCrossPoints(point,lines);return xPoints!==0&&xPoints%2===1},_getImageLines:function(oCoords){return{topline:{o:oCoords.tl,d:oCoords.tr},rightline:{o:oCoords.tr,d:oCoords.br},bottomline:{o:oCoords.br,d:oCoords.bl},leftline:{o:oCoords.bl,d:oCoords.tl}}},_findCrossPoints:function(point,oCoords){var b1,b2,a1,a2,xi,yi,xcount=0,iLine;for(var lineKey in oCoords){iLine=oCoords[lineKey];if(iLine.o.y=point.y&&iLine.d.y>=point.y){continue}if(iLine.o.x===iLine.d.x&&iLine.o.x>=point.x){xi=iLine.o.x;yi=point.y}else{b1=0;b2=(iLine.d.y-iLine.o.y)/(iLine.d.x-iLine.o.x);a1=point.y-b1*point.x;a2=iLine.o.y-b2*iLine.o.x;xi=-(a1-a2)/(b1-b2);yi=a1+b1*xi}if(xi>=point.x){xcount+=1}if(xcount===2){break}}return xcount},getBoundingRectWidth:function(){return this.getBoundingRect().width},getBoundingRectHeight:function(){return this.getBoundingRect().height},getBoundingRect:function(){this.oCoords||this.setCoords();var xCoords=[this.oCoords.tl.x,this.oCoords.tr.x,this.oCoords.br.x,this.oCoords.bl.x],minX=fabric.util.array.min(xCoords),maxX=fabric.util.array.max(xCoords),width=Math.abs(minX-maxX),yCoords=[this.oCoords.tl.y,this.oCoords.tr.y,this.oCoords.br.y,this.oCoords.bl.y],minY=fabric.util.array.min(yCoords),maxY=fabric.util.array.max(yCoords),height=Math.abs(minY-maxY);return{left:minX,top:minY,width:width,height:height}},getWidth:function(){return this.width*this.scaleX},getHeight:function(){return this.height*this.scaleY},_constrainScale:function(value){if(Math.abs(value)\n');return reviver?reviver(markup.join("")):markup.join("")},complexity:function(){return 1}});fabric.Line.ATTRIBUTE_NAMES=fabric.SHARED_ATTRIBUTES.concat("x1 y1 x2 y2".split(" "));fabric.Line.fromElement=function(element,options){var parsedAttributes=fabric.parseAttributes(element,fabric.Line.ATTRIBUTE_NAMES),points=[parsedAttributes.x1||0,parsedAttributes.y1||0,parsedAttributes.x2||0,parsedAttributes.y2||0];return new fabric.Line(points,extend(parsedAttributes,options))};fabric.Line.fromObject=function(object){var points=[object.x1,object.y1,object.x2,object.y2];return new fabric.Line(points,object)};function makeEdgeToOriginGetter(propertyNames,originValues){var origin=propertyNames.origin,axis1=propertyNames.axis1,axis2=propertyNames.axis2,dimension=propertyNames.dimension,nearest=originValues.nearest,center=originValues.center,farthest=originValues.farthest;return function(){switch(this.get(origin)){case nearest:return Math.min(this.get(axis1),this.get(axis2));case center:return Math.min(this.get(axis1),this.get(axis2))+.5*this.get(dimension);case farthest:return Math.max(this.get(axis1),this.get(axis2))}}}})(typeof exports!=="undefined"?exports:this);(function(global){"use strict";var fabric=global.fabric||(global.fabric={}),pi=Math.PI,extend=fabric.util.object.extend;if(fabric.Circle){fabric.warn("fabric.Circle is already defined.");return}fabric.Circle=fabric.util.createClass(fabric.Object,{type:"circle",radius:0,startAngle:0,endAngle:pi*2,initialize:function(options){options=options||{};this.callSuper("initialize",options);this.set("radius",options.radius||0);this.startAngle=options.startAngle||this.startAngle;this.endAngle=options.endAngle||this.endAngle},_set:function(key,value){this.callSuper("_set",key,value);if(key==="radius"){this.setRadius(value)}return this},toObject:function(propertiesToInclude){return extend(this.callSuper("toObject",propertiesToInclude),{radius:this.get("radius"),startAngle:this.startAngle,endAngle:this.endAngle})},toSVG:function(reviver){var markup=this._createBaseSVGMarkup(),x=0,y=0,angle=(this.endAngle-this.startAngle)%(2*pi);if(angle===0){if(this.group&&this.group.type==="path-group"){x=this.left+this.radius;y=this.top+this.radius}markup.push("\n')}else{var startX=Math.cos(this.startAngle)*this.radius,startY=Math.sin(this.startAngle)*this.radius,endX=Math.cos(this.endAngle)*this.radius,endY=Math.sin(this.endAngle)*this.radius,largeFlag=angle>pi?"1":"0";markup.push('\n')}return reviver?reviver(markup.join("")):markup.join("")},_render:function(ctx,noTransform){ctx.beginPath();ctx.arc(noTransform?this.left+this.radius:0,noTransform?this.top+this.radius:0,this.radius,this.startAngle,this.endAngle,false);this._renderFill(ctx);this._renderStroke(ctx)},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(value){this.radius=value;this.set("width",value*2).set("height",value*2)},complexity:function(){return 1}});fabric.Circle.ATTRIBUTE_NAMES=fabric.SHARED_ATTRIBUTES.concat("cx cy r".split(" "));fabric.Circle.fromElement=function(element,options){options||(options={});var parsedAttributes=fabric.parseAttributes(element,fabric.Circle.ATTRIBUTE_NAMES);if(!isValidRadius(parsedAttributes)){throw new Error("value of `r` attribute is required and can not be negative")}parsedAttributes.left=parsedAttributes.left||0;parsedAttributes.top=parsedAttributes.top||0;var obj=new fabric.Circle(extend(parsedAttributes,options));obj.left-=obj.radius;obj.top-=obj.radius;return obj};function isValidRadius(attributes){return"radius"in attributes&&attributes.radius>=0}fabric.Circle.fromObject=function(object){return new fabric.Circle(object)}})(typeof exports!=="undefined"?exports:this);(function(global){"use strict";var fabric=global.fabric||(global.fabric={});if(fabric.Triangle){fabric.warn("fabric.Triangle is already defined");return}fabric.Triangle=fabric.util.createClass(fabric.Object,{type:"triangle",initialize:function(options){options=options||{};this.callSuper("initialize",options);this.set("width",options.width||100).set("height",options.height||100)},_render:function(ctx){var widthBy2=this.width/2,heightBy2=this.height/2;ctx.beginPath();ctx.moveTo(-widthBy2,heightBy2);ctx.lineTo(0,-heightBy2);ctx.lineTo(widthBy2,heightBy2);ctx.closePath();this._renderFill(ctx);this._renderStroke(ctx)},_renderDashedStroke:function(ctx){var widthBy2=this.width/2,heightBy2=this.height/2;ctx.beginPath();fabric.util.drawDashedLine(ctx,-widthBy2,heightBy2,0,-heightBy2,this.strokeDashArray);fabric.util.drawDashedLine(ctx,0,-heightBy2,widthBy2,heightBy2,this.strokeDashArray);fabric.util.drawDashedLine(ctx,widthBy2,heightBy2,-widthBy2,heightBy2,this.strokeDashArray);ctx.closePath()},toSVG:function(reviver){var markup=this._createBaseSVGMarkup(),widthBy2=this.width/2,heightBy2=this.height/2,points=[-widthBy2+" "+heightBy2,"0 "+-heightBy2,widthBy2+" "+heightBy2].join(",");markup.push("');return reviver?reviver(markup.join("")):markup.join("")},complexity:function(){return 1}});fabric.Triangle.fromObject=function(object){return new fabric.Triangle(object)}})(typeof exports!=="undefined"?exports:this);(function(global){"use strict";var fabric=global.fabric||(global.fabric={}),piBy2=Math.PI*2,extend=fabric.util.object.extend;if(fabric.Ellipse){fabric.warn("fabric.Ellipse is already defined.");return}fabric.Ellipse=fabric.util.createClass(fabric.Object,{type:"ellipse",rx:0,ry:0,initialize:function(options){options=options||{};this.callSuper("initialize",options);this.set("rx",options.rx||0);this.set("ry",options.ry||0)},_set:function(key,value){this.callSuper("_set",key,value);switch(key){case"rx":this.rx=value;this.set("width",value*2);break;case"ry":this.ry=value;this.set("height",value*2);break}return this},getRx:function(){return this.get("rx")*this.get("scaleX")},getRy:function(){return this.get("ry")*this.get("scaleY")},toObject:function(propertiesToInclude){return extend(this.callSuper("toObject",propertiesToInclude),{rx:this.get("rx"),ry:this.get("ry")})},toSVG:function(reviver){var markup=this._createBaseSVGMarkup(),x=0,y=0;if(this.group&&this.group.type==="path-group"){x=this.left+this.rx;y=this.top+this.ry}markup.push("\n');return reviver?reviver(markup.join("")):markup.join("")},_render:function(ctx,noTransform){ctx.beginPath();ctx.save();ctx.transform(1,0,0,this.ry/this.rx,0,0);ctx.arc(noTransform?this.left+this.rx:0,noTransform?(this.top+this.ry)*this.rx/this.ry:0,this.rx,0,piBy2,false);ctx.restore();this._renderFill(ctx);this._renderStroke(ctx)},complexity:function(){return 1}});fabric.Ellipse.ATTRIBUTE_NAMES=fabric.SHARED_ATTRIBUTES.concat("cx cy rx ry".split(" "));fabric.Ellipse.fromElement=function(element,options){options||(options={});var parsedAttributes=fabric.parseAttributes(element,fabric.Ellipse.ATTRIBUTE_NAMES);parsedAttributes.left=parsedAttributes.left||0;parsedAttributes.top=parsedAttributes.top||0;var ellipse=new fabric.Ellipse(extend(parsedAttributes,options));ellipse.top-=ellipse.ry;ellipse.left-=ellipse.rx;return ellipse};fabric.Ellipse.fromObject=function(object){return new fabric.Ellipse(object)}})(typeof exports!=="undefined"?exports:this);(function(global){"use strict";var fabric=global.fabric||(global.fabric={}),extend=fabric.util.object.extend;if(fabric.Rect){console.warn("fabric.Rect is already defined");return}var stateProperties=fabric.Object.prototype.stateProperties.concat();stateProperties.push("rx","ry","x","y");fabric.Rect=fabric.util.createClass(fabric.Object,{stateProperties:stateProperties,type:"rect",rx:0,ry:0,strokeDashArray:null,initialize:function(options){options=options||{};this.callSuper("initialize",options);this._initRxRy()},_initRxRy:function(){if(this.rx&&!this.ry){this.ry=this.rx}else if(this.ry&&!this.rx){this.rx=this.ry}},_render:function(ctx,noTransform){if(this.width===1&&this.height===1){ctx.fillRect(0,0,1,1);return}var rx=this.rx?Math.min(this.rx,this.width/2):0,ry=this.ry?Math.min(this.ry,this.height/2):0,w=this.width,h=this.height,x=noTransform?this.left:-this.width/2,y=noTransform?this.top:-this.height/2,isRounded=rx!==0||ry!==0,k=1-.5522847498;ctx.beginPath();ctx.moveTo(x+rx,y);ctx.lineTo(x+w-rx,y);isRounded&&ctx.bezierCurveTo(x+w-k*rx,y,x+w,y+k*ry,x+w,y+ry);ctx.lineTo(x+w,y+h-ry);isRounded&&ctx.bezierCurveTo(x+w,y+h-k*ry,x+w-k*rx,y+h,x+w-rx,y+h);ctx.lineTo(x+rx,y+h);isRounded&&ctx.bezierCurveTo(x+k*rx,y+h,x,y+h-k*ry,x,y+h-ry);ctx.lineTo(x,y+ry);isRounded&&ctx.bezierCurveTo(x,y+k*ry,x+k*rx,y,x+rx,y);ctx.closePath();this._renderFill(ctx);this._renderStroke(ctx)},_renderDashedStroke:function(ctx){var x=-this.width/2,y=-this.height/2,w=this.width,h=this.height;ctx.beginPath();fabric.util.drawDashedLine(ctx,x,y,x+w,y,this.strokeDashArray);fabric.util.drawDashedLine(ctx,x+w,y,x+w,y+h,this.strokeDashArray);fabric.util.drawDashedLine(ctx,x+w,y+h,x,y+h,this.strokeDashArray);fabric.util.drawDashedLine(ctx,x,y+h,x,y,this.strokeDashArray);ctx.closePath()},toObject:function(propertiesToInclude){var object=extend(this.callSuper("toObject",propertiesToInclude),{rx:this.get("rx")||0,ry:this.get("ry")||0});if(!this.includeDefaultValues){this._removeDefaultValues(object)}return object},toSVG:function(reviver){var markup=this._createBaseSVGMarkup(),x=this.left,y=this.top;if(!(this.group&&this.group.type==="path-group")){x=-this.width/2;y=-this.height/2}markup.push("\n');return reviver?reviver(markup.join("")):markup.join("")},complexity:function(){return 1}});fabric.Rect.ATTRIBUTE_NAMES=fabric.SHARED_ATTRIBUTES.concat("x y rx ry width height".split(" "));fabric.Rect.fromElement=function(element,options){if(!element){return null}options=options||{};var parsedAttributes=fabric.parseAttributes(element,fabric.Rect.ATTRIBUTE_NAMES);parsedAttributes.left=parsedAttributes.left||0;parsedAttributes.top=parsedAttributes.top||0;var rect=new fabric.Rect(extend(options?fabric.util.object.clone(options):{},parsedAttributes));rect.visible=rect.width>0&&rect.height>0;return rect};fabric.Rect.fromObject=function(object){return new fabric.Rect(object)}})(typeof exports!=="undefined"?exports:this);(function(global){"use strict";var fabric=global.fabric||(global.fabric={});if(fabric.Polyline){fabric.warn("fabric.Polyline is already defined");return}fabric.Polyline=fabric.util.createClass(fabric.Object,{type:"polyline",points:null,minX:0,minY:0,initialize:function(points,options){return fabric.Polygon.prototype.initialize.call(this,points,options)},_calcDimensions:function(){return fabric.Polygon.prototype._calcDimensions.call(this)},_applyPointOffset:function(){return fabric.Polygon.prototype._applyPointOffset.call(this)},toObject:function(propertiesToInclude){return fabric.Polygon.prototype.toObject.call(this,propertiesToInclude)},toSVG:function(reviver){return fabric.Polygon.prototype.toSVG.call(this,reviver)},_render:function(ctx){if(!fabric.Polygon.prototype.commonRender.call(this,ctx)){return}this._renderFill(ctx);this._renderStroke(ctx)},_renderDashedStroke:function(ctx){var p1,p2;ctx.beginPath();for(var i=0,len=this.points.length;i\n');return reviver?reviver(markup.join("")):markup.join("")},_render:function(ctx){if(!this.commonRender(ctx)){return}this._renderFill(ctx);if(this.stroke||this.strokeDashArray){ctx.closePath();this._renderStroke(ctx)}},commonRender:function(ctx){var point,len=this.points.length;if(!len||isNaN(this.points[len-1].y)){return false}ctx.beginPath();if(this._applyPointOffset){if(!(this.group&&this.group.type==="path-group")){this._applyPointOffset()}this._applyPointOffset=null}ctx.moveTo(this.points[0].x,this.points[0].y);for(var i=0;i"},toObject:function(propertiesToInclude){var o=extend(this.callSuper("toObject",propertiesToInclude),{path:this.path.map(function(item){return item.slice()}),pathOffset:this.pathOffset});if(this.sourcePath){o.sourcePath=this.sourcePath}if(this.transformMatrix){o.transformMatrix=this.transformMatrix}return o},toDatalessObject:function(propertiesToInclude){var o=this.toObject(propertiesToInclude);if(this.sourcePath){o.path=this.sourcePath}delete o.sourcePath;return o},toSVG:function(reviver){var chunks=[],markup=this._createBaseSVGMarkup(),addTransform="";for(var i=0,len=this.path.length;i\n");return reviver?reviver(markup.join("")):markup.join("")},complexity:function(){return this.path.length},_parsePath:function(){var result=[],coords=[],currentPath,parsed,re=/([-+]?((\d+\.\d+)|((\d+)|(\.\d+)))(?:e[-+]?\d+)?)/gi,match,coordsStr;for(var i=0,coordsParsed,len=this.path.length;icommandLength){for(var k=1,klen=coordsParsed.length;k\n"];for(var i=0,len=objects.length;i\n");return reviver?reviver(markup.join("")):markup.join("")},toString:function(){return"#"},isSameColor:function(){var firstPathFill=(this.getObjects()[0].get("fill")||"").toLowerCase();return this.getObjects().every(function(path){return(path.get("fill")||"").toLowerCase()===firstPathFill})},complexity:function(){return this.paths.reduce(function(total,path){return total+(path&&path.complexity?path.complexity():0)},0)},getObjects:function(){return this.paths}});fabric.PathGroup.fromObject=function(object,callback){if(typeof object.paths==="string"){fabric.loadSVGFromURL(object.paths,function(elements){var pathUrl=object.paths;delete object.paths;var pathGroup=fabric.util.groupSVGElements(elements,object,pathUrl);callback(pathGroup)})}else{fabric.util.enlivenObjects(object.paths,function(enlivenedObjects){delete object.paths;callback(new fabric.PathGroup(enlivenedObjects,object))})}};fabric.PathGroup.async=true})(typeof exports!=="undefined"?exports:this);(function(global){"use strict";var fabric=global.fabric||(global.fabric={}),extend=fabric.util.object.extend,min=fabric.util.array.min,max=fabric.util.array.max,invoke=fabric.util.array.invoke;if(fabric.Group){return}var _lockProperties={lockMovementX:true,lockMovementY:true,lockRotation:true,lockScalingX:true,lockScalingY:true,lockUniScaling:true};fabric.Group=fabric.util.createClass(fabric.Object,fabric.Collection,{type:"group",initialize:function(objects,options){options=options||{};this._objects=objects||[];for(var i=this._objects.length;i--;){this._objects[i].group=this}this.originalState={};this.callSuper("initialize");if(options.originX){this.originX=options.originX}if(options.originY){this.originY=options.originY}this._calcBounds();this._updateObjectsCoords();this.callSuper("initialize",options);this.setCoords();this.saveCoords()},_updateObjectsCoords:function(){this.forEachObject(this._updateObjectCoords,this)},_updateObjectCoords:function(object){var objectLeft=object.getLeft(),objectTop=object.getTop(),center=this.getCenterPoint();object.set({originalLeft:objectLeft,originalTop:objectTop,left:objectLeft-center.x,top:objectTop-center.y});object.setCoords();object.__origHasControls=object.hasControls;object.hasControls=false},toString:function(){return"#"},addWithUpdate:function(object){this._restoreObjectsState();if(object){this._objects.push(object);object.group=this}this.forEachObject(this._setObjectActive,this);this._calcBounds();this._updateObjectsCoords();return this},_setObjectActive:function(object){object.set("active",true);object.group=this},removeWithUpdate:function(object){this._moveFlippedObject(object);this._restoreObjectsState();this.forEachObject(this._setObjectActive,this);this.remove(object);this._calcBounds();this._updateObjectsCoords();return this},_onObjectAdded:function(object){object.group=this},_onObjectRemoved:function(object){delete object.group;object.set("active",false)},delegatedProperties:{fill:true,opacity:true,fontFamily:true,fontWeight:true,fontSize:true,fontStyle:true,lineHeight:true,textDecoration:true,textAlign:true,backgroundColor:true},_set:function(key,value){if(key in this.delegatedProperties){var i=this._objects.length;while(i--){this._objects[i].set(key,value)}}this.callSuper("_set",key,value)},toObject:function(propertiesToInclude){return extend(this.callSuper("toObject",propertiesToInclude),{objects:invoke(this._objects,"toObject",propertiesToInclude)})},render:function(ctx){if(!this.visible){return}ctx.save();this.clipTo&&fabric.util.clipContext(this,ctx);this.transform(ctx);for(var i=0,len=this._objects.length;i\n'];for(var i=0,len=this._objects.length;i\n");return reviver?reviver(markup.join("")):markup.join("")},get:function(prop){if(prop in _lockProperties){if(this[prop]){return this[prop]}else{for(var i=0,len=this._objects.length;i\n','\n");if(this.stroke||this.strokeDashArray){var origFill=this.fill;this.fill=null;markup.push("\n');this.fill=origFill}markup.push("\n");return reviver?reviver(markup.join("")):markup.join("")},getSrc:function(){if(this.getElement()){return this.getElement().src||this.getElement()._src}},setSrc:function(src,callback,options){fabric.util.loadImage(src,function(img){return this.setElement(img,callback,options)},this,options&&options.crossOrigin)},toString:function(){return'#'},clone:function(callback,propertiesToInclude){this.constructor.fromObject(this.toObject(propertiesToInclude),callback)},applyFilters:function(callback,filters,imgElement,forResizing){filters=filters||this.filters;imgElement=imgElement||this._originalElement;if(!imgElement){return}var imgEl=imgElement,canvasEl=fabric.util.createCanvasElement(),replacement=fabric.util.createImage(),_this=this;canvasEl.width=imgEl.width;canvasEl.height=imgEl.height;canvasEl.getContext("2d").drawImage(imgEl,0,0,imgEl.width,imgEl.height);if(filters.length===0){this._element=imgElement;callback&&callback();return canvasEl}filters.forEach(function(filter){filter&&filter.applyTo(canvasEl,filter.scaleX||_this.scaleX,filter.scaleY||_this.scaleY);if(!forResizing&&filter&&filter.type==="Resize"){_this.width*=filter.scaleX;_this.height*=filter.scaleY}});replacement.width=canvasEl.width;replacement.height=canvasEl.height;if(fabric.isLikelyNode){replacement.src=canvasEl.toBuffer(undefined,fabric.Image.pngCompression);_this._element=replacement;!forResizing&&(_this._filteredEl=replacement);callback&&callback()}else{replacement.onload=function(){_this._element=replacement;!forResizing&&(_this._filteredEl=replacement);callback&&callback();replacement.onload=canvasEl=imgEl=null};replacement.src=canvasEl.toDataURL("image/png")}return canvasEl},_render:function(ctx,noTransform){var x,y,imageMargins=this._findMargins(),elementToDraw;x=noTransform?this.left:-this.width/2;y=noTransform?this.top:-this.height/2;if(this.meetOrSlice==="slice"){ctx.beginPath();ctx.rect(x,y,this.width,this.height);ctx.clip()}if(this.isMoving===false&&this.resizeFilters.length&&this._needsResize()){this._lastScaleX=this.scaleX;this._lastScaleY=this.scaleY;elementToDraw=this.applyFilters(null,this.resizeFilters,this._filteredEl||this._originalElement,true)}else{elementToDraw=this._element}elementToDraw&&ctx.drawImage(elementToDraw,x+imageMargins.marginX,y+imageMargins.marginY,imageMargins.width,imageMargins.height);this._renderStroke(ctx)},_needsResize:function(){return this.scaleX!==this._lastScaleX||this.scaleY!==this._lastScaleY},_findMargins:function(){var width=this.width,height=this.height,scales,scale,marginX=0,marginY=0;if(this.alignX!=="none"||this.alignY!=="none"){scales=[this.width/this._element.width,this.height/this._element.height];scale=this.meetOrSlice==="meet"?Math.min.apply(null,scales):Math.max.apply(null,scales);width=this._element.width*scale;height=this._element.height*scale;if(this.alignX==="Mid"){marginX=(this.width-width)/2}if(this.alignX==="Max"){marginX=this.width-width}if(this.alignY==="Mid"){marginY=(this.height-height)/2}if(this.alignY==="Max"){marginY=this.height-height}}return{width:width,height:height,marginX:marginX,marginY:marginY}},_resetWidthHeight:function(){var element=this.getElement();this.set("width",element.width);this.set("height",element.height)},_initElement:function(element){this.setElement(fabric.util.getById(element));fabric.util.addClass(this.getElement(),fabric.Image.CSS_CANVAS)},_initConfig:function(options){options||(options={});this.setOptions(options);this._setWidthHeight(options);if(this._element&&this.crossOrigin){this._element.crossOrigin=this.crossOrigin}},_initFilters:function(object,callback){if(object.filters&&object.filters.length){fabric.util.enlivenObjects(object.filters,function(enlivenedObjects){callback&&callback(enlivenedObjects)},"fabric.Image.filters")}else{callback&&callback()}},_setWidthHeight:function(options){this.width="width"in options?options.width:this.getElement()?this.getElement().width||0:0;this.height="height"in options?options.height:this.getElement()?this.getElement().height||0:0},complexity:function(){return 1}});fabric.Image.CSS_CANVAS="canvas-img";fabric.Image.prototype.getSvgSrc=fabric.Image.prototype.getSrc;fabric.Image.fromObject=function(object,callback){fabric.util.loadImage(object.src,function(img){fabric.Image.prototype._initFilters.call(object,object,function(filters){object.filters=filters||[];var instance=new fabric.Image(img,object);callback&&callback(instance)})},null,object.crossOrigin)};fabric.Image.fromURL=function(url,callback,imgOptions){fabric.util.loadImage(url,function(img){callback&&callback(new fabric.Image(img,imgOptions))},null,imgOptions&&imgOptions.crossOrigin)};fabric.Image.ATTRIBUTE_NAMES=fabric.SHARED_ATTRIBUTES.concat("x y width height preserveAspectRatio xlink:href".split(" "));fabric.Image.fromElement=function(element,callback,options){var parsedAttributes=fabric.parseAttributes(element,fabric.Image.ATTRIBUTE_NAMES),align="xMidYMid",meetOrSlice="meet",alignX,alignY,aspectRatioAttrs;if(parsedAttributes.preserveAspectRatio){aspectRatioAttrs=parsedAttributes.preserveAspectRatio.split(" ")}if(aspectRatioAttrs&&aspectRatioAttrs.length){meetOrSlice=aspectRatioAttrs.pop();if(meetOrSlice!=="meet"&&meetOrSlice!=="slice"){align=meetOrSlice;meetOrSlice="meet"}else if(aspectRatioAttrs.length){align=aspectRatioAttrs.pop()}}alignX=align!=="none"?align.slice(1,4):"none";alignY=align!=="none"?align.slice(5,8):"none";parsedAttributes.alignX=alignX;parsedAttributes.alignY=alignY;parsedAttributes.meetOrSlice=meetOrSlice;fabric.Image.fromURL(parsedAttributes["xlink:href"],callback,extend(options?fabric.util.object.clone(options):{},parsedAttributes))};fabric.Image.async=true;fabric.Image.pngCompression=1})(typeof exports!=="undefined"?exports:this);fabric.util.object.extend(fabric.Object.prototype,{_getAngleValueForStraighten:function(){var angle=this.getAngle()%360;if(angle>0){return Math.round((angle-1)/90)*90}return Math.round(angle/90)*90},straighten:function(){this.setAngle(this._getAngleValueForStraighten());return this},fxStraighten:function(callbacks){callbacks=callbacks||{};var empty=function(){},onComplete=callbacks.onComplete||empty,onChange=callbacks.onChange||empty,_this=this;fabric.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(value){_this.setAngle(value);onChange()},onComplete:function(){_this.setCoords();onComplete()},onStart:function(){_this.set("active",false)}});return this}});fabric.util.object.extend(fabric.StaticCanvas.prototype,{straightenObject:function(object){object.straighten();this.renderAll();return this},fxStraightenObject:function(object){object.fxStraighten({onChange:this.renderAll.bind(this)});return this}});fabric.Image.filters=fabric.Image.filters||{};fabric.Image.filters.BaseFilter=fabric.util.createClass({type:"BaseFilter",initialize:function(options){if(options){this.setOptions(options)}},setOptions:function(options){for(var prop in options){this[prop]=options[prop]}},toObject:function(){return{type:this.type}},toJSON:function(){return this.toObject()}});(function(global){"use strict";var fabric=global.fabric||(global.fabric={}),extend=fabric.util.object.extend;fabric.Image.filters.Brightness=fabric.util.createClass(fabric.Image.filters.BaseFilter,{type:"Brightness",initialize:function(options){options=options||{};this.brightness=options.brightness||0},applyTo:function(canvasEl){var context=canvasEl.getContext("2d"),imageData=context.getImageData(0,0,canvasEl.width,canvasEl.height),data=imageData.data,brightness=this.brightness;for(var i=0,len=data.length;ish||scx<0||scx>sw){continue}var srcOff=(scy*sw+scx)*4,wt=weights[cy*side+cx];r+=src[srcOff]*wt;g+=src[srcOff+1]*wt;b+=src[srcOff+2]*wt;a+=src[srcOff+3]*wt}}dst[dstOff]=r;dst[dstOff+1]=g;dst[dstOff+2]=b;dst[dstOff+3]=a+alphaFac*(255-a)}}context.putImageData(output,0,0)},toObject:function(){return extend(this.callSuper("toObject"),{opaque:this.opaque,matrix:this.matrix})}});fabric.Image.filters.Convolute.fromObject=function(object){return new fabric.Image.filters.Convolute(object); - -}})(typeof exports!=="undefined"?exports:this);(function(global){"use strict";var fabric=global.fabric||(global.fabric={}),extend=fabric.util.object.extend;fabric.Image.filters.GradientTransparency=fabric.util.createClass(fabric.Image.filters.BaseFilter,{type:"GradientTransparency",initialize:function(options){options=options||{};this.threshold=options.threshold||100},applyTo:function(canvasEl){var context=canvasEl.getContext("2d"),imageData=context.getImageData(0,0,canvasEl.width,canvasEl.height),data=imageData.data,threshold=this.threshold,total=data.length;for(var i=0,len=data.length;i-1?options.channel:0},applyTo:function(canvasEl){if(!this.mask){return}var context=canvasEl.getContext("2d"),imageData=context.getImageData(0,0,canvasEl.width,canvasEl.height),data=imageData.data,maskEl=this.mask.getElement(),maskCanvasEl=fabric.util.createCanvasElement(),channel=this.channel,i,iLen=imageData.width*imageData.height*4;maskCanvasEl.width=maskEl.width;maskCanvasEl.height=maskEl.height;maskCanvasEl.getContext("2d").drawImage(maskEl,0,0,maskEl.width,maskEl.height);var maskImageData=maskCanvasEl.getContext("2d").getImageData(0,0,maskEl.width,maskEl.height),maskData=maskImageData.data;for(i=0;ilimit&&g>limit&&b>limit&&abs(r-g)width){multW=2;signW=-1}if(newHeight>height){multH=2;signH=-1}imageData=context.getImageData(0,0,width,height);canvasEl.width=max(newWidth,width);canvasEl.height=max(newHeight,height);context.putImageData(imageData,0,0);while(!doneW||!doneH){width=stepW;height=stepH;if(newWidth*signWlobes){return 0}x*=Math.PI;if(abs(x)<1e-16){return 1}var xx=x/lobes;return sin(x)*sin(xx)/x/xx}}function process(u){var v,i,weight,idx,a,red,green,blue,alpha,fX,fY;center.x=(u+.5)*ratioX;icenter.x=floor(center.x);for(v=0;v=oW){continue}fX=floor(1e3*abs(i-center.x));if(!cacheLanc[fX]){cacheLanc[fX]={}}for(var j=icenter.y-range2Y;j<=icenter.y+range2Y;j++){if(j<0||j>=oH){continue}fY=floor(1e3*abs(j-center.y));if(!cacheLanc[fX][fY]){cacheLanc[fX][fY]=lanczos(sqrt(pow(fX*rcpRatioX,2)+pow(fY*rcpRatioY,2))/1e3)}weight=cacheLanc[fX][fY];if(weight>0){idx=(j*oW+i)*4;a+=weight;red+=weight*srcData[idx];green+=weight*srcData[idx+1];blue+=weight*srcData[idx+2];alpha+=weight*srcData[idx+3]}}}idx=(v*dW+u)*4;destData[idx]=red/a;destData[idx+1]=green/a;destData[idx+2]=blue/a;destData[idx+3]=alpha/a}if(++u1&&w<-1){continue}weight=2*w*w*w-3*w*w+1;if(weight>0){dx=4*(xx+yy*oW);gxA+=weight*data[dx+3];weightsAlpha+=weight;if(data[dx+3]<255){weight=weight*data[dx+3]/250}gxR+=weight*data[dx];gxG+=weight*data[dx+1];gxB+=weight*data[dx+2];weights+=weight}}}data2[x2]=gxR/weights;data2[x2+1]=gxG/weights;data2[x2+2]=gxB/weights;data2[x2+3]=gxA/weightsAlpha}}return img2},toObject:function(){return{type:this.type,scaleX:this.scaleX,scaley:this.scaleY,resizeType:this.resizeType,lanczosLobes:this.lanczosLobes}}});fabric.Image.filters.Resize.fromObject=function(){return new fabric.Image.filters.Resize}})(typeof exports!=="undefined"?exports:this);(function(global){"use strict";var fabric=global.fabric||(global.fabric={}),extend=fabric.util.object.extend,clone=fabric.util.object.clone,toFixed=fabric.util.toFixed,supportsLineDash=fabric.StaticCanvas.supports("setLineDash");if(fabric.Text){fabric.warn("fabric.Text is already defined");return}var stateProperties=fabric.Object.prototype.stateProperties.concat();stateProperties.push("fontFamily","fontWeight","fontSize","text","textDecoration","textAlign","fontStyle","lineHeight","textBackgroundColor");fabric.Text=fabric.util.createClass(fabric.Object,{_dimensionAffectingProps:{fontSize:true,fontWeight:true,fontFamily:true,fontStyle:true,lineHeight:true,stroke:true,strokeWidth:true,text:true,textAlign:true},_reNewline:/\r?\n/,type:"text",fontSize:40,fontWeight:"normal",fontFamily:"Times New Roman",textDecoration:"",textAlign:"left",fontStyle:"",lineHeight:1.16,textBackgroundColor:"",stateProperties:stateProperties,stroke:null,shadow:null,_fontSizeFraction:.25,_fontSizeMult:1.13,initialize:function(text,options){options=options||{};this.text=text;this.__skipDimension=true;this.setOptions(options);this.__skipDimension=false;this._initDimensions()},_initDimensions:function(ctx){if(this.__skipDimension){return}if(!ctx){ctx=fabric.util.createCanvasElement().getContext("2d");this._setTextStyles(ctx)}this._textLines=this.text.split(this._reNewline);this._clearCache();var currentTextAlign=this.textAlign;this.textAlign="left";this.width=this._getTextWidth(ctx);this.textAlign=currentTextAlign;this.height=this._getTextHeight(ctx)},toString:function(){return"#'},_render:function(ctx){this.clipTo&&fabric.util.clipContext(this,ctx);this._renderTextBackground(ctx);this._renderText(ctx);this._renderTextDecoration(ctx);this.clipTo&&ctx.restore()},_renderText:function(ctx){ctx.save();this._translateForTextAlign(ctx);this._setOpacity(ctx);this._setShadow(ctx);this._setupCompositeOperation(ctx);this._renderTextFill(ctx);this._renderTextStroke(ctx);this._restoreCompositeOperation(ctx);this._removeShadow(ctx);ctx.restore()},_translateForTextAlign:function(ctx){if(this.textAlign!=="left"&&this.textAlign!=="justify"){ctx.translate(this.textAlign==="center"?this.width/2:this.width,0)}},_setTextStyles:function(ctx){ctx.textBaseline="alphabetic";if(!this.skipTextAlign){ctx.textAlign=this.textAlign}ctx.font=this._getFontDeclaration()},_getTextHeight:function(){return this._textLines.length*this._getHeightOfLine()},_getTextWidth:function(ctx){var maxWidth=this._getLineWidth(ctx,0);for(var i=1,len=this._textLines.length;imaxWidth){maxWidth=currentLineWidth}}return maxWidth},_renderChars:function(method,ctx,chars,left,top){ctx[method](chars,left,top)},_renderTextLine:function(method,ctx,line,left,top,lineIndex){top-=this.fontSize*this._fontSizeFraction;if(this.textAlign!=="justify"){this._renderChars(method,ctx,line,left,top,lineIndex);return}var lineWidth=this._getLineWidth(ctx,lineIndex),totalWidth=this.width;if(totalWidth>=lineWidth){var words=line.split(/\s+/),wordsWidth=this._getWidthOfWords(ctx,line,lineIndex),widthDiff=totalWidth-wordsWidth,numSpaces=words.length-1,spaceWidth=widthDiff/numSpaces,leftOffset=0;for(var i=0,len=words.length;i-1){offsets.push(.85)}if(this.textDecoration.indexOf("line-through")>-1){offsets.push(.43)}if(this.textDecoration.indexOf("overline")>-1){offsets.push(-.12)}if(offsets.length>0){renderLinesAtOffset(offsets)}},_getFontDeclaration:function(){return[fabric.isLikelyNode?this.fontWeight:this.fontStyle,fabric.isLikelyNode?this.fontStyle:this.fontWeight,this.fontSize+"px",fabric.isLikelyNode?'"'+this.fontFamily+'"':this.fontFamily].join(" ")},render:function(ctx,noTransform){if(!this.visible){return}ctx.save();this._setTextStyles(ctx);if(this._shouldClearCache()){this._initDimensions(ctx)}if(!noTransform){this.transform(ctx)}this._setStrokeStyles(ctx);this._setFillStyles(ctx);if(this.transformMatrix){ctx.transform.apply(ctx,this.transformMatrix)}if(this.group&&this.group.type==="path-group"){ctx.translate(this.left,this.top)}this._render(ctx);ctx.restore()},toObject:function(propertiesToInclude){var object=extend(this.callSuper("toObject",propertiesToInclude),{text:this.text,fontSize:this.fontSize,fontWeight:this.fontWeight,fontFamily:this.fontFamily,fontStyle:this.fontStyle,lineHeight:this.lineHeight,textDecoration:this.textDecoration,textAlign:this.textAlign,textBackgroundColor:this.textBackgroundColor});if(!this.includeDefaultValues){this._removeDefaultValues(object)}return object},toSVG:function(reviver){var markup=this._createBaseSVGMarkup(),offsets=this._getSVGLeftTopOffsets(this.ctx),textAndBg=this._getSVGTextAndBg(offsets.textTop,offsets.textLeft);this._wrapSVGTextAndBg(markup,textAndBg);return reviver?reviver(markup.join("")):markup.join("")},_getSVGLeftTopOffsets:function(ctx){var lineTop=this._getHeightOfLine(ctx,0),textLeft=-this.width/2,textTop=0;return{textLeft:textLeft+(this.group&&this.group.type==="path-group"?this.left:0),textTop:textTop+(this.group&&this.group.type==="path-group"?-this.top:0),lineTop:lineTop}},_wrapSVGTextAndBg:function(markup,textAndBg){markup.push(' \n',textAndBg.textBgRects.join("")," ',textAndBg.textSpans.join(""),"\n"," \n")},_getSVGTextAndBg:function(textTopOffset,textLeftOffset){var textSpans=[],textBgRects=[],height=0;this._setSVGBg(textBgRects);for(var i=0,len=this._textLines.length;i",fabric.util.string.escapeXml(this._textLines[i]),"")},_setSVGTextLineBg:function(textBgRects,i,textLeftOffset,textTopOffset,height){textBgRects.push(" \n')},_setSVGBg:function(textBgRects){if(this.backgroundColor){textBgRects.push(" \n')}},_getFillAttributes:function(value){var fillColor=value&&typeof value==="string"?new fabric.Color(value):"";if(!fillColor||!fillColor.getSource()||fillColor.getAlpha()===1){return'fill="'+value+'"'}return'opacity="'+fillColor.getAlpha()+'" fill="'+fillColor.setAlpha(1).toRgb()+'"'},_set:function(key,value){this.callSuper("_set",key,value);if(key in this._dimensionAffectingProps){this._initDimensions();this.setCoords()}},complexity:function(){return 1}});fabric.Text.ATTRIBUTE_NAMES=fabric.SHARED_ATTRIBUTES.concat("x y dx dy font-family font-style font-weight font-size text-decoration text-anchor".split(" "));fabric.Text.DEFAULT_SVG_FONT_SIZE=16;fabric.Text.fromElement=function(element,options){if(!element){return null}var parsedAttributes=fabric.parseAttributes(element,fabric.Text.ATTRIBUTE_NAMES);options=fabric.util.object.extend(options?fabric.util.object.clone(options):{},parsedAttributes);options.top=options.top||0;options.left=options.left||0;if("dx"in parsedAttributes){options.left+=parsedAttributes.dx}if("dy"in parsedAttributes){options.top+=parsedAttributes.dy}if(!("fontSize"in options)){options.fontSize=fabric.Text.DEFAULT_SVG_FONT_SIZE}if(!options.originX){options.originX="left"}var textContent=element.textContent.replace(/^\s+|\s+$|\n+/g,"").replace(/\s+/g," "),text=new fabric.Text(textContent,options),offX=0;if(text.originX==="left"){offX=text.getWidth()/2}if(text.originX==="right"){offX=-text.getWidth()/2}text.set({left:text.getLeft()+offX,top:text.getTop()-text.getHeight()/2+text.fontSize*(.18+text._fontSizeFraction)});return text};fabric.Text.fromObject=function(object){return new fabric.Text(object.text,clone(object))};fabric.util.createAccessors(fabric.Text)})(typeof exports!=="undefined"?exports:this);(function(){var clone=fabric.util.object.clone;fabric.IText=fabric.util.createClass(fabric.Text,fabric.Observable,{type:"i-text",selectionStart:0,selectionEnd:0,selectionColor:"rgba(17,119,255,0.3)",isEditing:false,editable:true,editingBorderColor:"rgba(102,153,255,0.25)",cursorWidth:2,cursorColor:"#333",cursorDelay:1e3,cursorDuration:600,styles:null,caching:true,_skipFillStrokeCheck:false,_reSpace:/\s|\n/,_currentCursorOpacity:0,_selectionDirection:null,_abortCursorAnimation:false,_charWidthsCache:{},initialize:function(text,options){this.styles=options?options.styles||{}:{};this.callSuper("initialize",text,options);this.initBehavior()},_clearCache:function(){this.callSuper("_clearCache");this.__maxFontHeights=[];this.__widthOfSpace=[]},isEmptyStyles:function(){if(!this.styles){return true}var obj=this.styles;for(var p1 in obj){for(var p2 in obj[p1]){for(var p3 in obj[p1][p2]){return false}}}return true},setSelectionStart:function(index){index=Math.max(index,0);if(this.selectionStart!==index){this.fire("selection:changed");this.canvas&&this.canvas.fire("text:selection:changed",{target:this});this.selectionStart=index}this._updateTextarea()},setSelectionEnd:function(index){index=Math.min(index,this.text.length);if(this.selectionEnd!==index){this.fire("selection:changed");this.canvas&&this.canvas.fire("text:selection:changed",{target:this});this.selectionEnd=index}this._updateTextarea(); - -},getSelectionStyles:function(startIndex,endIndex){if(arguments.length===2){var styles=[];for(var i=startIndex;i=start.charIndex&&(i!==endLine||jstartLine&&i0||this.skipFillStrokeCheck)){this.callSuper("_renderChars",method,ctx,line,left,top)}},_renderChar:function(method,ctx,lineIndex,i,_char,left,top,lineHeight){var decl,charWidth,charHeight,offset=this._fontSizeFraction*lineHeight/this.lineHeight;if(this.styles&&this.styles[lineIndex]&&(decl=this.styles[lineIndex][i])){var shouldStroke=decl.stroke||this.stroke,shouldFill=decl.fill||this.fill;ctx.save();charWidth=this._applyCharStylesGetWidth(ctx,_char,lineIndex,i,decl);charHeight=this._getHeightOfChar(ctx,_char,lineIndex,i);if(shouldFill){ctx.fillText(_char,left,top)}if(shouldStroke){ctx.strokeText(_char,left,top)}this._renderCharDecoration(ctx,decl,left,top,offset,charWidth,charHeight);ctx.restore();ctx.translate(charWidth,0)}else{if(method==="strokeText"&&this.stroke){ctx[method](_char,left,top)}if(method==="fillText"&&this.fill){ctx[method](_char,left,top)}charWidth=this._applyCharStylesGetWidth(ctx,_char,lineIndex,i);this._renderCharDecoration(ctx,null,left,top,offset,charWidth,this.fontSize);ctx.translate(ctx.measureText(_char).width,0)}},_hasStyleChanged:function(prevStyle,thisStyle){return prevStyle.fill!==thisStyle.fill||prevStyle.fontSize!==thisStyle.fontSize||prevStyle.textBackgroundColor!==thisStyle.textBackgroundColor||prevStyle.textDecoration!==thisStyle.textDecoration||prevStyle.fontFamily!==thisStyle.fontFamily||prevStyle.fontWeight!==thisStyle.fontWeight||prevStyle.fontStyle!==thisStyle.fontStyle||prevStyle.stroke!==thisStyle.stroke||prevStyle.strokeWidth!==thisStyle.strokeWidth},_renderCharDecoration:function(ctx,styleDeclaration,left,top,offset,charWidth,charHeight){var textDecoration=styleDeclaration?styleDeclaration.textDecoration||this.textDecoration:this.textDecoration;if(!textDecoration){return}if(textDecoration.indexOf("underline")>-1){ctx.fillRect(left,top+charHeight/10,charWidth,charHeight/15)}if(textDecoration.indexOf("line-through")>-1){ctx.fillRect(left,top-charHeight*(this._fontSizeFraction+this._fontSizeMult-1)+charHeight/15,charWidth,charHeight/15)}if(textDecoration.indexOf("overline")>-1){ctx.fillRect(left,top-(this._fontSizeMult-this._fontSizeFraction)*charHeight,charWidth,charHeight/15)}},_renderTextLine:function(method,ctx,line,left,top,lineIndex){if(!this.isEmptyStyles()){top+=this.fontSize*(this._fontSizeFraction+.03)}this.callSuper("_renderTextLine",method,ctx,line,left,top,lineIndex)},_renderTextDecoration:function(ctx){if(this.isEmptyStyles()){return this.callSuper("_renderTextDecoration",ctx)}},_renderTextLinesBackground:function(ctx){if(!this.textBackgroundColor&&!this.styles){return}ctx.save();if(this.textBackgroundColor){ctx.fillStyle=this.textBackgroundColor}var lineHeights=0;for(var i=0,len=this._textLines.length;imaxHeight){maxHeight=currentCharHeight}}this.__maxFontHeights[lineIndex]=maxHeight;this.__lineHeights[lineIndex]=maxHeight*this.lineHeight*this._fontSizeMult;return this.__lineHeights[lineIndex]},_getTextHeight:function(ctx){var height=0;for(var i=0,len=this._textLines.length;i-1){offset++;index--}return startFrom-offset},findWordBoundaryRight:function(startFrom){var offset=0,index=startFrom;if(this._reSpace.test(this.text.charAt(index))){while(this._reSpace.test(this.text.charAt(index))){offset++;index++}}while(/\S/.test(this.text.charAt(index))&&index-1){offset++;index--}return startFrom-offset},findLineBoundaryRight:function(startFrom){var offset=0,index=startFrom;while(!/\n/.test(this.text.charAt(index))&&index0&&index=_this.__selectionStartOnMouseDown){_this.setSelectionStart(_this.__selectionStartOnMouseDown);_this.setSelectionEnd(newSelectionStart)}else{_this.setSelectionStart(newSelectionStart);_this.setSelectionEnd(_this.__selectionStartOnMouseDown)}})},_setEditingProps:function(){this.hoverCursor="text";if(this.canvas){this.canvas.defaultCursor=this.canvas.moveCursor="text"}this.borderColor=this.editingBorderColor;this.hasControls=this.selectable=false;this.lockMovementX=this.lockMovementY=true},_updateTextarea:function(){if(!this.hiddenTextarea){return}this.hiddenTextarea.value=this.text;this.hiddenTextarea.selectionStart=this.selectionStart;this.hiddenTextarea.selectionEnd=this.selectionEnd},_saveEditingProps:function(){this._savedProps={hasControls:this.hasControls,borderColor:this.borderColor,lockMovementX:this.lockMovementX,lockMovementY:this.lockMovementY,hoverCursor:this.hoverCursor,defaultCursor:this.canvas&&this.canvas.defaultCursor,moveCursor:this.canvas&&this.canvas.moveCursor}},_restoreEditingProps:function(){if(!this._savedProps){return}this.hoverCursor=this._savedProps.overCursor;this.hasControls=this._savedProps.hasControls;this.borderColor=this._savedProps.borderColor;this.lockMovementX=this._savedProps.lockMovementX;this.lockMovementY=this._savedProps.lockMovementY;if(this.canvas){this.canvas.defaultCursor=this._savedProps.defaultCursor;this.canvas.moveCursor=this._savedProps.moveCursor}},exitEditing:function(){this.selected=false;this.isEditing=false;this.selectable=true;this.selectionEnd=this.selectionStart;this.hiddenTextarea&&this.canvas&&this.hiddenTextarea.parentNode.removeChild(this.hiddenTextarea);this.hiddenTextarea=null;this.abortCursorAnimation();this._restoreEditingProps();this._currentCursorOpacity=0;this.fire("editing:exited");this.canvas&&this.canvas.fire("text:editing:exited",{target:this});return this},_removeExtraneousStyles:function(){for(var prop in this.styles){if(!this._textLines[prop]){delete this.styles[prop]}}},_removeCharsFromTo:function(start,end){var i=end;while(i!==start){var prevIndex=this.get2DCursorLocation(i).charIndex;i--;var index=this.get2DCursorLocation(i).charIndex,isNewline=index>prevIndex;if(isNewline){this.removeStyleObject(isNewline,i+1)}else{this.removeStyleObject(this.get2DCursorLocation(i).charIndex===0,i)}}this.text=this.text.slice(0,start)+this.text.slice(end);this._clearCache()},insertChars:function(_chars,useCopiedStyle){var isEndOfLine=this.text.slice(this.selectionStart,this.selectionStart+1)==="\n";this.text=this.text.slice(0,this.selectionStart)+_chars+this.text.slice(this.selectionEnd);if(this.selectionStart===this.selectionEnd){this.insertStyleObjects(_chars,isEndOfLine,useCopiedStyle)}this.setSelectionStart(this.selectionStart+_chars.length);this.setSelectionEnd(this.selectionStart);this._clearCache();this.canvas&&this.canvas.renderAll();this.setCoords();this.fire("changed");this.canvas&&this.canvas.fire("text:changed",{target:this})},insertNewlineStyleObject:function(lineIndex,charIndex,isEndOfLine){this.shiftLineStyles(lineIndex,+1);if(!this.styles[lineIndex+1]){this.styles[lineIndex+1]={}}var currentCharStyle=this.styles[lineIndex][charIndex-1],newLineStyles={};if(isEndOfLine){newLineStyles[0]=clone(currentCharStyle);this.styles[lineIndex+1]=newLineStyles}else{for(var index in this.styles[lineIndex]){if(parseInt(index,10)>=charIndex){newLineStyles[parseInt(index,10)-charIndex]=this.styles[lineIndex][index];delete this.styles[lineIndex][index]}}this.styles[lineIndex+1]=newLineStyles}this._clearCache()},insertCharStyleObject:function(lineIndex,charIndex,style){var currentLineStyles=this.styles[lineIndex],currentLineStylesCloned=clone(currentLineStyles);if(charIndex===0&&!style){charIndex=1}for(var index in currentLineStylesCloned){var numericIndex=parseInt(index,10);if(numericIndex>=charIndex){currentLineStyles[numericIndex+1]=currentLineStylesCloned[numericIndex]}}this.styles[lineIndex][charIndex]=style||clone(currentLineStyles[charIndex-1]);this._clearCache()},insertStyleObjects:function(_chars,isEndOfLine,useCopiedStyle){var cursorLocation=this.get2DCursorLocation(),lineIndex=cursorLocation.lineIndex,charIndex=cursorLocation.charIndex;if(!this.styles[lineIndex]){this.styles[lineIndex]={}}if(_chars==="\n"){this.insertNewlineStyleObject(lineIndex,charIndex,isEndOfLine)}else{if(useCopiedStyle){this._insertStyles(this.copiedStyles)}else{this.insertCharStyleObject(lineIndex,charIndex)}}},_insertStyles:function(styles){for(var i=0,len=styles.length;ilineIndex){this.styles[numericLine+offset]=clonedStyles[numericLine]}}},removeStyleObject:function(isBeginningOfLine,index){var cursorLocation=this.get2DCursorLocation(index),lineIndex=cursorLocation.lineIndex,charIndex=cursorLocation.charIndex;if(isBeginningOfLine){var textOnPreviousLine=this._textLines[lineIndex-1],newCharIndexOnPrevLine=textOnPreviousLine?textOnPreviousLine.length:0;if(!this.styles[lineIndex-1]){this.styles[lineIndex-1]={}}for(charIndex in this.styles[lineIndex]){this.styles[lineIndex-1][parseInt(charIndex,10)+newCharIndexOnPrevLine]=this.styles[lineIndex][charIndex]}this.shiftLineStyles(lineIndex,-1)}else{var currentLineStyles=this.styles[lineIndex];if(currentLineStyles){var offset=this.selectionStart===this.selectionEnd?-1:0;delete currentLineStyles[charIndex+offset]}var currentLineStylesCloned=clone(currentLineStyles);for(var i in currentLineStylesCloned){var numericIndex=parseInt(i,10);if(numericIndex>=charIndex&&numericIndex!==0){currentLineStyles[numericIndex-1]=currentLineStylesCloned[numericIndex];delete currentLineStyles[numericIndex]}}}},insertNewline:function(){this.insertChars("\n")}})})();fabric.util.object.extend(fabric.IText.prototype,{initDoubleClickSimulation:function(){this.__lastClickTime=+new Date;this.__lastLastClickTime=+new Date;this.__lastPointer={};this.on("mousedown",this.onMouseDown.bind(this))},onMouseDown:function(options){this.__newClickTime=+new Date;var newPointer=this.canvas.getPointer(options.e);if(this.isTripleClick(newPointer)){this.fire("tripleclick",options);this._stopEvent(options.e)}else if(this.isDoubleClick(newPointer)){this.fire("dblclick",options);this._stopEvent(options.e)}this.__lastLastClickTime=this.__lastClickTime;this.__lastClickTime=this.__newClickTime;this.__lastPointer=newPointer;this.__lastIsEditing=this.isEditing;this.__lastSelected=this.selected},isDoubleClick:function(newPointer){return this.__newClickTime-this.__lastClickTime<500&&this.__lastPointer.x===newPointer.x&&this.__lastPointer.y===newPointer.y&&this.__lastIsEditing},isTripleClick:function(newPointer){return this.__newClickTime-this.__lastClickTime<500&&this.__lastClickTime-this.__lastLastClickTime<500&&this.__lastPointer.x===newPointer.x&&this.__lastPointer.y===newPointer.y},_stopEvent:function(e){e.preventDefault&&e.preventDefault();e.stopPropagation&&e.stopPropagation()},initCursorSelectionHandlers:function(){this.initSelectedHandler();this.initMousedownHandler();this.initMouseupHandler();this.initClicks()},initClicks:function(){this.on("dblclick",function(options){this.selectWord(this.getSelectionStartFromPointer(options.e))});this.on("tripleclick",function(options){this.selectLine(this.getSelectionStartFromPointer(options.e))})},initMousedownHandler:function(){this.on("mousedown",function(options){var pointer=this.canvas.getPointer(options.e);this.__mousedownX=pointer.x;this.__mousedownY=pointer.y;this.__isMousedown=true;if(this.hiddenTextarea&&this.canvas){this.canvas.wrapperEl.appendChild(this.hiddenTextarea)}if(this.selected){this.setCursorByClick(options.e)}if(this.isEditing){this.__selectionStartOnMouseDown=this.selectionStart;this.initDelayedCursor(true)}})},_isObjectMoved:function(e){var pointer=this.canvas.getPointer(e);return this.__mousedownX!==pointer.x||this.__mousedownY!==pointer.y},initMouseupHandler:function(){this.on("mouseup",function(options){this.__isMousedown=false;if(this._isObjectMoved(options.e)){return}if(this.__lastSelected){this.enterEditing();this.initDelayedCursor(true)}this.selected=true})},setCursorByClick:function(e){var newSelectionStart=this.getSelectionStartFromPointer(e);if(e.shiftKey){if(newSelectionStartdistanceBtwLastCharAndCursor?0:1,newSelectionStart=index+offset;if(this.flipX){newSelectionStart=jlen-newSelectionStart}if(newSelectionStart>this.text.length){newSelectionStart=this.text.length}return newSelectionStart}});fabric.util.object.extend(fabric.IText.prototype,{initHiddenTextarea:function(){this.hiddenTextarea=fabric.document.createElement("textarea");this.hiddenTextarea.setAttribute("autocapitalize","off");this.hiddenTextarea.style.cssText="position: fixed; bottom: 20px; left: 0px; opacity: 0;"+" width: 0px; height: 0px; z-index: -999;";fabric.document.body.appendChild(this.hiddenTextarea); - -fabric.util.addListener(this.hiddenTextarea,"keydown",this.onKeyDown.bind(this));fabric.util.addListener(this.hiddenTextarea,"keypress",this.onKeyPress.bind(this));fabric.util.addListener(this.hiddenTextarea,"copy",this.copy.bind(this));fabric.util.addListener(this.hiddenTextarea,"paste",this.paste.bind(this));if(!this._clickHandlerInitialized&&this.canvas){fabric.util.addListener(this.canvas.upperCanvasEl,"click",this.onClick.bind(this));this._clickHandlerInitialized=true}},_keysMap:{8:"removeChars",9:"exitEditing",27:"exitEditing",13:"insertNewline",33:"moveCursorUp",34:"moveCursorDown",35:"moveCursorRight",36:"moveCursorLeft",37:"moveCursorLeft",38:"moveCursorUp",39:"moveCursorRight",40:"moveCursorDown",46:"forwardDelete"},_ctrlKeysMap:{65:"selectAll",88:"cut"},onClick:function(){this.hiddenTextarea&&this.hiddenTextarea.focus()},onKeyDown:function(e){if(!this.isEditing){return}if(e.keyCode in this._keysMap){this[this._keysMap[e.keyCode]](e)}else if(e.keyCode in this._ctrlKeysMap&&(e.ctrlKey||e.metaKey)){this[this._ctrlKeysMap[e.keyCode]](e)}else{return}e.stopImmediatePropagation();e.preventDefault();this.canvas&&this.canvas.renderAll()},forwardDelete:function(e){if(this.selectionStart===this.selectionEnd){this.moveCursorRight(e)}this.removeChars(e)},copy:function(e){var selectedText=this.getSelectedText(),clipboardData=this._getClipboardData(e);if(clipboardData){clipboardData.setData("text",selectedText)}this.copiedText=selectedText;this.copiedStyles=this.getSelectionStyles(this.selectionStart,this.selectionEnd)},paste:function(e){var copiedText=null,clipboardData=this._getClipboardData(e);if(clipboardData){copiedText=clipboardData.getData("text")}else{copiedText=this.copiedText}if(copiedText){this.insertChars(copiedText,true)}},cut:function(e){if(this.selectionStart===this.selectionEnd){return}this.copy();this.removeChars(e)},_getClipboardData:function(e){return e&&(e.clipboardData||fabric.window.clipboardData)},onKeyPress:function(e){if(!this.isEditing||e.metaKey||e.ctrlKey){return}if(e.which!==0){this.insertChars(String.fromCharCode(e.which))}e.stopPropagation()},getDownCursorOffset:function(e,isRight){var selectionProp=isRight?this.selectionEnd:this.selectionStart,_char,lineLeftOffset,textBeforeCursor=this.text.slice(0,selectionProp),textAfterCursor=this.text.slice(selectionProp),textOnSameLineBeforeCursor=textBeforeCursor.slice(textBeforeCursor.lastIndexOf("\n")+1),textOnSameLineAfterCursor=textAfterCursor.match(/(.*)\n?/)[1],textOnNextLine=(textAfterCursor.match(/.*\n(.*)\n?/)||{})[1]||"",cursorLocation=this.get2DCursorLocation(selectionProp);if(cursorLocation.lineIndex===this._textLines.length-1||e.metaKey||e.keyCode===34){return this.text.length-selectionProp}var widthOfSameLineBeforeCursor=this._getLineWidth(this.ctx,cursorLocation.lineIndex);lineLeftOffset=this._getLineLeftOffset(widthOfSameLineBeforeCursor);var widthOfCharsOnSameLineBeforeCursor=lineLeftOffset,lineIndex=cursorLocation.lineIndex;for(var i=0,len=textOnSameLineBeforeCursor.length;iwidthOfCharsOnSameLineBeforeCursor){foundMatch=true;var leftEdge=widthOfCharsOnNextLine-widthOfChar,rightEdge=widthOfCharsOnNextLine,offsetFromLeftEdge=Math.abs(leftEdge-widthOfCharsOnSameLineBeforeCursor),offsetFromRightEdge=Math.abs(rightEdge-widthOfCharsOnSameLineBeforeCursor);indexOnNextLine=offsetFromRightEdgethis.text.length){this.setSelectionEnd(this.text.length)}},getUpCursorOffset:function(e,isRight){var selectionProp=isRight?this.selectionEnd:this.selectionStart,cursorLocation=this.get2DCursorLocation(selectionProp);if(cursorLocation.lineIndex===0||e.metaKey||e.keyCode===33){return selectionProp}var textBeforeCursor=this.text.slice(0,selectionProp),textOnSameLineBeforeCursor=textBeforeCursor.slice(textBeforeCursor.lastIndexOf("\n")+1),textOnPreviousLine=(textBeforeCursor.match(/\n?(.*)\n.*$/)||{})[1]||"",_char,widthOfSameLineBeforeCursor=this._getLineWidth(this.ctx,cursorLocation.lineIndex),lineLeftOffset=this._getLineLeftOffset(widthOfSameLineBeforeCursor),widthOfCharsOnSameLineBeforeCursor=lineLeftOffset,lineIndex=cursorLocation.lineIndex;for(var i=0,len=textOnSameLineBeforeCursor.length;iwidthOfCharsOnSameLineBeforeCursor){foundMatch=true;var leftEdge=widthOfCharsOnPreviousLine-widthOfChar,rightEdge=widthOfCharsOnPreviousLine,offsetFromLeftEdge=Math.abs(leftEdge-widthOfCharsOnSameLineBeforeCursor),offsetFromRightEdge=Math.abs(rightEdge-widthOfCharsOnSameLineBeforeCursor);indexOnPrevLine=offsetFromRightEdge=this.text.length&&this.selectionEnd>=this.text.length){return}this.abortCursorAnimation();this._currentCursorOpacity=1;if(e.shiftKey){this.moveCursorRightWithShift(e)}else{this.moveCursorRightWithoutShift(e)}this.initDelayedCursor()},moveCursorRightWithShift:function(e){if(this._selectionDirection==="left"&&this.selectionStart!==this.selectionEnd){this._moveRight(e,"selectionStart")}else{this._selectionDirection="right";this._moveRight(e,"selectionEnd");if(this.text.charAt(this.selectionEnd-1)==="\n"){this.setSelectionEnd(this.selectionEnd+1)}}},moveCursorRightWithoutShift:function(e){this._selectionDirection="right";if(this.selectionStart===this.selectionEnd){this._moveRight(e,"selectionStart");this.setSelectionEnd(this.selectionStart)}else{this.setSelectionEnd(this.selectionEnd+this.getNumNewLinesInSelectedText());this.setSelectionStart(this.selectionEnd)}},removeChars:function(e){if(this.selectionStart===this.selectionEnd){this._removeCharsNearCursor(e)}else{this._removeCharsFromTo(this.selectionStart,this.selectionEnd)}this.setSelectionEnd(this.selectionStart);this._removeExtraneousStyles();this._clearCache();this.canvas&&this.canvas.renderAll();this.setCoords();this.fire("changed");this.canvas&&this.canvas.fire("text:changed",{target:this})},_removeCharsNearCursor:function(e){if(this.selectionStart!==0){if(e.metaKey){var leftLineBoundary=this.findLineBoundaryLeft(this.selectionStart);this._removeCharsFromTo(leftLineBoundary,this.selectionStart);this.setSelectionStart(leftLineBoundary)}else if(e.altKey){var leftWordBoundary=this.findWordBoundaryLeft(this.selectionStart);this._removeCharsFromTo(leftWordBoundary,this.selectionStart);this.setSelectionStart(leftWordBoundary)}else{var isBeginningOfLine=this.text.slice(this.selectionStart-1,this.selectionStart)==="\n";this.removeStyleObject(isBeginningOfLine);this.setSelectionStart(this.selectionStart-1);this.text=this.text.slice(0,this.selectionStart)+this.text.slice(this.selectionStart+1)}}}});fabric.util.object.extend(fabric.IText.prototype,{_setSVGTextLineText:function(lineIndex,textSpans,height,textLeftOffset,textTopOffset,textBgRects){if(!this.styles[lineIndex]){this.callSuper("_setSVGTextLineText",lineIndex,textSpans,height,textLeftOffset,textTopOffset)}else{this._setSVGTextLineChars(lineIndex,textSpans,height,textLeftOffset,textBgRects)}},_setSVGTextLineChars:function(lineIndex,textSpans,height,textLeftOffset,textBgRects){var chars=this._textLines[lineIndex].split(""),charOffset=0,lineLeftOffset=this._getSVGLineLeftOffset(lineIndex)-this.width/2,lineOffset=this._getSVGLineTopOffset(lineIndex),heightOfLine=this._getHeightOfLine(this.ctx,lineIndex);for(var i=0,len=chars.length;i'].join("")},_createTextCharSpan:function(_char,styleDecl,lineLeftOffset,lineTopOffset,charOffset){var fillStyles=this.getSvgStyles.call(fabric.util.object.extend({visible:true,fill:this.fill,stroke:this.stroke,type:"text"},styleDecl));return['',fabric.util.string.escapeXml(_char),""].join("")}});(function(){if(typeof document!=="undefined"&&typeof window!=="undefined"){return}var DOMParser=require("xmldom").DOMParser,URL=require("url"),HTTP=require("http"),HTTPS=require("https"),Canvas=require("canvas"),Image=require("canvas").Image;function request(url,encoding,callback){var oURL=URL.parse(url);if(!oURL.port){oURL.port=oURL.protocol.indexOf("https:")===0?443:80}var reqHandler=oURL.protocol.indexOf("https:")===0?HTTPS:HTTP,req=reqHandler.request({hostname:oURL.hostname,port:oURL.port,path:oURL.path,method:"GET"},function(response){var body="";if(encoding){response.setEncoding(encoding)}response.on("end",function(){callback(body)});response.on("data",function(chunk){if(response.statusCode===200){body+=chunk}})});req.on("error",function(err){if(err.errno===process.ECONNREFUSED){fabric.log("ECONNREFUSED: connection refused to "+oURL.hostname+":"+oURL.port)}else{fabric.log(err.message)}});req.end()}function requestFs(path,callback){var fs=require("fs");fs.readFile(path,function(err,data){if(err){fabric.log(err);throw err}else{callback(data)}})}fabric.util.loadImage=function(url,callback,context){function createImageAndCallBack(data){img.src=new Buffer(data,"binary");img._src=url;callback&&callback.call(context,img)}var img=new Image;if(url&&(url instanceof Buffer||url.indexOf("data")===0)){img.src=img._src=url;callback&&callback.call(context,img)}else if(url&&url.indexOf("http")!==0){requestFs(url,createImageAndCallBack)}else if(url){request(url,"binary",createImageAndCallBack)}else{callback&&callback.call(context,url)}};fabric.loadSVGFromURL=function(url,callback,reviver){url=url.replace(/^\n\s*/,"").replace(/\?.*$/,"").trim();if(url.indexOf("http")!==0){requestFs(url,function(body){fabric.loadSVGFromString(body.toString(),callback,reviver)})}else{request(url,"",function(body){fabric.loadSVGFromString(body,callback,reviver)})}};fabric.loadSVGFromString=function(string,callback,reviver){var doc=(new DOMParser).parseFromString(string);fabric.parseSVGDocument(doc.documentElement,function(results,options){callback&&callback(results,options)},reviver)};fabric.util.getScript=function(url,callback){request(url,"",function(body){eval(body);callback&&callback()})};fabric.Image.fromObject=function(object,callback){fabric.util.loadImage(object.src,function(img){var oImg=new fabric.Image(img);oImg._initConfig(object);oImg._initFilters(object,function(filters){oImg.filters=filters||[];callback&&callback(oImg)})})};fabric.createCanvasForNode=function(width,height,options,nodeCanvasOptions){nodeCanvasOptions=nodeCanvasOptions||options;var canvasEl=fabric.document.createElement("canvas"),nodeCanvas=new Canvas(width||600,height||600,nodeCanvasOptions);canvasEl.style={};canvasEl.width=nodeCanvas.width;canvasEl.height=nodeCanvas.height;var FabricCanvas=fabric.Canvas||fabric.StaticCanvas,fabricCanvas=new FabricCanvas(canvasEl,options);fabricCanvas.contextContainer=nodeCanvas.getContext("2d");fabricCanvas.nodeCanvas=nodeCanvas;fabricCanvas.Font=Canvas.Font;return fabricCanvas};fabric.StaticCanvas.prototype.createPNGStream=function(){return this.nodeCanvas.createPNGStream()};fabric.StaticCanvas.prototype.createJPEGStream=function(opts){return this.nodeCanvas.createJPEGStream(opts)};var origSetWidth=fabric.StaticCanvas.prototype.setWidth;fabric.StaticCanvas.prototype.setWidth=function(width,options){origSetWidth.call(this,width,options);this.nodeCanvas.width=width;return this};if(fabric.Canvas){fabric.Canvas.prototype.setWidth=fabric.StaticCanvas.prototype.setWidth}var origSetHeight=fabric.StaticCanvas.prototype.setHeight;fabric.StaticCanvas.prototype.setHeight=function(height,options){origSetHeight.call(this,height,options);this.nodeCanvas.height=height;return this};if(fabric.Canvas){fabric.Canvas.prototype.setHeight=fabric.StaticCanvas.prototype.setHeight}})(); \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/export/libs/jszip/jszip.js b/chronos/static/js/amcharts/plugins/export/libs/jszip/jszip.js deleted file mode 100644 index 6eb2831..0000000 --- a/chronos/static/js/amcharts/plugins/export/libs/jszip/jszip.js +++ /dev/null @@ -1,9155 +0,0 @@ -/*! - -JSZip - A Javascript class for generating and reading zip files - - -(c) 2009-2014 Stuart Knightley -Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/master/LICENSE.markdown. - -JSZip uses the library pako released under the MIT license : -https://github.com/nodeca/pako/blob/master/LICENSE -*/ -!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.JSZip=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o> 2; - enc2 = ((chr1 & 3) << 4) | (chr2 >> 4); - enc3 = ((chr2 & 15) << 2) | (chr3 >> 6); - enc4 = chr3 & 63; - - if (isNaN(chr2)) { - enc3 = enc4 = 64; - } - else if (isNaN(chr3)) { - enc4 = 64; - } - - output = output + _keyStr.charAt(enc1) + _keyStr.charAt(enc2) + _keyStr.charAt(enc3) + _keyStr.charAt(enc4); - - } - - return output; -}; - -// public method for decoding -exports.decode = function(input, utf8) { - var output = ""; - var chr1, chr2, chr3; - var enc1, enc2, enc3, enc4; - var i = 0; - - input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); - - while (i < input.length) { - - enc1 = _keyStr.indexOf(input.charAt(i++)); - enc2 = _keyStr.indexOf(input.charAt(i++)); - enc3 = _keyStr.indexOf(input.charAt(i++)); - enc4 = _keyStr.indexOf(input.charAt(i++)); - - chr1 = (enc1 << 2) | (enc2 >> 4); - chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); - chr3 = ((enc3 & 3) << 6) | enc4; - - output = output + String.fromCharCode(chr1); - - if (enc3 != 64) { - output = output + String.fromCharCode(chr2); - } - if (enc4 != 64) { - output = output + String.fromCharCode(chr3); - } - - } - - return output; - -}; - -},{}],2:[function(_dereq_,module,exports){ -'use strict'; -function CompressedObject() { - this.compressedSize = 0; - this.uncompressedSize = 0; - this.crc32 = 0; - this.compressionMethod = null; - this.compressedContent = null; -} - -CompressedObject.prototype = { - /** - * Return the decompressed content in an unspecified format. - * The format will depend on the decompressor. - * @return {Object} the decompressed content. - */ - getContent: function() { - return null; // see implementation - }, - /** - * Return the compressed content in an unspecified format. - * The format will depend on the compressed conten source. - * @return {Object} the compressed content. - */ - getCompressedContent: function() { - return null; // see implementation - } -}; -module.exports = CompressedObject; - -},{}],3:[function(_dereq_,module,exports){ -'use strict'; -exports.STORE = { - magic: "\x00\x00", - compress: function(content, compressionOptions) { - return content; // no compression - }, - uncompress: function(content) { - return content; // no compression - }, - compressInputType: null, - uncompressInputType: null -}; -exports.DEFLATE = _dereq_('./flate'); - -},{"./flate":8}],4:[function(_dereq_,module,exports){ -'use strict'; - -var utils = _dereq_('./utils'); - -var table = [ - 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, - 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3, - 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988, - 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91, - 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE, - 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, - 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, - 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5, - 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172, - 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B, - 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, - 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, - 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116, - 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F, - 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924, - 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, - 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A, - 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433, - 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818, - 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01, - 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, - 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457, - 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C, - 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65, - 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2, - 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, - 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0, - 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9, - 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086, - 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F, - 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, - 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD, - 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A, - 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683, - 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8, - 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, - 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE, - 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7, - 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC, - 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5, - 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, - 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B, - 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60, - 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79, - 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236, - 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, - 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, - 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D, - 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A, - 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713, - 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, - 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, - 0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E, - 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777, - 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C, - 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, - 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2, - 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB, - 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0, - 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9, - 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, - 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF, - 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94, - 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D -]; - -/** - * - * Javascript crc32 - * http://www.webtoolkit.info/ - * - */ -module.exports = function crc32(input, crc) { - if (typeof input === "undefined" || !input.length) { - return 0; - } - - var isArray = utils.getTypeOf(input) !== "string"; - - if (typeof(crc) == "undefined") { - crc = 0; - } - var x = 0; - var y = 0; - var b = 0; - - crc = crc ^ (-1); - for (var i = 0, iTop = input.length; i < iTop; i++) { - b = isArray ? input[i] : input.charCodeAt(i); - y = (crc ^ b) & 0xFF; - x = table[y]; - crc = (crc >>> 8) ^ x; - } - - return crc ^ (-1); -}; -// vim: set shiftwidth=4 softtabstop=4: - -},{"./utils":21}],5:[function(_dereq_,module,exports){ -'use strict'; -var utils = _dereq_('./utils'); - -function DataReader(data) { - this.data = null; // type : see implementation - this.length = 0; - this.index = 0; -} -DataReader.prototype = { - /** - * Check that the offset will not go too far. - * @param {string} offset the additional offset to check. - * @throws {Error} an Error if the offset is out of bounds. - */ - checkOffset: function(offset) { - this.checkIndex(this.index + offset); - }, - /** - * Check that the specifed index will not be too far. - * @param {string} newIndex the index to check. - * @throws {Error} an Error if the index is out of bounds. - */ - checkIndex: function(newIndex) { - if (this.length < newIndex || newIndex < 0) { - throw new Error("End of data reached (data length = " + this.length + ", asked index = " + (newIndex) + "). Corrupted zip ?"); - } - }, - /** - * Change the index. - * @param {number} newIndex The new index. - * @throws {Error} if the new index is out of the data. - */ - setIndex: function(newIndex) { - this.checkIndex(newIndex); - this.index = newIndex; - }, - /** - * Skip the next n bytes. - * @param {number} n the number of bytes to skip. - * @throws {Error} if the new index is out of the data. - */ - skip: function(n) { - this.setIndex(this.index + n); - }, - /** - * Get the byte at the specified index. - * @param {number} i the index to use. - * @return {number} a byte. - */ - byteAt: function(i) { - // see implementations - }, - /** - * Get the next number with a given byte size. - * @param {number} size the number of bytes to read. - * @return {number} the corresponding number. - */ - readInt: function(size) { - var result = 0, - i; - this.checkOffset(size); - for (i = this.index + size - 1; i >= this.index; i--) { - result = (result << 8) + this.byteAt(i); - } - this.index += size; - return result; - }, - /** - * Get the next string with a given byte size. - * @param {number} size the number of bytes to read. - * @return {string} the corresponding string. - */ - readString: function(size) { - return utils.transformTo("string", this.readData(size)); - }, - /** - * Get raw data without conversion, bytes. - * @param {number} size the number of bytes to read. - * @return {Object} the raw data, implementation specific. - */ - readData: function(size) { - // see implementations - }, - /** - * Find the last occurence of a zip signature (4 bytes). - * @param {string} sig the signature to find. - * @return {number} the index of the last occurence, -1 if not found. - */ - lastIndexOfSignature: function(sig) { - // see implementations - }, - /** - * Get the next date. - * @return {Date} the date. - */ - readDate: function() { - var dostime = this.readInt(4); - return new Date( - ((dostime >> 25) & 0x7f) + 1980, // year - ((dostime >> 21) & 0x0f) - 1, // month - (dostime >> 16) & 0x1f, // day - (dostime >> 11) & 0x1f, // hour - (dostime >> 5) & 0x3f, // minute - (dostime & 0x1f) << 1); // second - } -}; -module.exports = DataReader; - -},{"./utils":21}],6:[function(_dereq_,module,exports){ -'use strict'; -exports.base64 = false; -exports.binary = false; -exports.dir = false; -exports.createFolders = false; -exports.date = null; -exports.compression = null; -exports.compressionOptions = null; -exports.comment = null; -exports.unixPermissions = null; -exports.dosPermissions = null; - -},{}],7:[function(_dereq_,module,exports){ -'use strict'; -var utils = _dereq_('./utils'); - -/** - * @deprecated - * This function will be removed in a future version without replacement. - */ -exports.string2binary = function(str) { - return utils.string2binary(str); -}; - -/** - * @deprecated - * This function will be removed in a future version without replacement. - */ -exports.string2Uint8Array = function(str) { - return utils.transformTo("uint8array", str); -}; - -/** - * @deprecated - * This function will be removed in a future version without replacement. - */ -exports.uint8Array2String = function(array) { - return utils.transformTo("string", array); -}; - -/** - * @deprecated - * This function will be removed in a future version without replacement. - */ -exports.string2Blob = function(str) { - var buffer = utils.transformTo("arraybuffer", str); - return utils.arrayBuffer2Blob(buffer); -}; - -/** - * @deprecated - * This function will be removed in a future version without replacement. - */ -exports.arrayBuffer2Blob = function(buffer) { - return utils.arrayBuffer2Blob(buffer); -}; - -/** - * @deprecated - * This function will be removed in a future version without replacement. - */ -exports.transformTo = function(outputType, input) { - return utils.transformTo(outputType, input); -}; - -/** - * @deprecated - * This function will be removed in a future version without replacement. - */ -exports.getTypeOf = function(input) { - return utils.getTypeOf(input); -}; - -/** - * @deprecated - * This function will be removed in a future version without replacement. - */ -exports.checkSupport = function(type) { - return utils.checkSupport(type); -}; - -/** - * @deprecated - * This value will be removed in a future version without replacement. - */ -exports.MAX_VALUE_16BITS = utils.MAX_VALUE_16BITS; - -/** - * @deprecated - * This value will be removed in a future version without replacement. - */ -exports.MAX_VALUE_32BITS = utils.MAX_VALUE_32BITS; - - -/** - * @deprecated - * This function will be removed in a future version without replacement. - */ -exports.pretty = function(str) { - return utils.pretty(str); -}; - -/** - * @deprecated - * This function will be removed in a future version without replacement. - */ -exports.findCompression = function(compressionMethod) { - return utils.findCompression(compressionMethod); -}; - -/** - * @deprecated - * This function will be removed in a future version without replacement. - */ -exports.isRegExp = function (object) { - return utils.isRegExp(object); -}; - - -},{"./utils":21}],8:[function(_dereq_,module,exports){ -'use strict'; -var USE_TYPEDARRAY = (typeof Uint8Array !== 'undefined') && (typeof Uint16Array !== 'undefined') && (typeof Uint32Array !== 'undefined'); - -var pako = _dereq_("pako"); -exports.uncompressInputType = USE_TYPEDARRAY ? "uint8array" : "array"; -exports.compressInputType = USE_TYPEDARRAY ? "uint8array" : "array"; - -exports.magic = "\x08\x00"; -exports.compress = function(input, compressionOptions) { - return pako.deflateRaw(input, { - level : compressionOptions.level || -1 // default compression - }); -}; -exports.uncompress = function(input) { - return pako.inflateRaw(input); -}; - -},{"pako":24}],9:[function(_dereq_,module,exports){ -'use strict'; - -var base64 = _dereq_('./base64'); - -/** -Usage: - zip = new JSZip(); - zip.file("hello.txt", "Hello, World!").file("tempfile", "nothing"); - zip.folder("images").file("smile.gif", base64Data, {base64: true}); - zip.file("Xmas.txt", "Ho ho ho !", {date : new Date("December 25, 2007 00:00:01")}); - zip.remove("tempfile"); - - base64zip = zip.generate(); - -**/ - -/** - * Representation a of zip file in js - * @constructor - * @param {String=|ArrayBuffer=|Uint8Array=} data the data to load, if any (optional). - * @param {Object=} options the options for creating this objects (optional). - */ -function JSZip(data, options) { - // if this constructor is used without `new`, it adds `new` before itself: - if(!(this instanceof JSZip)) return new JSZip(data, options); - - // object containing the files : - // { - // "folder/" : {...}, - // "folder/data.txt" : {...} - // } - this.files = {}; - - this.comment = null; - - // Where we are in the hierarchy - this.root = ""; - if (data) { - this.load(data, options); - } - this.clone = function() { - var newObj = new JSZip(); - for (var i in this) { - if (typeof this[i] !== "function") { - newObj[i] = this[i]; - } - } - return newObj; - }; -} -JSZip.prototype = _dereq_('./object'); -JSZip.prototype.load = _dereq_('./load'); -JSZip.support = _dereq_('./support'); -JSZip.defaults = _dereq_('./defaults'); - -/** - * @deprecated - * This namespace will be removed in a future version without replacement. - */ -JSZip.utils = _dereq_('./deprecatedPublicUtils'); - -JSZip.base64 = { - /** - * @deprecated - * This method will be removed in a future version without replacement. - */ - encode : function(input) { - return base64.encode(input); - }, - /** - * @deprecated - * This method will be removed in a future version without replacement. - */ - decode : function(input) { - return base64.decode(input); - } -}; -JSZip.compressions = _dereq_('./compressions'); -module.exports = JSZip; - -},{"./base64":1,"./compressions":3,"./defaults":6,"./deprecatedPublicUtils":7,"./load":10,"./object":13,"./support":17}],10:[function(_dereq_,module,exports){ -'use strict'; -var base64 = _dereq_('./base64'); -var ZipEntries = _dereq_('./zipEntries'); -module.exports = function(data, options) { - var files, zipEntries, i, input; - options = options || {}; - if (options.base64) { - data = base64.decode(data); - } - - zipEntries = new ZipEntries(data, options); - files = zipEntries.files; - for (i = 0; i < files.length; i++) { - input = files[i]; - this.file(input.fileName, input.decompressed, { - binary: true, - optimizedBinaryString: true, - date: input.date, - dir: input.dir, - comment : input.fileComment.length ? input.fileComment : null, - unixPermissions : input.unixPermissions, - dosPermissions : input.dosPermissions, - createFolders: options.createFolders - }); - } - if (zipEntries.zipComment.length) { - this.comment = zipEntries.zipComment; - } - - return this; -}; - -},{"./base64":1,"./zipEntries":22}],11:[function(_dereq_,module,exports){ -(function (Buffer){ -'use strict'; -module.exports = function(data, encoding){ - return new Buffer(data, encoding); -}; -module.exports.test = function(b){ - return Buffer.isBuffer(b); -}; - -}).call(this,(typeof Buffer !== "undefined" ? Buffer : undefined)) -},{}],12:[function(_dereq_,module,exports){ -'use strict'; -var Uint8ArrayReader = _dereq_('./uint8ArrayReader'); - -function NodeBufferReader(data) { - this.data = data; - this.length = this.data.length; - this.index = 0; -} -NodeBufferReader.prototype = new Uint8ArrayReader(); - -/** - * @see DataReader.readData - */ -NodeBufferReader.prototype.readData = function(size) { - this.checkOffset(size); - var result = this.data.slice(this.index, this.index + size); - this.index += size; - return result; -}; -module.exports = NodeBufferReader; - -},{"./uint8ArrayReader":18}],13:[function(_dereq_,module,exports){ -'use strict'; -var support = _dereq_('./support'); -var utils = _dereq_('./utils'); -var crc32 = _dereq_('./crc32'); -var signature = _dereq_('./signature'); -var defaults = _dereq_('./defaults'); -var base64 = _dereq_('./base64'); -var compressions = _dereq_('./compressions'); -var CompressedObject = _dereq_('./compressedObject'); -var nodeBuffer = _dereq_('./nodeBuffer'); -var utf8 = _dereq_('./utf8'); -var StringWriter = _dereq_('./stringWriter'); -var Uint8ArrayWriter = _dereq_('./uint8ArrayWriter'); - -/** - * Returns the raw data of a ZipObject, decompress the content if necessary. - * @param {ZipObject} file the file to use. - * @return {String|ArrayBuffer|Uint8Array|Buffer} the data. - */ -var getRawData = function(file) { - if (file._data instanceof CompressedObject) { - file._data = file._data.getContent(); - file.options.binary = true; - file.options.base64 = false; - - if (utils.getTypeOf(file._data) === "uint8array") { - var copy = file._data; - // when reading an arraybuffer, the CompressedObject mechanism will keep it and subarray() a Uint8Array. - // if we request a file in the same format, we might get the same Uint8Array or its ArrayBuffer (the original zip file). - file._data = new Uint8Array(copy.length); - // with an empty Uint8Array, Opera fails with a "Offset larger than array size" - if (copy.length !== 0) { - file._data.set(copy, 0); - } - } - } - return file._data; -}; - -/** - * Returns the data of a ZipObject in a binary form. If the content is an unicode string, encode it. - * @param {ZipObject} file the file to use. - * @return {String|ArrayBuffer|Uint8Array|Buffer} the data. - */ -var getBinaryData = function(file) { - var result = getRawData(file), - type = utils.getTypeOf(result); - if (type === "string") { - if (!file.options.binary) { - // unicode text ! - // unicode string => binary string is a painful process, check if we can avoid it. - if (support.nodebuffer) { - return nodeBuffer(result, "utf-8"); - } - } - return file.asBinary(); - } - return result; -}; - -/** - * Transform this._data into a string. - * @param {function} filter a function String -> String, applied if not null on the result. - * @return {String} the string representing this._data. - */ -var dataToString = function(asUTF8) { - var result = getRawData(this); - if (result === null || typeof result === "undefined") { - return ""; - } - // if the data is a base64 string, we decode it before checking the encoding ! - if (this.options.base64) { - result = base64.decode(result); - } - if (asUTF8 && this.options.binary) { - // JSZip.prototype.utf8decode supports arrays as input - // skip to array => string step, utf8decode will do it. - result = out.utf8decode(result); - } - else { - // no utf8 transformation, do the array => string step. - result = utils.transformTo("string", result); - } - - if (!asUTF8 && !this.options.binary) { - result = utils.transformTo("string", out.utf8encode(result)); - } - return result; -}; -/** - * A simple object representing a file in the zip file. - * @constructor - * @param {string} name the name of the file - * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data - * @param {Object} options the options of the file - */ -var ZipObject = function(name, data, options) { - this.name = name; - this.dir = options.dir; - this.date = options.date; - this.comment = options.comment; - this.unixPermissions = options.unixPermissions; - this.dosPermissions = options.dosPermissions; - - this._data = data; - this.options = options; - - /* - * This object contains initial values for dir and date. - * With them, we can check if the user changed the deprecated metadata in - * `ZipObject#options` or not. - */ - this._initialMetadata = { - dir : options.dir, - date : options.date - }; -}; - -ZipObject.prototype = { - /** - * Return the content as UTF8 string. - * @return {string} the UTF8 string. - */ - asText: function() { - return dataToString.call(this, true); - }, - /** - * Returns the binary content. - * @return {string} the content as binary. - */ - asBinary: function() { - return dataToString.call(this, false); - }, - /** - * Returns the content as a nodejs Buffer. - * @return {Buffer} the content as a Buffer. - */ - asNodeBuffer: function() { - var result = getBinaryData(this); - return utils.transformTo("nodebuffer", result); - }, - /** - * Returns the content as an Uint8Array. - * @return {Uint8Array} the content as an Uint8Array. - */ - asUint8Array: function() { - var result = getBinaryData(this); - return utils.transformTo("uint8array", result); - }, - /** - * Returns the content as an ArrayBuffer. - * @return {ArrayBuffer} the content as an ArrayBufer. - */ - asArrayBuffer: function() { - return this.asUint8Array().buffer; - } -}; - -/** - * Transform an integer into a string in hexadecimal. - * @private - * @param {number} dec the number to convert. - * @param {number} bytes the number of bytes to generate. - * @returns {string} the result. - */ -var decToHex = function(dec, bytes) { - var hex = "", - i; - for (i = 0; i < bytes; i++) { - hex += String.fromCharCode(dec & 0xff); - dec = dec >>> 8; - } - return hex; -}; - -/** - * Merge the objects passed as parameters into a new one. - * @private - * @param {...Object} var_args All objects to merge. - * @return {Object} a new object with the data of the others. - */ -var extend = function() { - var result = {}, i, attr; - for (i = 0; i < arguments.length; i++) { // arguments is not enumerable in some browsers - for (attr in arguments[i]) { - if (arguments[i].hasOwnProperty(attr) && typeof result[attr] === "undefined") { - result[attr] = arguments[i][attr]; - } - } - } - return result; -}; - -/** - * Transforms the (incomplete) options from the user into the complete - * set of options to create a file. - * @private - * @param {Object} o the options from the user. - * @return {Object} the complete set of options. - */ -var prepareFileAttrs = function(o) { - o = o || {}; - if (o.base64 === true && (o.binary === null || o.binary === undefined)) { - o.binary = true; - } - o = extend(o, defaults); - o.date = o.date || new Date(); - if (o.compression !== null) o.compression = o.compression.toUpperCase(); - - return o; -}; - -/** - * Add a file in the current folder. - * @private - * @param {string} name the name of the file - * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data of the file - * @param {Object} o the options of the file - * @return {Object} the new file. - */ -var fileAdd = function(name, data, o) { - // be sure sub folders exist - var dataType = utils.getTypeOf(data), - parent; - - o = prepareFileAttrs(o); - - if (typeof o.unixPermissions === "string") { - o.unixPermissions = parseInt(o.unixPermissions, 8); - } - - // UNX_IFDIR 0040000 see zipinfo.c - if (o.unixPermissions && (o.unixPermissions & 0x4000)) { - o.dir = true; - } - // Bit 4 Directory - if (o.dosPermissions && (o.dosPermissions & 0x0010)) { - o.dir = true; - } - - if (o.dir) { - name = forceTrailingSlash(name); - } - - if (o.createFolders && (parent = parentFolder(name))) { - folderAdd.call(this, parent, true); - } - - if (o.dir || data === null || typeof data === "undefined") { - o.base64 = false; - o.binary = false; - data = null; - dataType = null; - } - else if (dataType === "string") { - if (o.binary && !o.base64) { - // optimizedBinaryString == true means that the file has already been filtered with a 0xFF mask - if (o.optimizedBinaryString !== true) { - // this is a string, not in a base64 format. - // Be sure that this is a correct "binary string" - data = utils.string2binary(data); - } - } - } - else { // arraybuffer, uint8array, ... - o.base64 = false; - o.binary = true; - - if (!dataType && !(data instanceof CompressedObject)) { - throw new Error("The data of '" + name + "' is in an unsupported format !"); - } - - // special case : it's way easier to work with Uint8Array than with ArrayBuffer - if (dataType === "arraybuffer") { - data = utils.transformTo("uint8array", data); - } - } - - var object = new ZipObject(name, data, o); - this.files[name] = object; - return object; -}; - -/** - * Find the parent folder of the path. - * @private - * @param {string} path the path to use - * @return {string} the parent folder, or "" - */ -var parentFolder = function (path) { - if (path.slice(-1) == '/') { - path = path.substring(0, path.length - 1); - } - var lastSlash = path.lastIndexOf('/'); - return (lastSlash > 0) ? path.substring(0, lastSlash) : ""; -}; - - -/** - * Returns the path with a slash at the end. - * @private - * @param {String} path the path to check. - * @return {String} the path with a trailing slash. - */ -var forceTrailingSlash = function(path) { - // Check the name ends with a / - if (path.slice(-1) != "/") { - path += "/"; // IE doesn't like substr(-1) - } - return path; -}; -/** - * Add a (sub) folder in the current folder. - * @private - * @param {string} name the folder's name - * @param {boolean=} [createFolders] If true, automatically create sub - * folders. Defaults to false. - * @return {Object} the new folder. - */ -var folderAdd = function(name, createFolders) { - createFolders = (typeof createFolders !== 'undefined') ? createFolders : false; - - name = forceTrailingSlash(name); - - // Does this folder already exist? - if (!this.files[name]) { - fileAdd.call(this, name, null, { - dir: true, - createFolders: createFolders - }); - } - return this.files[name]; -}; - -/** - * Generate a JSZip.CompressedObject for a given zipOject. - * @param {ZipObject} file the object to read. - * @param {JSZip.compression} compression the compression to use. - * @param {Object} compressionOptions the options to use when compressing. - * @return {JSZip.CompressedObject} the compressed result. - */ -var generateCompressedObjectFrom = function(file, compression, compressionOptions) { - var result = new CompressedObject(), - content; - - // the data has not been decompressed, we might reuse things ! - if (file._data instanceof CompressedObject) { - result.uncompressedSize = file._data.uncompressedSize; - result.crc32 = file._data.crc32; - - if (result.uncompressedSize === 0 || file.dir) { - compression = compressions['STORE']; - result.compressedContent = ""; - result.crc32 = 0; - } - else if (file._data.compressionMethod === compression.magic) { - result.compressedContent = file._data.getCompressedContent(); - } - else { - content = file._data.getContent(); - // need to decompress / recompress - result.compressedContent = compression.compress(utils.transformTo(compression.compressInputType, content), compressionOptions); - } - } - else { - // have uncompressed data - content = getBinaryData(file); - if (!content || content.length === 0 || file.dir) { - compression = compressions['STORE']; - content = ""; - } - result.uncompressedSize = content.length; - result.crc32 = crc32(content); - result.compressedContent = compression.compress(utils.transformTo(compression.compressInputType, content), compressionOptions); - } - - result.compressedSize = result.compressedContent.length; - result.compressionMethod = compression.magic; - - return result; -}; - - - - -/** - * Generate the UNIX part of the external file attributes. - * @param {Object} unixPermissions the unix permissions or null. - * @param {Boolean} isDir true if the entry is a directory, false otherwise. - * @return {Number} a 32 bit integer. - * - * adapted from http://unix.stackexchange.com/questions/14705/the-zip-formats-external-file-attribute : - * - * TTTTsstrwxrwxrwx0000000000ADVSHR - * ^^^^____________________________ file type, see zipinfo.c (UNX_*) - * ^^^_________________________ setuid, setgid, sticky - * ^^^^^^^^^________________ permissions - * ^^^^^^^^^^______ not used ? - * ^^^^^^ DOS attribute bits : Archive, Directory, Volume label, System file, Hidden, Read only - */ -var generateUnixExternalFileAttr = function (unixPermissions, isDir) { - - var result = unixPermissions; - if (!unixPermissions) { - // I can't use octal values in strict mode, hence the hexa. - // 040775 => 0x41fd - // 0100664 => 0x81b4 - result = isDir ? 0x41fd : 0x81b4; - } - - return (result & 0xFFFF) << 16; -}; - -/** - * Generate the DOS part of the external file attributes. - * @param {Object} dosPermissions the dos permissions or null. - * @param {Boolean} isDir true if the entry is a directory, false otherwise. - * @return {Number} a 32 bit integer. - * - * Bit 0 Read-Only - * Bit 1 Hidden - * Bit 2 System - * Bit 3 Volume Label - * Bit 4 Directory - * Bit 5 Archive - */ -var generateDosExternalFileAttr = function (dosPermissions, isDir) { - - // the dir flag is already set for compatibility - - return (dosPermissions || 0) & 0x3F; -}; - -/** - * Generate the various parts used in the construction of the final zip file. - * @param {string} name the file name. - * @param {ZipObject} file the file content. - * @param {JSZip.CompressedObject} compressedObject the compressed object. - * @param {number} offset the current offset from the start of the zip file. - * @param {String} platform let's pretend we are this platform (change platform dependents fields) - * @return {object} the zip parts. - */ -var generateZipParts = function(name, file, compressedObject, offset, platform) { - var data = compressedObject.compressedContent, - utfEncodedFileName = utils.transformTo("string", utf8.utf8encode(file.name)), - comment = file.comment || "", - utfEncodedComment = utils.transformTo("string", utf8.utf8encode(comment)), - useUTF8ForFileName = utfEncodedFileName.length !== file.name.length, - useUTF8ForComment = utfEncodedComment.length !== comment.length, - o = file.options, - dosTime, - dosDate, - extraFields = "", - unicodePathExtraField = "", - unicodeCommentExtraField = "", - dir, date; - - - // handle the deprecated options.dir - if (file._initialMetadata.dir !== file.dir) { - dir = file.dir; - } else { - dir = o.dir; - } - - // handle the deprecated options.date - if(file._initialMetadata.date !== file.date) { - date = file.date; - } else { - date = o.date; - } - - var extFileAttr = 0; - var versionMadeBy = 0; - if (dir) { - // dos or unix, we set the dos dir flag - extFileAttr |= 0x00010; - } - if(platform === "UNIX") { - versionMadeBy = 0x031E; // UNIX, version 3.0 - extFileAttr |= generateUnixExternalFileAttr(file.unixPermissions, dir); - } else { // DOS or other, fallback to DOS - versionMadeBy = 0x0014; // DOS, version 2.0 - extFileAttr |= generateDosExternalFileAttr(file.dosPermissions, dir); - } - - // date - // @see http://www.delorie.com/djgpp/doc/rbinter/it/52/13.html - // @see http://www.delorie.com/djgpp/doc/rbinter/it/65/16.html - // @see http://www.delorie.com/djgpp/doc/rbinter/it/66/16.html - - dosTime = date.getHours(); - dosTime = dosTime << 6; - dosTime = dosTime | date.getMinutes(); - dosTime = dosTime << 5; - dosTime = dosTime | date.getSeconds() / 2; - - dosDate = date.getFullYear() - 1980; - dosDate = dosDate << 4; - dosDate = dosDate | (date.getMonth() + 1); - dosDate = dosDate << 5; - dosDate = dosDate | date.getDate(); - - if (useUTF8ForFileName) { - // set the unicode path extra field. unzip needs at least one extra - // field to correctly handle unicode path, so using the path is as good - // as any other information. This could improve the situation with - // other archive managers too. - // This field is usually used without the utf8 flag, with a non - // unicode path in the header (winrar, winzip). This helps (a bit) - // with the messy Windows' default compressed folders feature but - // breaks on p7zip which doesn't seek the unicode path extra field. - // So for now, UTF-8 everywhere ! - unicodePathExtraField = - // Version - decToHex(1, 1) + - // NameCRC32 - decToHex(crc32(utfEncodedFileName), 4) + - // UnicodeName - utfEncodedFileName; - - extraFields += - // Info-ZIP Unicode Path Extra Field - "\x75\x70" + - // size - decToHex(unicodePathExtraField.length, 2) + - // content - unicodePathExtraField; - } - - if(useUTF8ForComment) { - - unicodeCommentExtraField = - // Version - decToHex(1, 1) + - // CommentCRC32 - decToHex(this.crc32(utfEncodedComment), 4) + - // UnicodeName - utfEncodedComment; - - extraFields += - // Info-ZIP Unicode Path Extra Field - "\x75\x63" + - // size - decToHex(unicodeCommentExtraField.length, 2) + - // content - unicodeCommentExtraField; - } - - var header = ""; - - // version needed to extract - header += "\x0A\x00"; - // general purpose bit flag - // set bit 11 if utf8 - header += (useUTF8ForFileName || useUTF8ForComment) ? "\x00\x08" : "\x00\x00"; - // compression method - header += compressedObject.compressionMethod; - // last mod file time - header += decToHex(dosTime, 2); - // last mod file date - header += decToHex(dosDate, 2); - // crc-32 - header += decToHex(compressedObject.crc32, 4); - // compressed size - header += decToHex(compressedObject.compressedSize, 4); - // uncompressed size - header += decToHex(compressedObject.uncompressedSize, 4); - // file name length - header += decToHex(utfEncodedFileName.length, 2); - // extra field length - header += decToHex(extraFields.length, 2); - - - var fileRecord = signature.LOCAL_FILE_HEADER + header + utfEncodedFileName + extraFields; - - var dirRecord = signature.CENTRAL_FILE_HEADER + - // version made by (00: DOS) - decToHex(versionMadeBy, 2) + - // file header (common to file and central directory) - header + - // file comment length - decToHex(utfEncodedComment.length, 2) + - // disk number start - "\x00\x00" + - // internal file attributes TODO - "\x00\x00" + - // external file attributes - decToHex(extFileAttr, 4) + - // relative offset of local header - decToHex(offset, 4) + - // file name - utfEncodedFileName + - // extra field - extraFields + - // file comment - utfEncodedComment; - - return { - fileRecord: fileRecord, - dirRecord: dirRecord, - compressedObject: compressedObject - }; -}; - - -// return the actual prototype of JSZip -var out = { - /** - * Read an existing zip and merge the data in the current JSZip object. - * The implementation is in jszip-load.js, don't forget to include it. - * @param {String|ArrayBuffer|Uint8Array|Buffer} stream The stream to load - * @param {Object} options Options for loading the stream. - * options.base64 : is the stream in base64 ? default : false - * @return {JSZip} the current JSZip object - */ - load: function(stream, options) { - throw new Error("Load method is not defined. Is the file jszip-load.js included ?"); - }, - - /** - * Filter nested files/folders with the specified function. - * @param {Function} search the predicate to use : - * function (relativePath, file) {...} - * It takes 2 arguments : the relative path and the file. - * @return {Array} An array of matching elements. - */ - filter: function(search) { - var result = [], - filename, relativePath, file, fileClone; - for (filename in this.files) { - if (!this.files.hasOwnProperty(filename)) { - continue; - } - file = this.files[filename]; - // return a new object, don't let the user mess with our internal objects :) - fileClone = new ZipObject(file.name, file._data, extend(file.options)); - relativePath = filename.slice(this.root.length, filename.length); - if (filename.slice(0, this.root.length) === this.root && // the file is in the current root - search(relativePath, fileClone)) { // and the file matches the function - result.push(fileClone); - } - } - return result; - }, - - /** - * Add a file to the zip file, or search a file. - * @param {string|RegExp} name The name of the file to add (if data is defined), - * the name of the file to find (if no data) or a regex to match files. - * @param {String|ArrayBuffer|Uint8Array|Buffer} data The file data, either raw or base64 encoded - * @param {Object} o File options - * @return {JSZip|Object|Array} this JSZip object (when adding a file), - * a file (when searching by string) or an array of files (when searching by regex). - */ - file: function(name, data, o) { - if (arguments.length === 1) { - if (utils.isRegExp(name)) { - var regexp = name; - return this.filter(function(relativePath, file) { - return !file.dir && regexp.test(relativePath); - }); - } - else { // text - return this.filter(function(relativePath, file) { - return !file.dir && relativePath === name; - })[0] || null; - } - } - else { // more than one argument : we have data ! - name = this.root + name; - fileAdd.call(this, name, data, o); - } - return this; - }, - - /** - * Add a directory to the zip file, or search. - * @param {String|RegExp} arg The name of the directory to add, or a regex to search folders. - * @return {JSZip} an object with the new directory as the root, or an array containing matching folders. - */ - folder: function(arg) { - if (!arg) { - return this; - } - - if (utils.isRegExp(arg)) { - return this.filter(function(relativePath, file) { - return file.dir && arg.test(relativePath); - }); - } - - // else, name is a new folder - var name = this.root + arg; - var newFolder = folderAdd.call(this, name); - - // Allow chaining by returning a new object with this folder as the root - var ret = this.clone(); - ret.root = newFolder.name; - return ret; - }, - - /** - * Delete a file, or a directory and all sub-files, from the zip - * @param {string} name the name of the file to delete - * @return {JSZip} this JSZip object - */ - remove: function(name) { - name = this.root + name; - var file = this.files[name]; - if (!file) { - // Look for any folders - if (name.slice(-1) != "/") { - name += "/"; - } - file = this.files[name]; - } - - if (file && !file.dir) { - // file - delete this.files[name]; - } else { - // maybe a folder, delete recursively - var kids = this.filter(function(relativePath, file) { - return file.name.slice(0, name.length) === name; - }); - for (var i = 0; i < kids.length; i++) { - delete this.files[kids[i].name]; - } - } - - return this; - }, - - /** - * Generate the complete zip file - * @param {Object} options the options to generate the zip file : - * - base64, (deprecated, use type instead) true to generate base64. - * - compression, "STORE" by default. - * - type, "base64" by default. Values are : string, base64, uint8array, arraybuffer, blob. - * @return {String|Uint8Array|ArrayBuffer|Buffer|Blob} the zip file - */ - generate: function(options) { - options = extend(options || {}, { - base64: true, - compression: "STORE", - compressionOptions : null, - type: "base64", - platform: "DOS", - comment: null, - mimeType: 'application/zip' - }); - - utils.checkSupport(options.type); - - // accept nodejs `process.platform` - if( - options.platform === 'darwin' || - options.platform === 'freebsd' || - options.platform === 'linux' || - options.platform === 'sunos' - ) { - options.platform = "UNIX"; - } - if (options.platform === 'win32') { - options.platform = "DOS"; - } - - var zipData = [], - localDirLength = 0, - centralDirLength = 0, - writer, i, - utfEncodedComment = utils.transformTo("string", this.utf8encode(options.comment || this.comment || "")); - - // first, generate all the zip parts. - for (var name in this.files) { - if (!this.files.hasOwnProperty(name)) { - continue; - } - var file = this.files[name]; - - var compressionName = file.options.compression || options.compression.toUpperCase(); - var compression = compressions[compressionName]; - if (!compression) { - throw new Error(compressionName + " is not a valid compression method !"); - } - var compressionOptions = file.options.compressionOptions || options.compressionOptions || {}; - - var compressedObject = generateCompressedObjectFrom.call(this, file, compression, compressionOptions); - - var zipPart = generateZipParts.call(this, name, file, compressedObject, localDirLength, options.platform); - localDirLength += zipPart.fileRecord.length + compressedObject.compressedSize; - centralDirLength += zipPart.dirRecord.length; - zipData.push(zipPart); - } - - var dirEnd = ""; - - // end of central dir signature - dirEnd = signature.CENTRAL_DIRECTORY_END + - // number of this disk - "\x00\x00" + - // number of the disk with the start of the central directory - "\x00\x00" + - // total number of entries in the central directory on this disk - decToHex(zipData.length, 2) + - // total number of entries in the central directory - decToHex(zipData.length, 2) + - // size of the central directory 4 bytes - decToHex(centralDirLength, 4) + - // offset of start of central directory with respect to the starting disk number - decToHex(localDirLength, 4) + - // .ZIP file comment length - decToHex(utfEncodedComment.length, 2) + - // .ZIP file comment - utfEncodedComment; - - - // we have all the parts (and the total length) - // time to create a writer ! - var typeName = options.type.toLowerCase(); - if(typeName==="uint8array"||typeName==="arraybuffer"||typeName==="blob"||typeName==="nodebuffer") { - writer = new Uint8ArrayWriter(localDirLength + centralDirLength + dirEnd.length); - }else{ - writer = new StringWriter(localDirLength + centralDirLength + dirEnd.length); - } - - for (i = 0; i < zipData.length; i++) { - writer.append(zipData[i].fileRecord); - writer.append(zipData[i].compressedObject.compressedContent); - } - for (i = 0; i < zipData.length; i++) { - writer.append(zipData[i].dirRecord); - } - - writer.append(dirEnd); - - var zip = writer.finalize(); - - - - switch(options.type.toLowerCase()) { - // case "zip is an Uint8Array" - case "uint8array" : - case "arraybuffer" : - case "nodebuffer" : - return utils.transformTo(options.type.toLowerCase(), zip); - case "blob" : - return utils.arrayBuffer2Blob(utils.transformTo("arraybuffer", zip), options.mimeType); - // case "zip is a string" - case "base64" : - return (options.base64) ? base64.encode(zip) : zip; - default : // case "string" : - return zip; - } - - }, - - /** - * @deprecated - * This method will be removed in a future version without replacement. - */ - crc32: function (input, crc) { - return crc32(input, crc); - }, - - /** - * @deprecated - * This method will be removed in a future version without replacement. - */ - utf8encode: function (string) { - return utils.transformTo("string", utf8.utf8encode(string)); - }, - - /** - * @deprecated - * This method will be removed in a future version without replacement. - */ - utf8decode: function (input) { - return utf8.utf8decode(input); - } -}; -module.exports = out; - -},{"./base64":1,"./compressedObject":2,"./compressions":3,"./crc32":4,"./defaults":6,"./nodeBuffer":11,"./signature":14,"./stringWriter":16,"./support":17,"./uint8ArrayWriter":19,"./utf8":20,"./utils":21}],14:[function(_dereq_,module,exports){ -'use strict'; -exports.LOCAL_FILE_HEADER = "PK\x03\x04"; -exports.CENTRAL_FILE_HEADER = "PK\x01\x02"; -exports.CENTRAL_DIRECTORY_END = "PK\x05\x06"; -exports.ZIP64_CENTRAL_DIRECTORY_LOCATOR = "PK\x06\x07"; -exports.ZIP64_CENTRAL_DIRECTORY_END = "PK\x06\x06"; -exports.DATA_DESCRIPTOR = "PK\x07\x08"; - -},{}],15:[function(_dereq_,module,exports){ -'use strict'; -var DataReader = _dereq_('./dataReader'); -var utils = _dereq_('./utils'); - -function StringReader(data, optimizedBinaryString) { - this.data = data; - if (!optimizedBinaryString) { - this.data = utils.string2binary(this.data); - } - this.length = this.data.length; - this.index = 0; -} -StringReader.prototype = new DataReader(); -/** - * @see DataReader.byteAt - */ -StringReader.prototype.byteAt = function(i) { - return this.data.charCodeAt(i); -}; -/** - * @see DataReader.lastIndexOfSignature - */ -StringReader.prototype.lastIndexOfSignature = function(sig) { - return this.data.lastIndexOf(sig); -}; -/** - * @see DataReader.readData - */ -StringReader.prototype.readData = function(size) { - this.checkOffset(size); - // this will work because the constructor applied the "& 0xff" mask. - var result = this.data.slice(this.index, this.index + size); - this.index += size; - return result; -}; -module.exports = StringReader; - -},{"./dataReader":5,"./utils":21}],16:[function(_dereq_,module,exports){ -'use strict'; - -var utils = _dereq_('./utils'); - -/** - * An object to write any content to a string. - * @constructor - */ -var StringWriter = function() { - this.data = []; -}; -StringWriter.prototype = { - /** - * Append any content to the current string. - * @param {Object} input the content to add. - */ - append: function(input) { - input = utils.transformTo("string", input); - this.data.push(input); - }, - /** - * Finalize the construction an return the result. - * @return {string} the generated string. - */ - finalize: function() { - return this.data.join(""); - } -}; - -module.exports = StringWriter; - -},{"./utils":21}],17:[function(_dereq_,module,exports){ -(function (Buffer){ -'use strict'; -exports.base64 = true; -exports.array = true; -exports.string = true; -exports.arraybuffer = typeof ArrayBuffer !== "undefined" && typeof Uint8Array !== "undefined"; -// contains true if JSZip can read/generate nodejs Buffer, false otherwise. -// Browserify will provide a Buffer implementation for browsers, which is -// an augmented Uint8Array (i.e., can be used as either Buffer or U8). -exports.nodebuffer = typeof Buffer !== "undefined"; -// contains true if JSZip can read/generate Uint8Array, false otherwise. -exports.uint8array = typeof Uint8Array !== "undefined"; - -if (typeof ArrayBuffer === "undefined") { - exports.blob = false; -} -else { - var buffer = new ArrayBuffer(0); - try { - exports.blob = new Blob([buffer], { - type: "application/zip" - }).size === 0; - } - catch (e) { - try { - var Builder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder || window.MSBlobBuilder; - var builder = new Builder(); - builder.append(buffer); - exports.blob = builder.getBlob('application/zip').size === 0; - } - catch (e) { - exports.blob = false; - } - } -} - -}).call(this,(typeof Buffer !== "undefined" ? Buffer : undefined)) -},{}],18:[function(_dereq_,module,exports){ -'use strict'; -var DataReader = _dereq_('./dataReader'); - -function Uint8ArrayReader(data) { - if (data) { - this.data = data; - this.length = this.data.length; - this.index = 0; - } -} -Uint8ArrayReader.prototype = new DataReader(); -/** - * @see DataReader.byteAt - */ -Uint8ArrayReader.prototype.byteAt = function(i) { - return this.data[i]; -}; -/** - * @see DataReader.lastIndexOfSignature - */ -Uint8ArrayReader.prototype.lastIndexOfSignature = function(sig) { - var sig0 = sig.charCodeAt(0), - sig1 = sig.charCodeAt(1), - sig2 = sig.charCodeAt(2), - sig3 = sig.charCodeAt(3); - for (var i = this.length - 4; i >= 0; --i) { - if (this.data[i] === sig0 && this.data[i + 1] === sig1 && this.data[i + 2] === sig2 && this.data[i + 3] === sig3) { - return i; - } - } - - return -1; -}; -/** - * @see DataReader.readData - */ -Uint8ArrayReader.prototype.readData = function(size) { - this.checkOffset(size); - if(size === 0) { - // in IE10, when using subarray(idx, idx), we get the array [0x00] instead of []. - return new Uint8Array(0); - } - var result = this.data.subarray(this.index, this.index + size); - this.index += size; - return result; -}; -module.exports = Uint8ArrayReader; - -},{"./dataReader":5}],19:[function(_dereq_,module,exports){ -'use strict'; - -var utils = _dereq_('./utils'); - -/** - * An object to write any content to an Uint8Array. - * @constructor - * @param {number} length The length of the array. - */ -var Uint8ArrayWriter = function(length) { - this.data = new Uint8Array(length); - this.index = 0; -}; -Uint8ArrayWriter.prototype = { - /** - * Append any content to the current array. - * @param {Object} input the content to add. - */ - append: function(input) { - if (input.length !== 0) { - // with an empty Uint8Array, Opera fails with a "Offset larger than array size" - input = utils.transformTo("uint8array", input); - this.data.set(input, this.index); - this.index += input.length; - } - }, - /** - * Finalize the construction an return the result. - * @return {Uint8Array} the generated array. - */ - finalize: function() { - return this.data; - } -}; - -module.exports = Uint8ArrayWriter; - -},{"./utils":21}],20:[function(_dereq_,module,exports){ -'use strict'; - -var utils = _dereq_('./utils'); -var support = _dereq_('./support'); -var nodeBuffer = _dereq_('./nodeBuffer'); - -/** - * The following functions come from pako, from pako/lib/utils/strings - * released under the MIT license, see pako https://github.com/nodeca/pako/ - */ - -// Table with utf8 lengths (calculated by first byte of sequence) -// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS, -// because max possible codepoint is 0x10ffff -var _utf8len = new Array(256); -for (var i=0; i<256; i++) { - _utf8len[i] = (i >= 252 ? 6 : i >= 248 ? 5 : i >= 240 ? 4 : i >= 224 ? 3 : i >= 192 ? 2 : 1); -} -_utf8len[254]=_utf8len[254]=1; // Invalid sequence start - -// convert string to array (typed, when possible) -var string2buf = function (str) { - var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0; - - // count binary size - for (m_pos = 0; m_pos < str_len; m_pos++) { - c = str.charCodeAt(m_pos); - if ((c & 0xfc00) === 0xd800 && (m_pos+1 < str_len)) { - c2 = str.charCodeAt(m_pos+1); - if ((c2 & 0xfc00) === 0xdc00) { - c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00); - m_pos++; - } - } - buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4; - } - - // allocate buffer - if (support.uint8array) { - buf = new Uint8Array(buf_len); - } else { - buf = new Array(buf_len); - } - - // convert - for (i=0, m_pos = 0; i < buf_len; m_pos++) { - c = str.charCodeAt(m_pos); - if ((c & 0xfc00) === 0xd800 && (m_pos+1 < str_len)) { - c2 = str.charCodeAt(m_pos+1); - if ((c2 & 0xfc00) === 0xdc00) { - c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00); - m_pos++; - } - } - if (c < 0x80) { - /* one byte */ - buf[i++] = c; - } else if (c < 0x800) { - /* two bytes */ - buf[i++] = 0xC0 | (c >>> 6); - buf[i++] = 0x80 | (c & 0x3f); - } else if (c < 0x10000) { - /* three bytes */ - buf[i++] = 0xE0 | (c >>> 12); - buf[i++] = 0x80 | (c >>> 6 & 0x3f); - buf[i++] = 0x80 | (c & 0x3f); - } else { - /* four bytes */ - buf[i++] = 0xf0 | (c >>> 18); - buf[i++] = 0x80 | (c >>> 12 & 0x3f); - buf[i++] = 0x80 | (c >>> 6 & 0x3f); - buf[i++] = 0x80 | (c & 0x3f); - } - } - - return buf; -}; - -// Calculate max possible position in utf8 buffer, -// that will not break sequence. If that's not possible -// - (very small limits) return max size as is. -// -// buf[] - utf8 bytes array -// max - length limit (mandatory); -var utf8border = function(buf, max) { - var pos; - - max = max || buf.length; - if (max > buf.length) { max = buf.length; } - - // go back from last position, until start of sequence found - pos = max-1; - while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; } - - // Fuckup - very small and broken sequence, - // return max, because we should return something anyway. - if (pos < 0) { return max; } - - // If we came to start of buffer - that means vuffer is too small, - // return max too. - if (pos === 0) { return max; } - - return (pos + _utf8len[buf[pos]] > max) ? pos : max; -}; - -// convert array to string -var buf2string = function (buf) { - var str, i, out, c, c_len; - var len = buf.length; - - // Reserve max possible length (2 words per char) - // NB: by unknown reasons, Array is significantly faster for - // String.fromCharCode.apply than Uint16Array. - var utf16buf = new Array(len*2); - - for (out=0, i=0; i 4) { utf16buf[out++] = 0xfffd; i += c_len-1; continue; } - - // apply mask on first byte - c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07; - // join the rest - while (c_len > 1 && i < len) { - c = (c << 6) | (buf[i++] & 0x3f); - c_len--; - } - - // terminated by end of string? - if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; } - - if (c < 0x10000) { - utf16buf[out++] = c; - } else { - c -= 0x10000; - utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff); - utf16buf[out++] = 0xdc00 | (c & 0x3ff); - } - } - - // shrinkBuf(utf16buf, out) - if (utf16buf.length !== out) { - if(utf16buf.subarray) { - utf16buf = utf16buf.subarray(0, out); - } else { - utf16buf.length = out; - } - } - - // return String.fromCharCode.apply(null, utf16buf); - return utils.applyFromCharCode(utf16buf); -}; - - -// That's all for the pako functions. - - -/** - * Transform a javascript string into an array (typed if possible) of bytes, - * UTF-8 encoded. - * @param {String} str the string to encode - * @return {Array|Uint8Array|Buffer} the UTF-8 encoded string. - */ -exports.utf8encode = function utf8encode(str) { - if (support.nodebuffer) { - return nodeBuffer(str, "utf-8"); - } - - return string2buf(str); -}; - - -/** - * Transform a bytes array (or a representation) representing an UTF-8 encoded - * string into a javascript string. - * @param {Array|Uint8Array|Buffer} buf the data de decode - * @return {String} the decoded string. - */ -exports.utf8decode = function utf8decode(buf) { - if (support.nodebuffer) { - return utils.transformTo("nodebuffer", buf).toString("utf-8"); - } - - buf = utils.transformTo(support.uint8array ? "uint8array" : "array", buf); - - // return buf2string(buf); - // Chrome prefers to work with "small" chunks of data - // for the method buf2string. - // Firefox and Chrome has their own shortcut, IE doesn't seem to really care. - var result = [], k = 0, len = buf.length, chunk = 65536; - while (k < len) { - var nextBoundary = utf8border(buf, Math.min(k + chunk, len)); - if (support.uint8array) { - result.push(buf2string(buf.subarray(k, nextBoundary))); - } else { - result.push(buf2string(buf.slice(k, nextBoundary))); - } - k = nextBoundary; - } - return result.join(""); - -}; -// vim: set shiftwidth=4 softtabstop=4: - -},{"./nodeBuffer":11,"./support":17,"./utils":21}],21:[function(_dereq_,module,exports){ -'use strict'; -var support = _dereq_('./support'); -var compressions = _dereq_('./compressions'); -var nodeBuffer = _dereq_('./nodeBuffer'); -/** - * Convert a string to a "binary string" : a string containing only char codes between 0 and 255. - * @param {string} str the string to transform. - * @return {String} the binary string. - */ -exports.string2binary = function(str) { - var result = ""; - for (var i = 0; i < str.length; i++) { - result += String.fromCharCode(str.charCodeAt(i) & 0xff); - } - return result; -}; -exports.arrayBuffer2Blob = function(buffer, mimeType) { - exports.checkSupport("blob"); - mimeType = mimeType || 'application/zip'; - - try { - // Blob constructor - return new Blob([buffer], { - type: mimeType - }); - } - catch (e) { - - try { - // deprecated, browser only, old way - var Builder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder || window.MSBlobBuilder; - var builder = new Builder(); - builder.append(buffer); - return builder.getBlob(mimeType); - } - catch (e) { - - // well, fuck ?! - throw new Error("Bug : can't construct the Blob."); - } - } - - -}; -/** - * The identity function. - * @param {Object} input the input. - * @return {Object} the same input. - */ -function identity(input) { - return input; -} - -/** - * Fill in an array with a string. - * @param {String} str the string to use. - * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to fill in (will be mutated). - * @return {Array|ArrayBuffer|Uint8Array|Buffer} the updated array. - */ -function stringToArrayLike(str, array) { - for (var i = 0; i < str.length; ++i) { - array[i] = str.charCodeAt(i) & 0xFF; - } - return array; -} - -/** - * Transform an array-like object to a string. - * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform. - * @return {String} the result. - */ -function arrayLikeToString(array) { - // Performances notes : - // -------------------- - // String.fromCharCode.apply(null, array) is the fastest, see - // see http://jsperf.com/converting-a-uint8array-to-a-string/2 - // but the stack is limited (and we can get huge arrays !). - // - // result += String.fromCharCode(array[i]); generate too many strings ! - // - // This code is inspired by http://jsperf.com/arraybuffer-to-string-apply-performance/2 - var chunk = 65536; - var result = [], - len = array.length, - type = exports.getTypeOf(array), - k = 0, - canUseApply = true; - try { - switch(type) { - case "uint8array": - String.fromCharCode.apply(null, new Uint8Array(0)); - break; - case "nodebuffer": - String.fromCharCode.apply(null, nodeBuffer(0)); - break; - } - } catch(e) { - canUseApply = false; - } - - // no apply : slow and painful algorithm - // default browser on android 4.* - if (!canUseApply) { - var resultStr = ""; - for(var i = 0; i < array.length;i++) { - resultStr += String.fromCharCode(array[i]); - } - return resultStr; - } - while (k < len && chunk > 1) { - try { - if (type === "array" || type === "nodebuffer") { - result.push(String.fromCharCode.apply(null, array.slice(k, Math.min(k + chunk, len)))); - } - else { - result.push(String.fromCharCode.apply(null, array.subarray(k, Math.min(k + chunk, len)))); - } - k += chunk; - } - catch (e) { - chunk = Math.floor(chunk / 2); - } - } - return result.join(""); -} - -exports.applyFromCharCode = arrayLikeToString; - - -/** - * Copy the data from an array-like to an other array-like. - * @param {Array|ArrayBuffer|Uint8Array|Buffer} arrayFrom the origin array. - * @param {Array|ArrayBuffer|Uint8Array|Buffer} arrayTo the destination array which will be mutated. - * @return {Array|ArrayBuffer|Uint8Array|Buffer} the updated destination array. - */ -function arrayLikeToArrayLike(arrayFrom, arrayTo) { - for (var i = 0; i < arrayFrom.length; i++) { - arrayTo[i] = arrayFrom[i]; - } - return arrayTo; -} - -// a matrix containing functions to transform everything into everything. -var transform = {}; - -// string to ? -transform["string"] = { - "string": identity, - "array": function(input) { - return stringToArrayLike(input, new Array(input.length)); - }, - "arraybuffer": function(input) { - return transform["string"]["uint8array"](input).buffer; - }, - "uint8array": function(input) { - return stringToArrayLike(input, new Uint8Array(input.length)); - }, - "nodebuffer": function(input) { - return stringToArrayLike(input, nodeBuffer(input.length)); - } -}; - -// array to ? -transform["array"] = { - "string": arrayLikeToString, - "array": identity, - "arraybuffer": function(input) { - return (new Uint8Array(input)).buffer; - }, - "uint8array": function(input) { - return new Uint8Array(input); - }, - "nodebuffer": function(input) { - return nodeBuffer(input); - } -}; - -// arraybuffer to ? -transform["arraybuffer"] = { - "string": function(input) { - return arrayLikeToString(new Uint8Array(input)); - }, - "array": function(input) { - return arrayLikeToArrayLike(new Uint8Array(input), new Array(input.byteLength)); - }, - "arraybuffer": identity, - "uint8array": function(input) { - return new Uint8Array(input); - }, - "nodebuffer": function(input) { - return nodeBuffer(new Uint8Array(input)); - } -}; - -// uint8array to ? -transform["uint8array"] = { - "string": arrayLikeToString, - "array": function(input) { - return arrayLikeToArrayLike(input, new Array(input.length)); - }, - "arraybuffer": function(input) { - return input.buffer; - }, - "uint8array": identity, - "nodebuffer": function(input) { - return nodeBuffer(input); - } -}; - -// nodebuffer to ? -transform["nodebuffer"] = { - "string": arrayLikeToString, - "array": function(input) { - return arrayLikeToArrayLike(input, new Array(input.length)); - }, - "arraybuffer": function(input) { - return transform["nodebuffer"]["uint8array"](input).buffer; - }, - "uint8array": function(input) { - return arrayLikeToArrayLike(input, new Uint8Array(input.length)); - }, - "nodebuffer": identity -}; - -/** - * Transform an input into any type. - * The supported output type are : string, array, uint8array, arraybuffer, nodebuffer. - * If no output type is specified, the unmodified input will be returned. - * @param {String} outputType the output type. - * @param {String|Array|ArrayBuffer|Uint8Array|Buffer} input the input to convert. - * @throws {Error} an Error if the browser doesn't support the requested output type. - */ -exports.transformTo = function(outputType, input) { - if (!input) { - // undefined, null, etc - // an empty string won't harm. - input = ""; - } - if (!outputType) { - return input; - } - exports.checkSupport(outputType); - var inputType = exports.getTypeOf(input); - var result = transform[inputType][outputType](input); - return result; -}; - -/** - * Return the type of the input. - * The type will be in a format valid for JSZip.utils.transformTo : string, array, uint8array, arraybuffer. - * @param {Object} input the input to identify. - * @return {String} the (lowercase) type of the input. - */ -exports.getTypeOf = function(input) { - if (typeof input === "string") { - return "string"; - } - if (Object.prototype.toString.call(input) === "[object Array]") { - return "array"; - } - if (support.nodebuffer && nodeBuffer.test(input)) { - return "nodebuffer"; - } - if (support.uint8array && input instanceof Uint8Array) { - return "uint8array"; - } - if (support.arraybuffer && input instanceof ArrayBuffer) { - return "arraybuffer"; - } -}; - -/** - * Throw an exception if the type is not supported. - * @param {String} type the type to check. - * @throws {Error} an Error if the browser doesn't support the requested type. - */ -exports.checkSupport = function(type) { - var supported = support[type.toLowerCase()]; - if (!supported) { - throw new Error(type + " is not supported by this browser"); - } -}; -exports.MAX_VALUE_16BITS = 65535; -exports.MAX_VALUE_32BITS = -1; // well, "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF" is parsed as -1 - -/** - * Prettify a string read as binary. - * @param {string} str the string to prettify. - * @return {string} a pretty string. - */ -exports.pretty = function(str) { - var res = '', - code, i; - for (i = 0; i < (str || "").length; i++) { - code = str.charCodeAt(i); - res += '\\x' + (code < 16 ? "0" : "") + code.toString(16).toUpperCase(); - } - return res; -}; - -/** - * Find a compression registered in JSZip. - * @param {string} compressionMethod the method magic to find. - * @return {Object|null} the JSZip compression object, null if none found. - */ -exports.findCompression = function(compressionMethod) { - for (var method in compressions) { - if (!compressions.hasOwnProperty(method)) { - continue; - } - if (compressions[method].magic === compressionMethod) { - return compressions[method]; - } - } - return null; -}; -/** -* Cross-window, cross-Node-context regular expression detection -* @param {Object} object Anything -* @return {Boolean} true if the object is a regular expression, -* false otherwise -*/ -exports.isRegExp = function (object) { - return Object.prototype.toString.call(object) === "[object RegExp]"; -}; - - -},{"./compressions":3,"./nodeBuffer":11,"./support":17}],22:[function(_dereq_,module,exports){ -'use strict'; -var StringReader = _dereq_('./stringReader'); -var NodeBufferReader = _dereq_('./nodeBufferReader'); -var Uint8ArrayReader = _dereq_('./uint8ArrayReader'); -var utils = _dereq_('./utils'); -var sig = _dereq_('./signature'); -var ZipEntry = _dereq_('./zipEntry'); -var support = _dereq_('./support'); -var jszipProto = _dereq_('./object'); -// class ZipEntries {{{ -/** - * All the entries in the zip file. - * @constructor - * @param {String|ArrayBuffer|Uint8Array} data the binary stream to load. - * @param {Object} loadOptions Options for loading the stream. - */ -function ZipEntries(data, loadOptions) { - this.files = []; - this.loadOptions = loadOptions; - if (data) { - this.load(data); - } -} -ZipEntries.prototype = { - /** - * Check that the reader is on the speficied signature. - * @param {string} expectedSignature the expected signature. - * @throws {Error} if it is an other signature. - */ - checkSignature: function(expectedSignature) { - var signature = this.reader.readString(4); - if (signature !== expectedSignature) { - throw new Error("Corrupted zip or bug : unexpected signature " + "(" + utils.pretty(signature) + ", expected " + utils.pretty(expectedSignature) + ")"); - } - }, - /** - * Read the end of the central directory. - */ - readBlockEndOfCentral: function() { - this.diskNumber = this.reader.readInt(2); - this.diskWithCentralDirStart = this.reader.readInt(2); - this.centralDirRecordsOnThisDisk = this.reader.readInt(2); - this.centralDirRecords = this.reader.readInt(2); - this.centralDirSize = this.reader.readInt(4); - this.centralDirOffset = this.reader.readInt(4); - - this.zipCommentLength = this.reader.readInt(2); - // warning : the encoding depends of the system locale - // On a linux machine with LANG=en_US.utf8, this field is utf8 encoded. - // On a windows machine, this field is encoded with the localized windows code page. - this.zipComment = this.reader.readString(this.zipCommentLength); - // To get consistent behavior with the generation part, we will assume that - // this is utf8 encoded. - this.zipComment = jszipProto.utf8decode(this.zipComment); - }, - /** - * Read the end of the Zip 64 central directory. - * Not merged with the method readEndOfCentral : - * The end of central can coexist with its Zip64 brother, - * I don't want to read the wrong number of bytes ! - */ - readBlockZip64EndOfCentral: function() { - this.zip64EndOfCentralSize = this.reader.readInt(8); - this.versionMadeBy = this.reader.readString(2); - this.versionNeeded = this.reader.readInt(2); - this.diskNumber = this.reader.readInt(4); - this.diskWithCentralDirStart = this.reader.readInt(4); - this.centralDirRecordsOnThisDisk = this.reader.readInt(8); - this.centralDirRecords = this.reader.readInt(8); - this.centralDirSize = this.reader.readInt(8); - this.centralDirOffset = this.reader.readInt(8); - - this.zip64ExtensibleData = {}; - var extraDataSize = this.zip64EndOfCentralSize - 44, - index = 0, - extraFieldId, - extraFieldLength, - extraFieldValue; - while (index < extraDataSize) { - extraFieldId = this.reader.readInt(2); - extraFieldLength = this.reader.readInt(4); - extraFieldValue = this.reader.readString(extraFieldLength); - this.zip64ExtensibleData[extraFieldId] = { - id: extraFieldId, - length: extraFieldLength, - value: extraFieldValue - }; - } - }, - /** - * Read the end of the Zip 64 central directory locator. - */ - readBlockZip64EndOfCentralLocator: function() { - this.diskWithZip64CentralDirStart = this.reader.readInt(4); - this.relativeOffsetEndOfZip64CentralDir = this.reader.readInt(8); - this.disksCount = this.reader.readInt(4); - if (this.disksCount > 1) { - throw new Error("Multi-volumes zip are not supported"); - } - }, - /** - * Read the local files, based on the offset read in the central part. - */ - readLocalFiles: function() { - var i, file; - for (i = 0; i < this.files.length; i++) { - file = this.files[i]; - this.reader.setIndex(file.localHeaderOffset); - this.checkSignature(sig.LOCAL_FILE_HEADER); - file.readLocalPart(this.reader); - file.handleUTF8(); - file.processAttributes(); - } - }, - /** - * Read the central directory. - */ - readCentralDir: function() { - var file; - - this.reader.setIndex(this.centralDirOffset); - while (this.reader.readString(4) === sig.CENTRAL_FILE_HEADER) { - file = new ZipEntry({ - zip64: this.zip64 - }, this.loadOptions); - file.readCentralPart(this.reader); - this.files.push(file); - } - }, - /** - * Read the end of central directory. - */ - readEndOfCentral: function() { - var offset = this.reader.lastIndexOfSignature(sig.CENTRAL_DIRECTORY_END); - if (offset === -1) { - // Check if the content is a truncated zip or complete garbage. - // A "LOCAL_FILE_HEADER" is not required at the beginning (auto - // extractible zip for example) but it can give a good hint. - // If an ajax request was used without responseType, we will also - // get unreadable data. - var isGarbage = true; - try { - this.reader.setIndex(0); - this.checkSignature(sig.LOCAL_FILE_HEADER); - isGarbage = false; - } catch (e) {} - - if (isGarbage) { - throw new Error("Can't find end of central directory : is this a zip file ? " + - "If it is, see http://stuk.github.io/jszip/documentation/howto/read_zip.html"); - } else { - throw new Error("Corrupted zip : can't find end of central directory"); - } - } - this.reader.setIndex(offset); - this.checkSignature(sig.CENTRAL_DIRECTORY_END); - this.readBlockEndOfCentral(); - - - /* extract from the zip spec : - 4) If one of the fields in the end of central directory - record is too small to hold required data, the field - should be set to -1 (0xFFFF or 0xFFFFFFFF) and the - ZIP64 format record should be created. - 5) The end of central directory record and the - Zip64 end of central directory locator record must - reside on the same disk when splitting or spanning - an archive. - */ - if (this.diskNumber === utils.MAX_VALUE_16BITS || this.diskWithCentralDirStart === utils.MAX_VALUE_16BITS || this.centralDirRecordsOnThisDisk === utils.MAX_VALUE_16BITS || this.centralDirRecords === utils.MAX_VALUE_16BITS || this.centralDirSize === utils.MAX_VALUE_32BITS || this.centralDirOffset === utils.MAX_VALUE_32BITS) { - this.zip64 = true; - - /* - Warning : the zip64 extension is supported, but ONLY if the 64bits integer read from - the zip file can fit into a 32bits integer. This cannot be solved : Javascript represents - all numbers as 64-bit double precision IEEE 754 floating point numbers. - So, we have 53bits for integers and bitwise operations treat everything as 32bits. - see https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Bitwise_Operators - and http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf section 8.5 - */ - - // should look for a zip64 EOCD locator - offset = this.reader.lastIndexOfSignature(sig.ZIP64_CENTRAL_DIRECTORY_LOCATOR); - if (offset === -1) { - throw new Error("Corrupted zip : can't find the ZIP64 end of central directory locator"); - } - this.reader.setIndex(offset); - this.checkSignature(sig.ZIP64_CENTRAL_DIRECTORY_LOCATOR); - this.readBlockZip64EndOfCentralLocator(); - - // now the zip64 EOCD record - this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir); - this.checkSignature(sig.ZIP64_CENTRAL_DIRECTORY_END); - this.readBlockZip64EndOfCentral(); - } - }, - prepareReader: function(data) { - var type = utils.getTypeOf(data); - if (type === "string" && !support.uint8array) { - this.reader = new StringReader(data, this.loadOptions.optimizedBinaryString); - } - else if (type === "nodebuffer") { - this.reader = new NodeBufferReader(data); - } - else { - this.reader = new Uint8ArrayReader(utils.transformTo("uint8array", data)); - } - }, - /** - * Read a zip file and create ZipEntries. - * @param {String|ArrayBuffer|Uint8Array|Buffer} data the binary string representing a zip file. - */ - load: function(data) { - this.prepareReader(data); - this.readEndOfCentral(); - this.readCentralDir(); - this.readLocalFiles(); - } -}; -// }}} end of ZipEntries -module.exports = ZipEntries; - -},{"./nodeBufferReader":12,"./object":13,"./signature":14,"./stringReader":15,"./support":17,"./uint8ArrayReader":18,"./utils":21,"./zipEntry":23}],23:[function(_dereq_,module,exports){ -'use strict'; -var StringReader = _dereq_('./stringReader'); -var utils = _dereq_('./utils'); -var CompressedObject = _dereq_('./compressedObject'); -var jszipProto = _dereq_('./object'); - -var MADE_BY_DOS = 0x00; -var MADE_BY_UNIX = 0x03; - -// class ZipEntry {{{ -/** - * An entry in the zip file. - * @constructor - * @param {Object} options Options of the current file. - * @param {Object} loadOptions Options for loading the stream. - */ -function ZipEntry(options, loadOptions) { - this.options = options; - this.loadOptions = loadOptions; -} -ZipEntry.prototype = { - /** - * say if the file is encrypted. - * @return {boolean} true if the file is encrypted, false otherwise. - */ - isEncrypted: function() { - // bit 1 is set - return (this.bitFlag & 0x0001) === 0x0001; - }, - /** - * say if the file has utf-8 filename/comment. - * @return {boolean} true if the filename/comment is in utf-8, false otherwise. - */ - useUTF8: function() { - // bit 11 is set - return (this.bitFlag & 0x0800) === 0x0800; - }, - /** - * Prepare the function used to generate the compressed content from this ZipFile. - * @param {DataReader} reader the reader to use. - * @param {number} from the offset from where we should read the data. - * @param {number} length the length of the data to read. - * @return {Function} the callback to get the compressed content (the type depends of the DataReader class). - */ - prepareCompressedContent: function(reader, from, length) { - return function() { - var previousIndex = reader.index; - reader.setIndex(from); - var compressedFileData = reader.readData(length); - reader.setIndex(previousIndex); - - return compressedFileData; - }; - }, - /** - * Prepare the function used to generate the uncompressed content from this ZipFile. - * @param {DataReader} reader the reader to use. - * @param {number} from the offset from where we should read the data. - * @param {number} length the length of the data to read. - * @param {JSZip.compression} compression the compression used on this file. - * @param {number} uncompressedSize the uncompressed size to expect. - * @return {Function} the callback to get the uncompressed content (the type depends of the DataReader class). - */ - prepareContent: function(reader, from, length, compression, uncompressedSize) { - return function() { - - var compressedFileData = utils.transformTo(compression.uncompressInputType, this.getCompressedContent()); - var uncompressedFileData = compression.uncompress(compressedFileData); - - if (uncompressedFileData.length !== uncompressedSize) { - throw new Error("Bug : uncompressed data size mismatch"); - } - - return uncompressedFileData; - }; - }, - /** - * Read the local part of a zip file and add the info in this object. - * @param {DataReader} reader the reader to use. - */ - readLocalPart: function(reader) { - var compression, localExtraFieldsLength; - - // we already know everything from the central dir ! - // If the central dir data are false, we are doomed. - // On the bright side, the local part is scary : zip64, data descriptors, both, etc. - // The less data we get here, the more reliable this should be. - // Let's skip the whole header and dash to the data ! - reader.skip(22); - // in some zip created on windows, the filename stored in the central dir contains \ instead of /. - // Strangely, the filename here is OK. - // I would love to treat these zip files as corrupted (see http://www.info-zip.org/FAQ.html#backslashes - // or APPNOTE#4.4.17.1, "All slashes MUST be forward slashes '/'") but there are a lot of bad zip generators... - // Search "unzip mismatching "local" filename continuing with "central" filename version" on - // the internet. - // - // I think I see the logic here : the central directory is used to display - // content and the local directory is used to extract the files. Mixing / and \ - // may be used to display \ to windows users and use / when extracting the files. - // Unfortunately, this lead also to some issues : http://seclists.org/fulldisclosure/2009/Sep/394 - this.fileNameLength = reader.readInt(2); - localExtraFieldsLength = reader.readInt(2); // can't be sure this will be the same as the central dir - this.fileName = reader.readString(this.fileNameLength); - reader.skip(localExtraFieldsLength); - - if (this.compressedSize == -1 || this.uncompressedSize == -1) { - throw new Error("Bug or corrupted zip : didn't get enough informations from the central directory " + "(compressedSize == -1 || uncompressedSize == -1)"); - } - - compression = utils.findCompression(this.compressionMethod); - if (compression === null) { // no compression found - throw new Error("Corrupted zip : compression " + utils.pretty(this.compressionMethod) + " unknown (inner file : " + this.fileName + ")"); - } - this.decompressed = new CompressedObject(); - this.decompressed.compressedSize = this.compressedSize; - this.decompressed.uncompressedSize = this.uncompressedSize; - this.decompressed.crc32 = this.crc32; - this.decompressed.compressionMethod = this.compressionMethod; - this.decompressed.getCompressedContent = this.prepareCompressedContent(reader, reader.index, this.compressedSize, compression); - this.decompressed.getContent = this.prepareContent(reader, reader.index, this.compressedSize, compression, this.uncompressedSize); - - // we need to compute the crc32... - if (this.loadOptions.checkCRC32) { - this.decompressed = utils.transformTo("string", this.decompressed.getContent()); - if (jszipProto.crc32(this.decompressed) !== this.crc32) { - throw new Error("Corrupted zip : CRC32 mismatch"); - } - } - }, - - /** - * Read the central part of a zip file and add the info in this object. - * @param {DataReader} reader the reader to use. - */ - readCentralPart: function(reader) { - this.versionMadeBy = reader.readInt(2); - this.versionNeeded = reader.readInt(2); - this.bitFlag = reader.readInt(2); - this.compressionMethod = reader.readString(2); - this.date = reader.readDate(); - this.crc32 = reader.readInt(4); - this.compressedSize = reader.readInt(4); - this.uncompressedSize = reader.readInt(4); - this.fileNameLength = reader.readInt(2); - this.extraFieldsLength = reader.readInt(2); - this.fileCommentLength = reader.readInt(2); - this.diskNumberStart = reader.readInt(2); - this.internalFileAttributes = reader.readInt(2); - this.externalFileAttributes = reader.readInt(4); - this.localHeaderOffset = reader.readInt(4); - - if (this.isEncrypted()) { - throw new Error("Encrypted zip are not supported"); - } - - this.fileName = reader.readString(this.fileNameLength); - this.readExtraFields(reader); - this.parseZIP64ExtraField(reader); - this.fileComment = reader.readString(this.fileCommentLength); - }, - - /** - * Parse the external file attributes and get the unix/dos permissions. - */ - processAttributes: function () { - this.unixPermissions = null; - this.dosPermissions = null; - var madeBy = this.versionMadeBy >> 8; - - // Check if we have the DOS directory flag set. - // We look for it in the DOS and UNIX permissions - // but some unknown platform could set it as a compatibility flag. - this.dir = this.externalFileAttributes & 0x0010 ? true : false; - - if(madeBy === MADE_BY_DOS) { - // first 6 bits (0 to 5) - this.dosPermissions = this.externalFileAttributes & 0x3F; - } - - if(madeBy === MADE_BY_UNIX) { - this.unixPermissions = (this.externalFileAttributes >> 16) & 0xFFFF; - // the octal permissions are in (this.unixPermissions & 0x01FF).toString(8); - } - - // fail safe : if the name ends with a / it probably means a folder - if (!this.dir && this.fileName.slice(-1) === '/') { - this.dir = true; - } - }, - - /** - * Parse the ZIP64 extra field and merge the info in the current ZipEntry. - * @param {DataReader} reader the reader to use. - */ - parseZIP64ExtraField: function(reader) { - - if (!this.extraFields[0x0001]) { - return; - } - - // should be something, preparing the extra reader - var extraReader = new StringReader(this.extraFields[0x0001].value); - - // I really hope that these 64bits integer can fit in 32 bits integer, because js - // won't let us have more. - if (this.uncompressedSize === utils.MAX_VALUE_32BITS) { - this.uncompressedSize = extraReader.readInt(8); - } - if (this.compressedSize === utils.MAX_VALUE_32BITS) { - this.compressedSize = extraReader.readInt(8); - } - if (this.localHeaderOffset === utils.MAX_VALUE_32BITS) { - this.localHeaderOffset = extraReader.readInt(8); - } - if (this.diskNumberStart === utils.MAX_VALUE_32BITS) { - this.diskNumberStart = extraReader.readInt(4); - } - }, - /** - * Read the central part of a zip file and add the info in this object. - * @param {DataReader} reader the reader to use. - */ - readExtraFields: function(reader) { - var start = reader.index, - extraFieldId, - extraFieldLength, - extraFieldValue; - - this.extraFields = this.extraFields || {}; - - while (reader.index < start + this.extraFieldsLength) { - extraFieldId = reader.readInt(2); - extraFieldLength = reader.readInt(2); - extraFieldValue = reader.readString(extraFieldLength); - - this.extraFields[extraFieldId] = { - id: extraFieldId, - length: extraFieldLength, - value: extraFieldValue - }; - } - }, - /** - * Apply an UTF8 transformation if needed. - */ - handleUTF8: function() { - if (this.useUTF8()) { - this.fileName = jszipProto.utf8decode(this.fileName); - this.fileComment = jszipProto.utf8decode(this.fileComment); - } else { - var upath = this.findExtraFieldUnicodePath(); - if (upath !== null) { - this.fileName = upath; - } - var ucomment = this.findExtraFieldUnicodeComment(); - if (ucomment !== null) { - this.fileComment = ucomment; - } - } - }, - - /** - * Find the unicode path declared in the extra field, if any. - * @return {String} the unicode path, null otherwise. - */ - findExtraFieldUnicodePath: function() { - var upathField = this.extraFields[0x7075]; - if (upathField) { - var extraReader = new StringReader(upathField.value); - - // wrong version - if (extraReader.readInt(1) !== 1) { - return null; - } - - // the crc of the filename changed, this field is out of date. - if (jszipProto.crc32(this.fileName) !== extraReader.readInt(4)) { - return null; - } - - return jszipProto.utf8decode(extraReader.readString(upathField.length - 5)); - } - return null; - }, - - /** - * Find the unicode comment declared in the extra field, if any. - * @return {String} the unicode comment, null otherwise. - */ - findExtraFieldUnicodeComment: function() { - var ucommentField = this.extraFields[0x6375]; - if (ucommentField) { - var extraReader = new StringReader(ucommentField.value); - - // wrong version - if (extraReader.readInt(1) !== 1) { - return null; - } - - // the crc of the comment changed, this field is out of date. - if (jszipProto.crc32(this.fileComment) !== extraReader.readInt(4)) { - return null; - } - - return jszipProto.utf8decode(extraReader.readString(ucommentField.length - 5)); - } - return null; - } -}; -module.exports = ZipEntry; - -},{"./compressedObject":2,"./object":13,"./stringReader":15,"./utils":21}],24:[function(_dereq_,module,exports){ -// Top level file is just a mixin of submodules & constants -'use strict'; - -var assign = _dereq_('./lib/utils/common').assign; - -var deflate = _dereq_('./lib/deflate'); -var inflate = _dereq_('./lib/inflate'); -var constants = _dereq_('./lib/zlib/constants'); - -var pako = {}; - -assign(pako, deflate, inflate, constants); - -module.exports = pako; -},{"./lib/deflate":25,"./lib/inflate":26,"./lib/utils/common":27,"./lib/zlib/constants":30}],25:[function(_dereq_,module,exports){ -'use strict'; - - -var zlib_deflate = _dereq_('./zlib/deflate.js'); -var utils = _dereq_('./utils/common'); -var strings = _dereq_('./utils/strings'); -var msg = _dereq_('./zlib/messages'); -var zstream = _dereq_('./zlib/zstream'); - - -/* Public constants ==========================================================*/ -/* ===========================================================================*/ - -var Z_NO_FLUSH = 0; -var Z_FINISH = 4; - -var Z_OK = 0; -var Z_STREAM_END = 1; - -var Z_DEFAULT_COMPRESSION = -1; - -var Z_DEFAULT_STRATEGY = 0; - -var Z_DEFLATED = 8; - -/* ===========================================================================*/ - - -/** - * class Deflate - * - * Generic JS-style wrapper for zlib calls. If you don't need - * streaming behaviour - use more simple functions: [[deflate]], - * [[deflateRaw]] and [[gzip]]. - **/ - -/* internal - * Deflate.chunks -> Array - * - * Chunks of output data, if [[Deflate#onData]] not overriden. - **/ - -/** - * Deflate.result -> Uint8Array|Array - * - * Compressed result, generated by default [[Deflate#onData]] - * and [[Deflate#onEnd]] handlers. Filled after you push last chunk - * (call [[Deflate#push]] with `Z_FINISH` / `true` param). - **/ - -/** - * Deflate.err -> Number - * - * Error code after deflate finished. 0 (Z_OK) on success. - * You will not need it in real life, because deflate errors - * are possible only on wrong options or bad `onData` / `onEnd` - * custom handlers. - **/ - -/** - * Deflate.msg -> String - * - * Error message, if [[Deflate.err]] != 0 - **/ - - -/** - * new Deflate(options) - * - options (Object): zlib deflate options. - * - * Creates new deflator instance with specified params. Throws exception - * on bad params. Supported options: - * - * - `level` - * - `windowBits` - * - `memLevel` - * - `strategy` - * - * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced) - * for more information on these. - * - * Additional options, for internal needs: - * - * - `chunkSize` - size of generated data chunks (16K by default) - * - `raw` (Boolean) - do raw deflate - * - `gzip` (Boolean) - create gzip wrapper - * - `to` (String) - if equal to 'string', then result will be "binary string" - * (each char code [0..255]) - * - `header` (Object) - custom header for gzip - * - `text` (Boolean) - true if compressed data believed to be text - * - `time` (Number) - modification time, unix timestamp - * - `os` (Number) - operation system code - * - `extra` (Array) - array of bytes with extra data (max 65536) - * - `name` (String) - file name (binary string) - * - `comment` (String) - comment (binary string) - * - `hcrc` (Boolean) - true if header crc should be added - * - * ##### Example: - * - * ```javascript - * var pako = require('pako') - * , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9]) - * , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]); - * - * var deflate = new pako.Deflate({ level: 3}); - * - * deflate.push(chunk1, false); - * deflate.push(chunk2, true); // true -> last chunk - * - * if (deflate.err) { throw new Error(deflate.err); } - * - * console.log(deflate.result); - * ``` - **/ -var Deflate = function(options) { - - this.options = utils.assign({ - level: Z_DEFAULT_COMPRESSION, - method: Z_DEFLATED, - chunkSize: 16384, - windowBits: 15, - memLevel: 8, - strategy: Z_DEFAULT_STRATEGY, - to: '' - }, options || {}); - - var opt = this.options; - - if (opt.raw && (opt.windowBits > 0)) { - opt.windowBits = -opt.windowBits; - } - - else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) { - opt.windowBits += 16; - } - - this.err = 0; // error code, if happens (0 = Z_OK) - this.msg = ''; // error message - this.ended = false; // used to avoid multiple onEnd() calls - this.chunks = []; // chunks of compressed data - - this.strm = new zstream(); - this.strm.avail_out = 0; - - var status = zlib_deflate.deflateInit2( - this.strm, - opt.level, - opt.method, - opt.windowBits, - opt.memLevel, - opt.strategy - ); - - if (status !== Z_OK) { - throw new Error(msg[status]); - } - - if (opt.header) { - zlib_deflate.deflateSetHeader(this.strm, opt.header); - } -}; - -/** - * Deflate#push(data[, mode]) -> Boolean - * - data (Uint8Array|Array|String): input data. Strings will be converted to - * utf8 byte sequence. - * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes. - * See constants. Skipped or `false` means Z_NO_FLUSH, `true` meansh Z_FINISH. - * - * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with - * new compressed chunks. Returns `true` on success. The last data block must have - * mode Z_FINISH (or `true`). That flush internal pending buffers and call - * [[Deflate#onEnd]]. - * - * On fail call [[Deflate#onEnd]] with error code and return false. - * - * We strongly recommend to use `Uint8Array` on input for best speed (output - * array format is detected automatically). Also, don't skip last param and always - * use the same type in your code (boolean or number). That will improve JS speed. - * - * For regular `Array`-s make sure all elements are [0..255]. - * - * ##### Example - * - * ```javascript - * push(chunk, false); // push one of data chunks - * ... - * push(chunk, true); // push last chunk - * ``` - **/ -Deflate.prototype.push = function(data, mode) { - var strm = this.strm; - var chunkSize = this.options.chunkSize; - var status, _mode; - - if (this.ended) { return false; } - - _mode = (mode === ~~mode) ? mode : ((mode === true) ? Z_FINISH : Z_NO_FLUSH); - - // Convert data if needed - if (typeof data === 'string') { - // If we need to compress text, change encoding to utf8. - strm.input = strings.string2buf(data); - } else { - strm.input = data; - } - - strm.next_in = 0; - strm.avail_in = strm.input.length; - - do { - if (strm.avail_out === 0) { - strm.output = new utils.Buf8(chunkSize); - strm.next_out = 0; - strm.avail_out = chunkSize; - } - status = zlib_deflate.deflate(strm, _mode); /* no bad return value */ - - if (status !== Z_STREAM_END && status !== Z_OK) { - this.onEnd(status); - this.ended = true; - return false; - } - if (strm.avail_out === 0 || (strm.avail_in === 0 && _mode === Z_FINISH)) { - if (this.options.to === 'string') { - this.onData(strings.buf2binstring(utils.shrinkBuf(strm.output, strm.next_out))); - } else { - this.onData(utils.shrinkBuf(strm.output, strm.next_out)); - } - } - } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== Z_STREAM_END); - - // Finalize on the last chunk. - if (_mode === Z_FINISH) { - status = zlib_deflate.deflateEnd(this.strm); - this.onEnd(status); - this.ended = true; - return status === Z_OK; - } - - return true; -}; - - -/** - * Deflate#onData(chunk) -> Void - * - chunk (Uint8Array|Array|String): ouput data. Type of array depends - * on js engine support. When string output requested, each chunk - * will be string. - * - * By default, stores data blocks in `chunks[]` property and glue - * those in `onEnd`. Override this handler, if you need another behaviour. - **/ -Deflate.prototype.onData = function(chunk) { - this.chunks.push(chunk); -}; - - -/** - * Deflate#onEnd(status) -> Void - * - status (Number): deflate status. 0 (Z_OK) on success, - * other if not. - * - * Called once after you tell deflate that input stream complete - * or error happenned. By default - join collected chunks, - * free memory and fill `results` / `err` properties. - **/ -Deflate.prototype.onEnd = function(status) { - // On success - join - if (status === Z_OK) { - if (this.options.to === 'string') { - this.result = this.chunks.join(''); - } else { - this.result = utils.flattenChunks(this.chunks); - } - } - this.chunks = []; - this.err = status; - this.msg = this.strm.msg; -}; - - -/** - * deflate(data[, options]) -> Uint8Array|Array|String - * - data (Uint8Array|Array|String): input data to compress. - * - options (Object): zlib deflate options. - * - * Compress `data` with deflate alrorythm and `options`. - * - * Supported options are: - * - * - level - * - windowBits - * - memLevel - * - strategy - * - * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced) - * for more information on these. - * - * Sugar (options): - * - * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify - * negative windowBits implicitly. - * - `to` (String) - if equal to 'string', then result will be "binary string" - * (each char code [0..255]) - * - * ##### Example: - * - * ```javascript - * var pako = require('pako') - * , data = Uint8Array([1,2,3,4,5,6,7,8,9]); - * - * console.log(pako.deflate(data)); - * ``` - **/ -function deflate(input, options) { - var deflator = new Deflate(options); - - deflator.push(input, true); - - // That will never happens, if you don't cheat with options :) - if (deflator.err) { throw deflator.msg; } - - return deflator.result; -} - - -/** - * deflateRaw(data[, options]) -> Uint8Array|Array|String - * - data (Uint8Array|Array|String): input data to compress. - * - options (Object): zlib deflate options. - * - * The same as [[deflate]], but creates raw data, without wrapper - * (header and adler32 crc). - **/ -function deflateRaw(input, options) { - options = options || {}; - options.raw = true; - return deflate(input, options); -} - - -/** - * gzip(data[, options]) -> Uint8Array|Array|String - * - data (Uint8Array|Array|String): input data to compress. - * - options (Object): zlib deflate options. - * - * The same as [[deflate]], but create gzip wrapper instead of - * deflate one. - **/ -function gzip(input, options) { - options = options || {}; - options.gzip = true; - return deflate(input, options); -} - - -exports.Deflate = Deflate; -exports.deflate = deflate; -exports.deflateRaw = deflateRaw; -exports.gzip = gzip; -},{"./utils/common":27,"./utils/strings":28,"./zlib/deflate.js":32,"./zlib/messages":37,"./zlib/zstream":39}],26:[function(_dereq_,module,exports){ -'use strict'; - - -var zlib_inflate = _dereq_('./zlib/inflate.js'); -var utils = _dereq_('./utils/common'); -var strings = _dereq_('./utils/strings'); -var c = _dereq_('./zlib/constants'); -var msg = _dereq_('./zlib/messages'); -var zstream = _dereq_('./zlib/zstream'); -var gzheader = _dereq_('./zlib/gzheader'); - - -/** - * class Inflate - * - * Generic JS-style wrapper for zlib calls. If you don't need - * streaming behaviour - use more simple functions: [[inflate]] - * and [[inflateRaw]]. - **/ - -/* internal - * inflate.chunks -> Array - * - * Chunks of output data, if [[Inflate#onData]] not overriden. - **/ - -/** - * Inflate.result -> Uint8Array|Array|String - * - * Uncompressed result, generated by default [[Inflate#onData]] - * and [[Inflate#onEnd]] handlers. Filled after you push last chunk - * (call [[Inflate#push]] with `Z_FINISH` / `true` param). - **/ - -/** - * Inflate.err -> Number - * - * Error code after inflate finished. 0 (Z_OK) on success. - * Should be checked if broken data possible. - **/ - -/** - * Inflate.msg -> String - * - * Error message, if [[Inflate.err]] != 0 - **/ - - -/** - * new Inflate(options) - * - options (Object): zlib inflate options. - * - * Creates new inflator instance with specified params. Throws exception - * on bad params. Supported options: - * - * - `windowBits` - * - * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced) - * for more information on these. - * - * Additional options, for internal needs: - * - * - `chunkSize` - size of generated data chunks (16K by default) - * - `raw` (Boolean) - do raw inflate - * - `to` (String) - if equal to 'string', then result will be converted - * from utf8 to utf16 (javascript) string. When string output requested, - * chunk length can differ from `chunkSize`, depending on content. - * - * By default, when no options set, autodetect deflate/gzip data format via - * wrapper header. - * - * ##### Example: - * - * ```javascript - * var pako = require('pako') - * , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9]) - * , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]); - * - * var inflate = new pako.Inflate({ level: 3}); - * - * inflate.push(chunk1, false); - * inflate.push(chunk2, true); // true -> last chunk - * - * if (inflate.err) { throw new Error(inflate.err); } - * - * console.log(inflate.result); - * ``` - **/ -var Inflate = function(options) { - - this.options = utils.assign({ - chunkSize: 16384, - windowBits: 0, - to: '' - }, options || {}); - - var opt = this.options; - - // Force window size for `raw` data, if not set directly, - // because we have no header for autodetect. - if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) { - opt.windowBits = -opt.windowBits; - if (opt.windowBits === 0) { opt.windowBits = -15; } - } - - // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate - if ((opt.windowBits >= 0) && (opt.windowBits < 16) && - !(options && options.windowBits)) { - opt.windowBits += 32; - } - - // Gzip header has no info about windows size, we can do autodetect only - // for deflate. So, if window size not set, force it to max when gzip possible - if ((opt.windowBits > 15) && (opt.windowBits < 48)) { - // bit 3 (16) -> gzipped data - // bit 4 (32) -> autodetect gzip/deflate - if ((opt.windowBits & 15) === 0) { - opt.windowBits |= 15; - } - } - - this.err = 0; // error code, if happens (0 = Z_OK) - this.msg = ''; // error message - this.ended = false; // used to avoid multiple onEnd() calls - this.chunks = []; // chunks of compressed data - - this.strm = new zstream(); - this.strm.avail_out = 0; - - var status = zlib_inflate.inflateInit2( - this.strm, - opt.windowBits - ); - - if (status !== c.Z_OK) { - throw new Error(msg[status]); - } - - this.header = new gzheader(); - - zlib_inflate.inflateGetHeader(this.strm, this.header); -}; - -/** - * Inflate#push(data[, mode]) -> Boolean - * - data (Uint8Array|Array|String): input data - * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes. - * See constants. Skipped or `false` means Z_NO_FLUSH, `true` meansh Z_FINISH. - * - * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with - * new output chunks. Returns `true` on success. The last data block must have - * mode Z_FINISH (or `true`). That flush internal pending buffers and call - * [[Inflate#onEnd]]. - * - * On fail call [[Inflate#onEnd]] with error code and return false. - * - * We strongly recommend to use `Uint8Array` on input for best speed (output - * format is detected automatically). Also, don't skip last param and always - * use the same type in your code (boolean or number). That will improve JS speed. - * - * For regular `Array`-s make sure all elements are [0..255]. - * - * ##### Example - * - * ```javascript - * push(chunk, false); // push one of data chunks - * ... - * push(chunk, true); // push last chunk - * ``` - **/ -Inflate.prototype.push = function(data, mode) { - var strm = this.strm; - var chunkSize = this.options.chunkSize; - var status, _mode; - var next_out_utf8, tail, utf8str; - - if (this.ended) { return false; } - _mode = (mode === ~~mode) ? mode : ((mode === true) ? c.Z_FINISH : c.Z_NO_FLUSH); - - // Convert data if needed - if (typeof data === 'string') { - // Only binary strings can be decompressed on practice - strm.input = strings.binstring2buf(data); - } else { - strm.input = data; - } - - strm.next_in = 0; - strm.avail_in = strm.input.length; - - do { - if (strm.avail_out === 0) { - strm.output = new utils.Buf8(chunkSize); - strm.next_out = 0; - strm.avail_out = chunkSize; - } - - status = zlib_inflate.inflate(strm, c.Z_NO_FLUSH); /* no bad return value */ - - if (status !== c.Z_STREAM_END && status !== c.Z_OK) { - this.onEnd(status); - this.ended = true; - return false; - } - - if (strm.next_out) { - if (strm.avail_out === 0 || status === c.Z_STREAM_END || (strm.avail_in === 0 && _mode === c.Z_FINISH)) { - - if (this.options.to === 'string') { - - next_out_utf8 = strings.utf8border(strm.output, strm.next_out); - - tail = strm.next_out - next_out_utf8; - utf8str = strings.buf2string(strm.output, next_out_utf8); - - // move tail - strm.next_out = tail; - strm.avail_out = chunkSize - tail; - if (tail) { utils.arraySet(strm.output, strm.output, next_out_utf8, tail, 0); } - - this.onData(utf8str); - - } else { - this.onData(utils.shrinkBuf(strm.output, strm.next_out)); - } - } - } - } while ((strm.avail_in > 0) && status !== c.Z_STREAM_END); - - if (status === c.Z_STREAM_END) { - _mode = c.Z_FINISH; - } - // Finalize on the last chunk. - if (_mode === c.Z_FINISH) { - status = zlib_inflate.inflateEnd(this.strm); - this.onEnd(status); - this.ended = true; - return status === c.Z_OK; - } - - return true; -}; - - -/** - * Inflate#onData(chunk) -> Void - * - chunk (Uint8Array|Array|String): ouput data. Type of array depends - * on js engine support. When string output requested, each chunk - * will be string. - * - * By default, stores data blocks in `chunks[]` property and glue - * those in `onEnd`. Override this handler, if you need another behaviour. - **/ -Inflate.prototype.onData = function(chunk) { - this.chunks.push(chunk); -}; - - -/** - * Inflate#onEnd(status) -> Void - * - status (Number): inflate status. 0 (Z_OK) on success, - * other if not. - * - * Called once after you tell inflate that input stream complete - * or error happenned. By default - join collected chunks, - * free memory and fill `results` / `err` properties. - **/ -Inflate.prototype.onEnd = function(status) { - // On success - join - if (status === c.Z_OK) { - if (this.options.to === 'string') { - // Glue & convert here, until we teach pako to send - // utf8 alligned strings to onData - this.result = this.chunks.join(''); - } else { - this.result = utils.flattenChunks(this.chunks); - } - } - this.chunks = []; - this.err = status; - this.msg = this.strm.msg; -}; - - -/** - * inflate(data[, options]) -> Uint8Array|Array|String - * - data (Uint8Array|Array|String): input data to decompress. - * - options (Object): zlib inflate options. - * - * Decompress `data` with inflate/ungzip and `options`. Autodetect - * format via wrapper header by default. That's why we don't provide - * separate `ungzip` method. - * - * Supported options are: - * - * - windowBits - * - * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced) - * for more information. - * - * Sugar (options): - * - * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify - * negative windowBits implicitly. - * - `to` (String) - if equal to 'string', then result will be converted - * from utf8 to utf16 (javascript) string. When string output requested, - * chunk length can differ from `chunkSize`, depending on content. - * - * - * ##### Example: - * - * ```javascript - * var pako = require('pako') - * , input = pako.deflate([1,2,3,4,5,6,7,8,9]) - * , output; - * - * try { - * output = pako.inflate(input); - * } catch (err) - * console.log(err); - * } - * ``` - **/ -function inflate(input, options) { - var inflator = new Inflate(options); - - inflator.push(input, true); - - // That will never happens, if you don't cheat with options :) - if (inflator.err) { throw inflator.msg; } - - return inflator.result; -} - - -/** - * inflateRaw(data[, options]) -> Uint8Array|Array|String - * - data (Uint8Array|Array|String): input data to decompress. - * - options (Object): zlib inflate options. - * - * The same as [[inflate]], but creates raw data, without wrapper - * (header and adler32 crc). - **/ -function inflateRaw(input, options) { - options = options || {}; - options.raw = true; - return inflate(input, options); -} - - -/** - * ungzip(data[, options]) -> Uint8Array|Array|String - * - data (Uint8Array|Array|String): input data to decompress. - * - options (Object): zlib inflate options. - * - * Just shortcut to [[inflate]], because it autodetects format - * by header.content. Done for convenience. - **/ - - -exports.Inflate = Inflate; -exports.inflate = inflate; -exports.inflateRaw = inflateRaw; -exports.ungzip = inflate; - -},{"./utils/common":27,"./utils/strings":28,"./zlib/constants":30,"./zlib/gzheader":33,"./zlib/inflate.js":35,"./zlib/messages":37,"./zlib/zstream":39}],27:[function(_dereq_,module,exports){ -'use strict'; - - -var TYPED_OK = (typeof Uint8Array !== 'undefined') && - (typeof Uint16Array !== 'undefined') && - (typeof Int32Array !== 'undefined'); - - -exports.assign = function (obj /*from1, from2, from3, ...*/) { - var sources = Array.prototype.slice.call(arguments, 1); - while (sources.length) { - var source = sources.shift(); - if (!source) { continue; } - - if (typeof(source) !== 'object') { - throw new TypeError(source + 'must be non-object'); - } - - for (var p in source) { - if (source.hasOwnProperty(p)) { - obj[p] = source[p]; - } - } - } - - return obj; -}; - - -// reduce buffer size, avoiding mem copy -exports.shrinkBuf = function (buf, size) { - if (buf.length === size) { return buf; } - if (buf.subarray) { return buf.subarray(0, size); } - buf.length = size; - return buf; -}; - - -var fnTyped = { - arraySet: function (dest, src, src_offs, len, dest_offs) { - if (src.subarray && dest.subarray) { - dest.set(src.subarray(src_offs, src_offs+len), dest_offs); - return; - } - // Fallback to ordinary array - for(var i=0; i= 252 ? 6 : i >= 248 ? 5 : i >= 240 ? 4 : i >= 224 ? 3 : i >= 192 ? 2 : 1); -} -_utf8len[254]=_utf8len[254]=1; // Invalid sequence start - - -// convert string to array (typed, when possible) -exports.string2buf = function (str) { - var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0; - - // count binary size - for (m_pos = 0; m_pos < str_len; m_pos++) { - c = str.charCodeAt(m_pos); - if ((c & 0xfc00) === 0xd800 && (m_pos+1 < str_len)) { - c2 = str.charCodeAt(m_pos+1); - if ((c2 & 0xfc00) === 0xdc00) { - c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00); - m_pos++; - } - } - buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4; - } - - // allocate buffer - buf = new utils.Buf8(buf_len); - - // convert - for (i=0, m_pos = 0; i < buf_len; m_pos++) { - c = str.charCodeAt(m_pos); - if ((c & 0xfc00) === 0xd800 && (m_pos+1 < str_len)) { - c2 = str.charCodeAt(m_pos+1); - if ((c2 & 0xfc00) === 0xdc00) { - c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00); - m_pos++; - } - } - if (c < 0x80) { - /* one byte */ - buf[i++] = c; - } else if (c < 0x800) { - /* two bytes */ - buf[i++] = 0xC0 | (c >>> 6); - buf[i++] = 0x80 | (c & 0x3f); - } else if (c < 0x10000) { - /* three bytes */ - buf[i++] = 0xE0 | (c >>> 12); - buf[i++] = 0x80 | (c >>> 6 & 0x3f); - buf[i++] = 0x80 | (c & 0x3f); - } else { - /* four bytes */ - buf[i++] = 0xf0 | (c >>> 18); - buf[i++] = 0x80 | (c >>> 12 & 0x3f); - buf[i++] = 0x80 | (c >>> 6 & 0x3f); - buf[i++] = 0x80 | (c & 0x3f); - } - } - - return buf; -}; - -// Helper (used in 2 places) -function buf2binstring(buf, len) { - // use fallback for big arrays to avoid stack overflow - if (len < 65537) { - if ((buf.subarray && STR_APPLY_UIA_OK) || (!buf.subarray && STR_APPLY_OK)) { - return String.fromCharCode.apply(null, utils.shrinkBuf(buf, len)); - } - } - - var result = ''; - for(var i=0; i < len; i++) { - result += String.fromCharCode(buf[i]); - } - return result; -} - - -// Convert byte array to binary string -exports.buf2binstring = function(buf) { - return buf2binstring(buf, buf.length); -}; - - -// Convert binary string (typed, when possible) -exports.binstring2buf = function(str) { - var buf = new utils.Buf8(str.length); - for(var i=0, len=buf.length; i < len; i++) { - buf[i] = str.charCodeAt(i); - } - return buf; -}; - - -// convert array to string -exports.buf2string = function (buf, max) { - var i, out, c, c_len; - var len = max || buf.length; - - // Reserve max possible length (2 words per char) - // NB: by unknown reasons, Array is significantly faster for - // String.fromCharCode.apply than Uint16Array. - var utf16buf = new Array(len*2); - - for (out=0, i=0; i 4) { utf16buf[out++] = 0xfffd; i += c_len-1; continue; } - - // apply mask on first byte - c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07; - // join the rest - while (c_len > 1 && i < len) { - c = (c << 6) | (buf[i++] & 0x3f); - c_len--; - } - - // terminated by end of string? - if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; } - - if (c < 0x10000) { - utf16buf[out++] = c; - } else { - c -= 0x10000; - utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff); - utf16buf[out++] = 0xdc00 | (c & 0x3ff); - } - } - - return buf2binstring(utf16buf, out); -}; - - -// Calculate max possible position in utf8 buffer, -// that will not break sequence. If that's not possible -// - (very small limits) return max size as is. -// -// buf[] - utf8 bytes array -// max - length limit (mandatory); -exports.utf8border = function(buf, max) { - var pos; - - max = max || buf.length; - if (max > buf.length) { max = buf.length; } - - // go back from last position, until start of sequence found - pos = max-1; - while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; } - - // Fuckup - very small and broken sequence, - // return max, because we should return something anyway. - if (pos < 0) { return max; } - - // If we came to start of buffer - that means vuffer is too small, - // return max too. - if (pos === 0) { return max; } - - return (pos + _utf8len[buf[pos]] > max) ? pos : max; -}; - -},{"./common":27}],29:[function(_dereq_,module,exports){ -'use strict'; - -// Note: adler32 takes 12% for level 0 and 2% for level 6. -// It doesn't worth to make additional optimizationa as in original. -// Small size is preferable. - -function adler32(adler, buf, len, pos) { - var s1 = (adler & 0xffff) |0 - , s2 = ((adler >>> 16) & 0xffff) |0 - , n = 0; - - while (len !== 0) { - // Set limit ~ twice less than 5552, to keep - // s2 in 31-bits, because we force signed ints. - // in other case %= will fail. - n = len > 2000 ? 2000 : len; - len -= n; - - do { - s1 = (s1 + buf[pos++]) |0; - s2 = (s2 + s1) |0; - } while (--n); - - s1 %= 65521; - s2 %= 65521; - } - - return (s1 | (s2 << 16)) |0; -} - - -module.exports = adler32; -},{}],30:[function(_dereq_,module,exports){ -module.exports = { - - /* Allowed flush values; see deflate() and inflate() below for details */ - Z_NO_FLUSH: 0, - Z_PARTIAL_FLUSH: 1, - Z_SYNC_FLUSH: 2, - Z_FULL_FLUSH: 3, - Z_FINISH: 4, - Z_BLOCK: 5, - Z_TREES: 6, - - /* Return codes for the compression/decompression functions. Negative values - * are errors, positive values are used for special but normal events. - */ - Z_OK: 0, - Z_STREAM_END: 1, - Z_NEED_DICT: 2, - Z_ERRNO: -1, - Z_STREAM_ERROR: -2, - Z_DATA_ERROR: -3, - //Z_MEM_ERROR: -4, - Z_BUF_ERROR: -5, - //Z_VERSION_ERROR: -6, - - /* compression levels */ - Z_NO_COMPRESSION: 0, - Z_BEST_SPEED: 1, - Z_BEST_COMPRESSION: 9, - Z_DEFAULT_COMPRESSION: -1, - - - Z_FILTERED: 1, - Z_HUFFMAN_ONLY: 2, - Z_RLE: 3, - Z_FIXED: 4, - Z_DEFAULT_STRATEGY: 0, - - /* Possible values of the data_type field (though see inflate()) */ - Z_BINARY: 0, - Z_TEXT: 1, - //Z_ASCII: 1, // = Z_TEXT (deprecated) - Z_UNKNOWN: 2, - - /* The deflate compression method */ - Z_DEFLATED: 8 - //Z_NULL: null // Use -1 or null inline, depending on var type -}; -},{}],31:[function(_dereq_,module,exports){ -'use strict'; - -// Note: we can't get significant speed boost here. -// So write code to minimize size - no pregenerated tables -// and array tools dependencies. - - -// Use ordinary array, since untyped makes no boost here -function makeTable() { - var c, table = []; - - for(var n =0; n < 256; n++){ - c = n; - for(var k =0; k < 8; k++){ - c = ((c&1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1)); - } - table[n] = c; - } - - return table; -} - -// Create table on load. Just 255 signed longs. Not a problem. -var crcTable = makeTable(); - - -function crc32(crc, buf, len, pos) { - var t = crcTable - , end = pos + len; - - crc = crc ^ (-1); - - for (var i = pos; i < end; i++ ) { - crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF]; - } - - return (crc ^ (-1)); // >>> 0; -} - - -module.exports = crc32; -},{}],32:[function(_dereq_,module,exports){ -'use strict'; - -var utils = _dereq_('../utils/common'); -var trees = _dereq_('./trees'); -var adler32 = _dereq_('./adler32'); -var crc32 = _dereq_('./crc32'); -var msg = _dereq_('./messages'); - -/* Public constants ==========================================================*/ -/* ===========================================================================*/ - - -/* Allowed flush values; see deflate() and inflate() below for details */ -var Z_NO_FLUSH = 0; -var Z_PARTIAL_FLUSH = 1; -//var Z_SYNC_FLUSH = 2; -var Z_FULL_FLUSH = 3; -var Z_FINISH = 4; -var Z_BLOCK = 5; -//var Z_TREES = 6; - - -/* Return codes for the compression/decompression functions. Negative values - * are errors, positive values are used for special but normal events. - */ -var Z_OK = 0; -var Z_STREAM_END = 1; -//var Z_NEED_DICT = 2; -//var Z_ERRNO = -1; -var Z_STREAM_ERROR = -2; -var Z_DATA_ERROR = -3; -//var Z_MEM_ERROR = -4; -var Z_BUF_ERROR = -5; -//var Z_VERSION_ERROR = -6; - - -/* compression levels */ -//var Z_NO_COMPRESSION = 0; -//var Z_BEST_SPEED = 1; -//var Z_BEST_COMPRESSION = 9; -var Z_DEFAULT_COMPRESSION = -1; - - -var Z_FILTERED = 1; -var Z_HUFFMAN_ONLY = 2; -var Z_RLE = 3; -var Z_FIXED = 4; -var Z_DEFAULT_STRATEGY = 0; - -/* Possible values of the data_type field (though see inflate()) */ -//var Z_BINARY = 0; -//var Z_TEXT = 1; -//var Z_ASCII = 1; // = Z_TEXT -var Z_UNKNOWN = 2; - - -/* The deflate compression method */ -var Z_DEFLATED = 8; - -/*============================================================================*/ - - -var MAX_MEM_LEVEL = 9; -/* Maximum value for memLevel in deflateInit2 */ -var MAX_WBITS = 15; -/* 32K LZ77 window */ -var DEF_MEM_LEVEL = 8; - - -var LENGTH_CODES = 29; -/* number of length codes, not counting the special END_BLOCK code */ -var LITERALS = 256; -/* number of literal bytes 0..255 */ -var L_CODES = LITERALS + 1 + LENGTH_CODES; -/* number of Literal or Length codes, including the END_BLOCK code */ -var D_CODES = 30; -/* number of distance codes */ -var BL_CODES = 19; -/* number of codes used to transfer the bit lengths */ -var HEAP_SIZE = 2*L_CODES + 1; -/* maximum heap size */ -var MAX_BITS = 15; -/* All codes must not exceed MAX_BITS bits */ - -var MIN_MATCH = 3; -var MAX_MATCH = 258; -var MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1); - -var PRESET_DICT = 0x20; - -var INIT_STATE = 42; -var EXTRA_STATE = 69; -var NAME_STATE = 73; -var COMMENT_STATE = 91; -var HCRC_STATE = 103; -var BUSY_STATE = 113; -var FINISH_STATE = 666; - -var BS_NEED_MORE = 1; /* block not completed, need more input or more output */ -var BS_BLOCK_DONE = 2; /* block flush performed */ -var BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */ -var BS_FINISH_DONE = 4; /* finish done, accept no more input or output */ - -var OS_CODE = 0x03; // Unix :) . Don't detect, use this default. - -function err(strm, errorCode) { - strm.msg = msg[errorCode]; - return errorCode; -} - -function rank(f) { - return ((f) << 1) - ((f) > 4 ? 9 : 0); -} - -function zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } } - - -/* ========================================================================= - * Flush as much pending output as possible. All deflate() output goes - * through this function so some applications may wish to modify it - * to avoid allocating a large strm->output buffer and copying into it. - * (See also read_buf()). - */ -function flush_pending(strm) { - var s = strm.state; - - //_tr_flush_bits(s); - var len = s.pending; - if (len > strm.avail_out) { - len = strm.avail_out; - } - if (len === 0) { return; } - - utils.arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out); - strm.next_out += len; - s.pending_out += len; - strm.total_out += len; - strm.avail_out -= len; - s.pending -= len; - if (s.pending === 0) { - s.pending_out = 0; - } -} - - -function flush_block_only (s, last) { - trees._tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last); - s.block_start = s.strstart; - flush_pending(s.strm); -} - - -function put_byte(s, b) { - s.pending_buf[s.pending++] = b; -} - - -/* ========================================================================= - * Put a short in the pending buffer. The 16-bit value is put in MSB order. - * IN assertion: the stream state is correct and there is enough room in - * pending_buf. - */ -function putShortMSB(s, b) { -// put_byte(s, (Byte)(b >> 8)); -// put_byte(s, (Byte)(b & 0xff)); - s.pending_buf[s.pending++] = (b >>> 8) & 0xff; - s.pending_buf[s.pending++] = b & 0xff; -} - - -/* =========================================================================== - * Read a new buffer from the current input stream, update the adler32 - * and total number of bytes read. All deflate() input goes through - * this function so some applications may wish to modify it to avoid - * allocating a large strm->input buffer and copying from it. - * (See also flush_pending()). - */ -function read_buf(strm, buf, start, size) { - var len = strm.avail_in; - - if (len > size) { len = size; } - if (len === 0) { return 0; } - - strm.avail_in -= len; - - utils.arraySet(buf, strm.input, strm.next_in, len, start); - if (strm.state.wrap === 1) { - strm.adler = adler32(strm.adler, buf, len, start); - } - - else if (strm.state.wrap === 2) { - strm.adler = crc32(strm.adler, buf, len, start); - } - - strm.next_in += len; - strm.total_in += len; - - return len; -} - - -/* =========================================================================== - * Set match_start to the longest match starting at the given string and - * return its length. Matches shorter or equal to prev_length are discarded, - * in which case the result is equal to prev_length and match_start is - * garbage. - * IN assertions: cur_match is the head of the hash chain for the current - * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1 - * OUT assertion: the match length is not greater than s->lookahead. - */ -function longest_match(s, cur_match) { - var chain_length = s.max_chain_length; /* max hash chain length */ - var scan = s.strstart; /* current string */ - var match; /* matched string */ - var len; /* length of current match */ - var best_len = s.prev_length; /* best match length so far */ - var nice_match = s.nice_match; /* stop if match long enough */ - var limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ? - s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/; - - var _win = s.window; // shortcut - - var wmask = s.w_mask; - var prev = s.prev; - - /* Stop when cur_match becomes <= limit. To simplify the code, - * we prevent matches with the string of window index 0. - */ - - var strend = s.strstart + MAX_MATCH; - var scan_end1 = _win[scan + best_len - 1]; - var scan_end = _win[scan + best_len]; - - /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16. - * It is easy to get rid of this optimization if necessary. - */ - // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever"); - - /* Do not waste too much time if we already have a good match: */ - if (s.prev_length >= s.good_match) { - chain_length >>= 2; - } - /* Do not look for matches beyond the end of the input. This is necessary - * to make deflate deterministic. - */ - if (nice_match > s.lookahead) { nice_match = s.lookahead; } - - // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead"); - - do { - // Assert(cur_match < s->strstart, "no future"); - match = cur_match; - - /* Skip to next match if the match length cannot increase - * or if the match length is less than 2. Note that the checks below - * for insufficient lookahead only occur occasionally for performance - * reasons. Therefore uninitialized memory will be accessed, and - * conditional jumps will be made that depend on those values. - * However the length of the match is limited to the lookahead, so - * the output of deflate is not affected by the uninitialized values. - */ - - if (_win[match + best_len] !== scan_end || - _win[match + best_len - 1] !== scan_end1 || - _win[match] !== _win[scan] || - _win[++match] !== _win[scan + 1]) { - continue; - } - - /* The check at best_len-1 can be removed because it will be made - * again later. (This heuristic is not always a win.) - * It is not necessary to compare scan[2] and match[2] since they - * are always equal when the other bytes match, given that - * the hash keys are equal and that HASH_BITS >= 8. - */ - scan += 2; - match++; - // Assert(*scan == *match, "match[2]?"); - - /* We check for insufficient lookahead only every 8th comparison; - * the 256th check will be made at strstart+258. - */ - do { - /*jshint noempty:false*/ - } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] && - _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && - _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && - _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && - scan < strend); - - // Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan"); - - len = MAX_MATCH - (strend - scan); - scan = strend - MAX_MATCH; - - if (len > best_len) { - s.match_start = cur_match; - best_len = len; - if (len >= nice_match) { - break; - } - scan_end1 = _win[scan + best_len - 1]; - scan_end = _win[scan + best_len]; - } - } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0); - - if (best_len <= s.lookahead) { - return best_len; - } - return s.lookahead; -} - - -/* =========================================================================== - * Fill the window when the lookahead becomes insufficient. - * Updates strstart and lookahead. - * - * IN assertion: lookahead < MIN_LOOKAHEAD - * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD - * At least one byte has been read, or avail_in == 0; reads are - * performed for at least two bytes (required for the zip translate_eol - * option -- not supported here). - */ -function fill_window(s) { - var _w_size = s.w_size; - var p, n, m, more, str; - - //Assert(s->lookahead < MIN_LOOKAHEAD, "already enough lookahead"); - - do { - more = s.window_size - s.lookahead - s.strstart; - - // JS ints have 32 bit, block below not needed - /* Deal with !@#$% 64K limit: */ - //if (sizeof(int) <= 2) { - // if (more == 0 && s->strstart == 0 && s->lookahead == 0) { - // more = wsize; - // - // } else if (more == (unsigned)(-1)) { - // /* Very unlikely, but possible on 16 bit machine if - // * strstart == 0 && lookahead == 1 (input done a byte at time) - // */ - // more--; - // } - //} - - - /* If the window is almost full and there is insufficient lookahead, - * move the upper half to the lower one to make room in the upper half. - */ - if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) { - - utils.arraySet(s.window, s.window, _w_size, _w_size, 0); - s.match_start -= _w_size; - s.strstart -= _w_size; - /* we now have strstart >= MAX_DIST */ - s.block_start -= _w_size; - - /* Slide the hash table (could be avoided with 32 bit values - at the expense of memory usage). We slide even when level == 0 - to keep the hash table consistent if we switch back to level > 0 - later. (Using level 0 permanently is not an optimal usage of - zlib, so we don't care about this pathological case.) - */ - - n = s.hash_size; - p = n; - do { - m = s.head[--p]; - s.head[p] = (m >= _w_size ? m - _w_size : 0); - } while (--n); - - n = _w_size; - p = n; - do { - m = s.prev[--p]; - s.prev[p] = (m >= _w_size ? m - _w_size : 0); - /* If n is not on any hash chain, prev[n] is garbage but - * its value will never be used. - */ - } while (--n); - - more += _w_size; - } - if (s.strm.avail_in === 0) { - break; - } - - /* If there was no sliding: - * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 && - * more == window_size - lookahead - strstart - * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1) - * => more >= window_size - 2*WSIZE + 2 - * In the BIG_MEM or MMAP case (not yet supported), - * window_size == input_size + MIN_LOOKAHEAD && - * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD. - * Otherwise, window_size == 2*WSIZE so more >= 2. - * If there was sliding, more >= WSIZE. So in all cases, more >= 2. - */ - //Assert(more >= 2, "more < 2"); - n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more); - s.lookahead += n; - - /* Initialize the hash value now that we have some input: */ - if (s.lookahead + s.insert >= MIN_MATCH) { - str = s.strstart - s.insert; - s.ins_h = s.window[str]; - - /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */ - s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + 1]) & s.hash_mask; -//#if MIN_MATCH != 3 -// Call update_hash() MIN_MATCH-3 more times -//#endif - while (s.insert) { - /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */ - s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH-1]) & s.hash_mask; - - s.prev[str & s.w_mask] = s.head[s.ins_h]; - s.head[s.ins_h] = str; - str++; - s.insert--; - if (s.lookahead + s.insert < MIN_MATCH) { - break; - } - } - } - /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage, - * but this is not important since only literal bytes will be emitted. - */ - - } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0); - - /* If the WIN_INIT bytes after the end of the current data have never been - * written, then zero those bytes in order to avoid memory check reports of - * the use of uninitialized (or uninitialised as Julian writes) bytes by - * the longest match routines. Update the high water mark for the next - * time through here. WIN_INIT is set to MAX_MATCH since the longest match - * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead. - */ -// if (s.high_water < s.window_size) { -// var curr = s.strstart + s.lookahead; -// var init = 0; -// -// if (s.high_water < curr) { -// /* Previous high water mark below current data -- zero WIN_INIT -// * bytes or up to end of window, whichever is less. -// */ -// init = s.window_size - curr; -// if (init > WIN_INIT) -// init = WIN_INIT; -// zmemzero(s->window + curr, (unsigned)init); -// s->high_water = curr + init; -// } -// else if (s->high_water < (ulg)curr + WIN_INIT) { -// /* High water mark at or above current data, but below current data -// * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up -// * to end of window, whichever is less. -// */ -// init = (ulg)curr + WIN_INIT - s->high_water; -// if (init > s->window_size - s->high_water) -// init = s->window_size - s->high_water; -// zmemzero(s->window + s->high_water, (unsigned)init); -// s->high_water += init; -// } -// } -// -// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD, -// "not enough room for search"); -} - -/* =========================================================================== - * Copy without compression as much as possible from the input stream, return - * the current block state. - * This function does not insert new strings in the dictionary since - * uncompressible data is probably not useful. This function is used - * only for the level=0 compression option. - * NOTE: this function should be optimized to avoid extra copying from - * window to pending_buf. - */ -function deflate_stored(s, flush) { - /* Stored blocks are limited to 0xffff bytes, pending_buf is limited - * to pending_buf_size, and each stored block has a 5 byte header: - */ - var max_block_size = 0xffff; - - if (max_block_size > s.pending_buf_size - 5) { - max_block_size = s.pending_buf_size - 5; - } - - /* Copy as much as possible from input to output: */ - for (;;) { - /* Fill the window as much as possible: */ - if (s.lookahead <= 1) { - - //Assert(s->strstart < s->w_size+MAX_DIST(s) || - // s->block_start >= (long)s->w_size, "slide too late"); -// if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) || -// s.block_start >= s.w_size)) { -// throw new Error("slide too late"); -// } - - fill_window(s); - if (s.lookahead === 0 && flush === Z_NO_FLUSH) { - return BS_NEED_MORE; - } - - if (s.lookahead === 0) { - break; - } - /* flush the current block */ - } - //Assert(s->block_start >= 0L, "block gone"); -// if (s.block_start < 0) throw new Error("block gone"); - - s.strstart += s.lookahead; - s.lookahead = 0; - - /* Emit a stored block if pending_buf will be full: */ - var max_start = s.block_start + max_block_size; - - if (s.strstart === 0 || s.strstart >= max_start) { - /* strstart == 0 is possible when wraparound on 16-bit machine */ - s.lookahead = s.strstart - max_start; - s.strstart = max_start; - /*** FLUSH_BLOCK(s, 0); ***/ - flush_block_only(s, false); - if (s.strm.avail_out === 0) { - return BS_NEED_MORE; - } - /***/ - - - } - /* Flush if we may have to slide, otherwise block_start may become - * negative and the data will be gone: - */ - if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) { - /*** FLUSH_BLOCK(s, 0); ***/ - flush_block_only(s, false); - if (s.strm.avail_out === 0) { - return BS_NEED_MORE; - } - /***/ - } - } - - s.insert = 0; - - if (flush === Z_FINISH) { - /*** FLUSH_BLOCK(s, 1); ***/ - flush_block_only(s, true); - if (s.strm.avail_out === 0) { - return BS_FINISH_STARTED; - } - /***/ - return BS_FINISH_DONE; - } - - if (s.strstart > s.block_start) { - /*** FLUSH_BLOCK(s, 0); ***/ - flush_block_only(s, false); - if (s.strm.avail_out === 0) { - return BS_NEED_MORE; - } - /***/ - } - - return BS_NEED_MORE; -} - -/* =========================================================================== - * Compress as much as possible from the input stream, return the current - * block state. - * This function does not perform lazy evaluation of matches and inserts - * new strings in the dictionary only for unmatched strings or for short - * matches. It is used only for the fast compression options. - */ -function deflate_fast(s, flush) { - var hash_head; /* head of the hash chain */ - var bflush; /* set if current block must be flushed */ - - for (;;) { - /* Make sure that we always have enough lookahead, except - * at the end of the input file. We need MAX_MATCH bytes - * for the next match, plus MIN_MATCH bytes to insert the - * string following the next match. - */ - if (s.lookahead < MIN_LOOKAHEAD) { - fill_window(s); - if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) { - return BS_NEED_MORE; - } - if (s.lookahead === 0) { - break; /* flush the current block */ - } - } - - /* Insert the string window[strstart .. strstart+2] in the - * dictionary, and set hash_head to the head of the hash chain: - */ - hash_head = 0/*NIL*/; - if (s.lookahead >= MIN_MATCH) { - /*** INSERT_STRING(s, s.strstart, hash_head); ***/ - s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; - hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; - s.head[s.ins_h] = s.strstart; - /***/ - } - - /* Find the longest match, discarding those <= prev_length. - * At this point we have always match_length < MIN_MATCH - */ - if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) { - /* To simplify the code, we prevent matches with the string - * of window index 0 (in particular we have to avoid a match - * of the string with itself at the start of the input file). - */ - s.match_length = longest_match(s, hash_head); - /* longest_match() sets match_start */ - } - if (s.match_length >= MIN_MATCH) { - // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only - - /*** _tr_tally_dist(s, s.strstart - s.match_start, - s.match_length - MIN_MATCH, bflush); ***/ - bflush = trees._tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH); - - s.lookahead -= s.match_length; - - /* Insert new strings in the hash table only if the match length - * is not too large. This saves time but degrades compression. - */ - if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) { - s.match_length--; /* string at strstart already in table */ - do { - s.strstart++; - /*** INSERT_STRING(s, s.strstart, hash_head); ***/ - s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; - hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; - s.head[s.ins_h] = s.strstart; - /***/ - /* strstart never exceeds WSIZE-MAX_MATCH, so there are - * always MIN_MATCH bytes ahead. - */ - } while (--s.match_length !== 0); - s.strstart++; - } else - { - s.strstart += s.match_length; - s.match_length = 0; - s.ins_h = s.window[s.strstart]; - /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */ - s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + 1]) & s.hash_mask; - -//#if MIN_MATCH != 3 -// Call UPDATE_HASH() MIN_MATCH-3 more times -//#endif - /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not - * matter since it will be recomputed at next deflate call. - */ - } - } else { - /* No match, output a literal byte */ - //Tracevv((stderr,"%c", s.window[s.strstart])); - /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/ - bflush = trees._tr_tally(s, 0, s.window[s.strstart]); - - s.lookahead--; - s.strstart++; - } - if (bflush) { - /*** FLUSH_BLOCK(s, 0); ***/ - flush_block_only(s, false); - if (s.strm.avail_out === 0) { - return BS_NEED_MORE; - } - /***/ - } - } - s.insert = ((s.strstart < (MIN_MATCH-1)) ? s.strstart : MIN_MATCH-1); - if (flush === Z_FINISH) { - /*** FLUSH_BLOCK(s, 1); ***/ - flush_block_only(s, true); - if (s.strm.avail_out === 0) { - return BS_FINISH_STARTED; - } - /***/ - return BS_FINISH_DONE; - } - if (s.last_lit) { - /*** FLUSH_BLOCK(s, 0); ***/ - flush_block_only(s, false); - if (s.strm.avail_out === 0) { - return BS_NEED_MORE; - } - /***/ - } - return BS_BLOCK_DONE; -} - -/* =========================================================================== - * Same as above, but achieves better compression. We use a lazy - * evaluation for matches: a match is finally adopted only if there is - * no better match at the next window position. - */ -function deflate_slow(s, flush) { - var hash_head; /* head of hash chain */ - var bflush; /* set if current block must be flushed */ - - var max_insert; - - /* Process the input block. */ - for (;;) { - /* Make sure that we always have enough lookahead, except - * at the end of the input file. We need MAX_MATCH bytes - * for the next match, plus MIN_MATCH bytes to insert the - * string following the next match. - */ - if (s.lookahead < MIN_LOOKAHEAD) { - fill_window(s); - if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) { - return BS_NEED_MORE; - } - if (s.lookahead === 0) { break; } /* flush the current block */ - } - - /* Insert the string window[strstart .. strstart+2] in the - * dictionary, and set hash_head to the head of the hash chain: - */ - hash_head = 0/*NIL*/; - if (s.lookahead >= MIN_MATCH) { - /*** INSERT_STRING(s, s.strstart, hash_head); ***/ - s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; - hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; - s.head[s.ins_h] = s.strstart; - /***/ - } - - /* Find the longest match, discarding those <= prev_length. - */ - s.prev_length = s.match_length; - s.prev_match = s.match_start; - s.match_length = MIN_MATCH-1; - - if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match && - s.strstart - hash_head <= (s.w_size-MIN_LOOKAHEAD)/*MAX_DIST(s)*/) { - /* To simplify the code, we prevent matches with the string - * of window index 0 (in particular we have to avoid a match - * of the string with itself at the start of the input file). - */ - s.match_length = longest_match(s, hash_head); - /* longest_match() sets match_start */ - - if (s.match_length <= 5 && - (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) { - - /* If prev_match is also MIN_MATCH, match_start is garbage - * but we will ignore the current match anyway. - */ - s.match_length = MIN_MATCH-1; - } - } - /* If there was a match at the previous step and the current - * match is not better, output the previous match: - */ - if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) { - max_insert = s.strstart + s.lookahead - MIN_MATCH; - /* Do not insert strings in hash table beyond this. */ - - //check_match(s, s.strstart-1, s.prev_match, s.prev_length); - - /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match, - s.prev_length - MIN_MATCH, bflush);***/ - bflush = trees._tr_tally(s, s.strstart - 1- s.prev_match, s.prev_length - MIN_MATCH); - /* Insert in hash table all strings up to the end of the match. - * strstart-1 and strstart are already inserted. If there is not - * enough lookahead, the last two strings are not inserted in - * the hash table. - */ - s.lookahead -= s.prev_length-1; - s.prev_length -= 2; - do { - if (++s.strstart <= max_insert) { - /*** INSERT_STRING(s, s.strstart, hash_head); ***/ - s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; - hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; - s.head[s.ins_h] = s.strstart; - /***/ - } - } while (--s.prev_length !== 0); - s.match_available = 0; - s.match_length = MIN_MATCH-1; - s.strstart++; - - if (bflush) { - /*** FLUSH_BLOCK(s, 0); ***/ - flush_block_only(s, false); - if (s.strm.avail_out === 0) { - return BS_NEED_MORE; - } - /***/ - } - - } else if (s.match_available) { - /* If there was no match at the previous position, output a - * single literal. If there was a match but the current match - * is longer, truncate the previous match to a single literal. - */ - //Tracevv((stderr,"%c", s->window[s->strstart-1])); - /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/ - bflush = trees._tr_tally(s, 0, s.window[s.strstart-1]); - - if (bflush) { - /*** FLUSH_BLOCK_ONLY(s, 0) ***/ - flush_block_only(s, false); - /***/ - } - s.strstart++; - s.lookahead--; - if (s.strm.avail_out === 0) { - return BS_NEED_MORE; - } - } else { - /* There is no previous match to compare with, wait for - * the next step to decide. - */ - s.match_available = 1; - s.strstart++; - s.lookahead--; - } - } - //Assert (flush != Z_NO_FLUSH, "no flush?"); - if (s.match_available) { - //Tracevv((stderr,"%c", s->window[s->strstart-1])); - /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/ - bflush = trees._tr_tally(s, 0, s.window[s.strstart-1]); - - s.match_available = 0; - } - s.insert = s.strstart < MIN_MATCH-1 ? s.strstart : MIN_MATCH-1; - if (flush === Z_FINISH) { - /*** FLUSH_BLOCK(s, 1); ***/ - flush_block_only(s, true); - if (s.strm.avail_out === 0) { - return BS_FINISH_STARTED; - } - /***/ - return BS_FINISH_DONE; - } - if (s.last_lit) { - /*** FLUSH_BLOCK(s, 0); ***/ - flush_block_only(s, false); - if (s.strm.avail_out === 0) { - return BS_NEED_MORE; - } - /***/ - } - - return BS_BLOCK_DONE; -} - - -/* =========================================================================== - * For Z_RLE, simply look for runs of bytes, generate matches only of distance - * one. Do not maintain a hash table. (It will be regenerated if this run of - * deflate switches away from Z_RLE.) - */ -function deflate_rle(s, flush) { - var bflush; /* set if current block must be flushed */ - var prev; /* byte at distance one to match */ - var scan, strend; /* scan goes up to strend for length of run */ - - var _win = s.window; - - for (;;) { - /* Make sure that we always have enough lookahead, except - * at the end of the input file. We need MAX_MATCH bytes - * for the longest run, plus one for the unrolled loop. - */ - if (s.lookahead <= MAX_MATCH) { - fill_window(s); - if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH) { - return BS_NEED_MORE; - } - if (s.lookahead === 0) { break; } /* flush the current block */ - } - - /* See how many times the previous byte repeats */ - s.match_length = 0; - if (s.lookahead >= MIN_MATCH && s.strstart > 0) { - scan = s.strstart - 1; - prev = _win[scan]; - if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) { - strend = s.strstart + MAX_MATCH; - do { - /*jshint noempty:false*/ - } while (prev === _win[++scan] && prev === _win[++scan] && - prev === _win[++scan] && prev === _win[++scan] && - prev === _win[++scan] && prev === _win[++scan] && - prev === _win[++scan] && prev === _win[++scan] && - scan < strend); - s.match_length = MAX_MATCH - (strend - scan); - if (s.match_length > s.lookahead) { - s.match_length = s.lookahead; - } - } - //Assert(scan <= s->window+(uInt)(s->window_size-1), "wild scan"); - } - - /* Emit match if have run of MIN_MATCH or longer, else emit literal */ - if (s.match_length >= MIN_MATCH) { - //check_match(s, s.strstart, s.strstart - 1, s.match_length); - - /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/ - bflush = trees._tr_tally(s, 1, s.match_length - MIN_MATCH); - - s.lookahead -= s.match_length; - s.strstart += s.match_length; - s.match_length = 0; - } else { - /* No match, output a literal byte */ - //Tracevv((stderr,"%c", s->window[s->strstart])); - /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/ - bflush = trees._tr_tally(s, 0, s.window[s.strstart]); - - s.lookahead--; - s.strstart++; - } - if (bflush) { - /*** FLUSH_BLOCK(s, 0); ***/ - flush_block_only(s, false); - if (s.strm.avail_out === 0) { - return BS_NEED_MORE; - } - /***/ - } - } - s.insert = 0; - if (flush === Z_FINISH) { - /*** FLUSH_BLOCK(s, 1); ***/ - flush_block_only(s, true); - if (s.strm.avail_out === 0) { - return BS_FINISH_STARTED; - } - /***/ - return BS_FINISH_DONE; - } - if (s.last_lit) { - /*** FLUSH_BLOCK(s, 0); ***/ - flush_block_only(s, false); - if (s.strm.avail_out === 0) { - return BS_NEED_MORE; - } - /***/ - } - return BS_BLOCK_DONE; -} - -/* =========================================================================== - * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table. - * (It will be regenerated if this run of deflate switches away from Huffman.) - */ -function deflate_huff(s, flush) { - var bflush; /* set if current block must be flushed */ - - for (;;) { - /* Make sure that we have a literal to write. */ - if (s.lookahead === 0) { - fill_window(s); - if (s.lookahead === 0) { - if (flush === Z_NO_FLUSH) { - return BS_NEED_MORE; - } - break; /* flush the current block */ - } - } - - /* Output a literal byte */ - s.match_length = 0; - //Tracevv((stderr,"%c", s->window[s->strstart])); - /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/ - bflush = trees._tr_tally(s, 0, s.window[s.strstart]); - s.lookahead--; - s.strstart++; - if (bflush) { - /*** FLUSH_BLOCK(s, 0); ***/ - flush_block_only(s, false); - if (s.strm.avail_out === 0) { - return BS_NEED_MORE; - } - /***/ - } - } - s.insert = 0; - if (flush === Z_FINISH) { - /*** FLUSH_BLOCK(s, 1); ***/ - flush_block_only(s, true); - if (s.strm.avail_out === 0) { - return BS_FINISH_STARTED; - } - /***/ - return BS_FINISH_DONE; - } - if (s.last_lit) { - /*** FLUSH_BLOCK(s, 0); ***/ - flush_block_only(s, false); - if (s.strm.avail_out === 0) { - return BS_NEED_MORE; - } - /***/ - } - return BS_BLOCK_DONE; -} - -/* Values for max_lazy_match, good_match and max_chain_length, depending on - * the desired pack level (0..9). The values given below have been tuned to - * exclude worst case performance for pathological files. Better values may be - * found for specific files. - */ -var Config = function (good_length, max_lazy, nice_length, max_chain, func) { - this.good_length = good_length; - this.max_lazy = max_lazy; - this.nice_length = nice_length; - this.max_chain = max_chain; - this.func = func; -}; - -var configuration_table; - -configuration_table = [ - /* good lazy nice chain */ - new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */ - new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */ - new Config(4, 5, 16, 8, deflate_fast), /* 2 */ - new Config(4, 6, 32, 32, deflate_fast), /* 3 */ - - new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */ - new Config(8, 16, 32, 32, deflate_slow), /* 5 */ - new Config(8, 16, 128, 128, deflate_slow), /* 6 */ - new Config(8, 32, 128, 256, deflate_slow), /* 7 */ - new Config(32, 128, 258, 1024, deflate_slow), /* 8 */ - new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */ -]; - - -/* =========================================================================== - * Initialize the "longest match" routines for a new zlib stream - */ -function lm_init(s) { - s.window_size = 2 * s.w_size; - - /*** CLEAR_HASH(s); ***/ - zero(s.head); // Fill with NIL (= 0); - - /* Set the default configuration parameters: - */ - s.max_lazy_match = configuration_table[s.level].max_lazy; - s.good_match = configuration_table[s.level].good_length; - s.nice_match = configuration_table[s.level].nice_length; - s.max_chain_length = configuration_table[s.level].max_chain; - - s.strstart = 0; - s.block_start = 0; - s.lookahead = 0; - s.insert = 0; - s.match_length = s.prev_length = MIN_MATCH - 1; - s.match_available = 0; - s.ins_h = 0; -} - - -function DeflateState() { - this.strm = null; /* pointer back to this zlib stream */ - this.status = 0; /* as the name implies */ - this.pending_buf = null; /* output still pending */ - this.pending_buf_size = 0; /* size of pending_buf */ - this.pending_out = 0; /* next pending byte to output to the stream */ - this.pending = 0; /* nb of bytes in the pending buffer */ - this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */ - this.gzhead = null; /* gzip header information to write */ - this.gzindex = 0; /* where in extra, name, or comment */ - this.method = Z_DEFLATED; /* can only be DEFLATED */ - this.last_flush = -1; /* value of flush param for previous deflate call */ - - this.w_size = 0; /* LZ77 window size (32K by default) */ - this.w_bits = 0; /* log2(w_size) (8..16) */ - this.w_mask = 0; /* w_size - 1 */ - - this.window = null; - /* Sliding window. Input bytes are read into the second half of the window, - * and move to the first half later to keep a dictionary of at least wSize - * bytes. With this organization, matches are limited to a distance of - * wSize-MAX_MATCH bytes, but this ensures that IO is always - * performed with a length multiple of the block size. - */ - - this.window_size = 0; - /* Actual size of window: 2*wSize, except when the user input buffer - * is directly used as sliding window. - */ - - this.prev = null; - /* Link to older string with same hash index. To limit the size of this - * array to 64K, this link is maintained only for the last 32K strings. - * An index in this array is thus a window index modulo 32K. - */ - - this.head = null; /* Heads of the hash chains or NIL. */ - - this.ins_h = 0; /* hash index of string to be inserted */ - this.hash_size = 0; /* number of elements in hash table */ - this.hash_bits = 0; /* log2(hash_size) */ - this.hash_mask = 0; /* hash_size-1 */ - - this.hash_shift = 0; - /* Number of bits by which ins_h must be shifted at each input - * step. It must be such that after MIN_MATCH steps, the oldest - * byte no longer takes part in the hash key, that is: - * hash_shift * MIN_MATCH >= hash_bits - */ - - this.block_start = 0; - /* Window position at the beginning of the current output block. Gets - * negative when the window is moved backwards. - */ - - this.match_length = 0; /* length of best match */ - this.prev_match = 0; /* previous match */ - this.match_available = 0; /* set if previous match exists */ - this.strstart = 0; /* start of string to insert */ - this.match_start = 0; /* start of matching string */ - this.lookahead = 0; /* number of valid bytes ahead in window */ - - this.prev_length = 0; - /* Length of the best match at previous step. Matches not greater than this - * are discarded. This is used in the lazy match evaluation. - */ - - this.max_chain_length = 0; - /* To speed up deflation, hash chains are never searched beyond this - * length. A higher limit improves compression ratio but degrades the - * speed. - */ - - this.max_lazy_match = 0; - /* Attempt to find a better match only when the current match is strictly - * smaller than this value. This mechanism is used only for compression - * levels >= 4. - */ - // That's alias to max_lazy_match, don't use directly - //this.max_insert_length = 0; - /* Insert new strings in the hash table only if the match length is not - * greater than this length. This saves time but degrades compression. - * max_insert_length is used only for compression levels <= 3. - */ - - this.level = 0; /* compression level (1..9) */ - this.strategy = 0; /* favor or force Huffman coding*/ - - this.good_match = 0; - /* Use a faster search when the previous match is longer than this */ - - this.nice_match = 0; /* Stop searching when current match exceeds this */ - - /* used by trees.c: */ - - /* Didn't use ct_data typedef below to suppress compiler warning */ - - // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */ - // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */ - // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */ - - // Use flat array of DOUBLE size, with interleaved fata, - // because JS does not support effective - this.dyn_ltree = new utils.Buf16(HEAP_SIZE * 2); - this.dyn_dtree = new utils.Buf16((2*D_CODES+1) * 2); - this.bl_tree = new utils.Buf16((2*BL_CODES+1) * 2); - zero(this.dyn_ltree); - zero(this.dyn_dtree); - zero(this.bl_tree); - - this.l_desc = null; /* desc. for literal tree */ - this.d_desc = null; /* desc. for distance tree */ - this.bl_desc = null; /* desc. for bit length tree */ - - //ush bl_count[MAX_BITS+1]; - this.bl_count = new utils.Buf16(MAX_BITS+1); - /* number of codes at each bit length for an optimal tree */ - - //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */ - this.heap = new utils.Buf16(2*L_CODES+1); /* heap used to build the Huffman trees */ - zero(this.heap); - - this.heap_len = 0; /* number of elements in the heap */ - this.heap_max = 0; /* element of largest frequency */ - /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used. - * The same heap array is used to build all trees. - */ - - this.depth = new utils.Buf16(2*L_CODES+1); //uch depth[2*L_CODES+1]; - zero(this.depth); - /* Depth of each subtree used as tie breaker for trees of equal frequency - */ - - this.l_buf = 0; /* buffer index for literals or lengths */ - - this.lit_bufsize = 0; - /* Size of match buffer for literals/lengths. There are 4 reasons for - * limiting lit_bufsize to 64K: - * - frequencies can be kept in 16 bit counters - * - if compression is not successful for the first block, all input - * data is still in the window so we can still emit a stored block even - * when input comes from standard input. (This can also be done for - * all blocks if lit_bufsize is not greater than 32K.) - * - if compression is not successful for a file smaller than 64K, we can - * even emit a stored file instead of a stored block (saving 5 bytes). - * This is applicable only for zip (not gzip or zlib). - * - creating new Huffman trees less frequently may not provide fast - * adaptation to changes in the input data statistics. (Take for - * example a binary file with poorly compressible code followed by - * a highly compressible string table.) Smaller buffer sizes give - * fast adaptation but have of course the overhead of transmitting - * trees more frequently. - * - I can't count above 4 - */ - - this.last_lit = 0; /* running index in l_buf */ - - this.d_buf = 0; - /* Buffer index for distances. To simplify the code, d_buf and l_buf have - * the same number of elements. To use different lengths, an extra flag - * array would be necessary. - */ - - this.opt_len = 0; /* bit length of current block with optimal trees */ - this.static_len = 0; /* bit length of current block with static trees */ - this.matches = 0; /* number of string matches in current block */ - this.insert = 0; /* bytes at end of window left to insert */ - - - this.bi_buf = 0; - /* Output buffer. bits are inserted starting at the bottom (least - * significant bits). - */ - this.bi_valid = 0; - /* Number of valid bits in bi_buf. All bits above the last valid bit - * are always zero. - */ - - // Used for window memory init. We safely ignore it for JS. That makes - // sense only for pointers and memory check tools. - //this.high_water = 0; - /* High water mark offset in window for initialized bytes -- bytes above - * this are set to zero in order to avoid memory check warnings when - * longest match routines access bytes past the input. This is then - * updated to the new high water mark. - */ -} - - -function deflateResetKeep(strm) { - var s; - - if (!strm || !strm.state) { - return err(strm, Z_STREAM_ERROR); - } - - strm.total_in = strm.total_out = 0; - strm.data_type = Z_UNKNOWN; - - s = strm.state; - s.pending = 0; - s.pending_out = 0; - - if (s.wrap < 0) { - s.wrap = -s.wrap; - /* was made negative by deflate(..., Z_FINISH); */ - } - s.status = (s.wrap ? INIT_STATE : BUSY_STATE); - strm.adler = (s.wrap === 2) ? - 0 // crc32(0, Z_NULL, 0) - : - 1; // adler32(0, Z_NULL, 0) - s.last_flush = Z_NO_FLUSH; - trees._tr_init(s); - return Z_OK; -} - - -function deflateReset(strm) { - var ret = deflateResetKeep(strm); - if (ret === Z_OK) { - lm_init(strm.state); - } - return ret; -} - - -function deflateSetHeader(strm, head) { - if (!strm || !strm.state) { return Z_STREAM_ERROR; } - if (strm.state.wrap !== 2) { return Z_STREAM_ERROR; } - strm.state.gzhead = head; - return Z_OK; -} - - -function deflateInit2(strm, level, method, windowBits, memLevel, strategy) { - if (!strm) { // === Z_NULL - return Z_STREAM_ERROR; - } - var wrap = 1; - - if (level === Z_DEFAULT_COMPRESSION) { - level = 6; - } - - if (windowBits < 0) { /* suppress zlib wrapper */ - wrap = 0; - windowBits = -windowBits; - } - - else if (windowBits > 15) { - wrap = 2; /* write gzip wrapper instead */ - windowBits -= 16; - } - - - if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED || - windowBits < 8 || windowBits > 15 || level < 0 || level > 9 || - strategy < 0 || strategy > Z_FIXED) { - return err(strm, Z_STREAM_ERROR); - } - - - if (windowBits === 8) { - windowBits = 9; - } - /* until 256-byte window bug fixed */ - - var s = new DeflateState(); - - strm.state = s; - s.strm = strm; - - s.wrap = wrap; - s.gzhead = null; - s.w_bits = windowBits; - s.w_size = 1 << s.w_bits; - s.w_mask = s.w_size - 1; - - s.hash_bits = memLevel + 7; - s.hash_size = 1 << s.hash_bits; - s.hash_mask = s.hash_size - 1; - s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH); - - s.window = new utils.Buf8(s.w_size * 2); - s.head = new utils.Buf16(s.hash_size); - s.prev = new utils.Buf16(s.w_size); - - // Don't need mem init magic for JS. - //s.high_water = 0; /* nothing written to s->window yet */ - - s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */ - - s.pending_buf_size = s.lit_bufsize * 4; - s.pending_buf = new utils.Buf8(s.pending_buf_size); - - s.d_buf = s.lit_bufsize >> 1; - s.l_buf = (1 + 2) * s.lit_bufsize; - - s.level = level; - s.strategy = strategy; - s.method = method; - - return deflateReset(strm); -} - -function deflateInit(strm, level) { - return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY); -} - - -function deflate(strm, flush) { - var old_flush, s; - var beg, val; // for gzip header write only - - if (!strm || !strm.state || - flush > Z_BLOCK || flush < 0) { - return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR; - } - - s = strm.state; - - if (!strm.output || - (!strm.input && strm.avail_in !== 0) || - (s.status === FINISH_STATE && flush !== Z_FINISH)) { - return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR : Z_STREAM_ERROR); - } - - s.strm = strm; /* just in case */ - old_flush = s.last_flush; - s.last_flush = flush; - - /* Write the header */ - if (s.status === INIT_STATE) { - - if (s.wrap === 2) { // GZIP header - strm.adler = 0; //crc32(0L, Z_NULL, 0); - put_byte(s, 31); - put_byte(s, 139); - put_byte(s, 8); - if (!s.gzhead) { // s->gzhead == Z_NULL - put_byte(s, 0); - put_byte(s, 0); - put_byte(s, 0); - put_byte(s, 0); - put_byte(s, 0); - put_byte(s, s.level === 9 ? 2 : - (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? - 4 : 0)); - put_byte(s, OS_CODE); - s.status = BUSY_STATE; - } - else { - put_byte(s, (s.gzhead.text ? 1 : 0) + - (s.gzhead.hcrc ? 2 : 0) + - (!s.gzhead.extra ? 0 : 4) + - (!s.gzhead.name ? 0 : 8) + - (!s.gzhead.comment ? 0 : 16) - ); - put_byte(s, s.gzhead.time & 0xff); - put_byte(s, (s.gzhead.time >> 8) & 0xff); - put_byte(s, (s.gzhead.time >> 16) & 0xff); - put_byte(s, (s.gzhead.time >> 24) & 0xff); - put_byte(s, s.level === 9 ? 2 : - (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? - 4 : 0)); - put_byte(s, s.gzhead.os & 0xff); - if (s.gzhead.extra && s.gzhead.extra.length) { - put_byte(s, s.gzhead.extra.length & 0xff); - put_byte(s, (s.gzhead.extra.length >> 8) & 0xff); - } - if (s.gzhead.hcrc) { - strm.adler = crc32(strm.adler, s.pending_buf, s.pending, 0); - } - s.gzindex = 0; - s.status = EXTRA_STATE; - } - } - else // DEFLATE header - { - var header = (Z_DEFLATED + ((s.w_bits - 8) << 4)) << 8; - var level_flags = -1; - - if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) { - level_flags = 0; - } else if (s.level < 6) { - level_flags = 1; - } else if (s.level === 6) { - level_flags = 2; - } else { - level_flags = 3; - } - header |= (level_flags << 6); - if (s.strstart !== 0) { header |= PRESET_DICT; } - header += 31 - (header % 31); - - s.status = BUSY_STATE; - putShortMSB(s, header); - - /* Save the adler32 of the preset dictionary: */ - if (s.strstart !== 0) { - putShortMSB(s, strm.adler >>> 16); - putShortMSB(s, strm.adler & 0xffff); - } - strm.adler = 1; // adler32(0L, Z_NULL, 0); - } - } - -//#ifdef GZIP - if (s.status === EXTRA_STATE) { - if (s.gzhead.extra/* != Z_NULL*/) { - beg = s.pending; /* start of bytes to update crc */ - - while (s.gzindex < (s.gzhead.extra.length & 0xffff)) { - if (s.pending === s.pending_buf_size) { - if (s.gzhead.hcrc && s.pending > beg) { - strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); - } - flush_pending(strm); - beg = s.pending; - if (s.pending === s.pending_buf_size) { - break; - } - } - put_byte(s, s.gzhead.extra[s.gzindex] & 0xff); - s.gzindex++; - } - if (s.gzhead.hcrc && s.pending > beg) { - strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); - } - if (s.gzindex === s.gzhead.extra.length) { - s.gzindex = 0; - s.status = NAME_STATE; - } - } - else { - s.status = NAME_STATE; - } - } - if (s.status === NAME_STATE) { - if (s.gzhead.name/* != Z_NULL*/) { - beg = s.pending; /* start of bytes to update crc */ - //int val; - - do { - if (s.pending === s.pending_buf_size) { - if (s.gzhead.hcrc && s.pending > beg) { - strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); - } - flush_pending(strm); - beg = s.pending; - if (s.pending === s.pending_buf_size) { - val = 1; - break; - } - } - // JS specific: little magic to add zero terminator to end of string - if (s.gzindex < s.gzhead.name.length) { - val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff; - } else { - val = 0; - } - put_byte(s, val); - } while (val !== 0); - - if (s.gzhead.hcrc && s.pending > beg){ - strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); - } - if (val === 0) { - s.gzindex = 0; - s.status = COMMENT_STATE; - } - } - else { - s.status = COMMENT_STATE; - } - } - if (s.status === COMMENT_STATE) { - if (s.gzhead.comment/* != Z_NULL*/) { - beg = s.pending; /* start of bytes to update crc */ - //int val; - - do { - if (s.pending === s.pending_buf_size) { - if (s.gzhead.hcrc && s.pending > beg) { - strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); - } - flush_pending(strm); - beg = s.pending; - if (s.pending === s.pending_buf_size) { - val = 1; - break; - } - } - // JS specific: little magic to add zero terminator to end of string - if (s.gzindex < s.gzhead.comment.length) { - val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff; - } else { - val = 0; - } - put_byte(s, val); - } while (val !== 0); - - if (s.gzhead.hcrc && s.pending > beg) { - strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); - } - if (val === 0) { - s.status = HCRC_STATE; - } - } - else { - s.status = HCRC_STATE; - } - } - if (s.status === HCRC_STATE) { - if (s.gzhead.hcrc) { - if (s.pending + 2 > s.pending_buf_size) { - flush_pending(strm); - } - if (s.pending + 2 <= s.pending_buf_size) { - put_byte(s, strm.adler & 0xff); - put_byte(s, (strm.adler >> 8) & 0xff); - strm.adler = 0; //crc32(0L, Z_NULL, 0); - s.status = BUSY_STATE; - } - } - else { - s.status = BUSY_STATE; - } - } -//#endif - - /* Flush as much pending output as possible */ - if (s.pending !== 0) { - flush_pending(strm); - if (strm.avail_out === 0) { - /* Since avail_out is 0, deflate will be called again with - * more output space, but possibly with both pending and - * avail_in equal to zero. There won't be anything to do, - * but this is not an error situation so make sure we - * return OK instead of BUF_ERROR at next call of deflate: - */ - s.last_flush = -1; - return Z_OK; - } - - /* Make sure there is something to do and avoid duplicate consecutive - * flushes. For repeated and useless calls with Z_FINISH, we keep - * returning Z_STREAM_END instead of Z_BUF_ERROR. - */ - } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) && - flush !== Z_FINISH) { - return err(strm, Z_BUF_ERROR); - } - - /* User must not provide more input after the first FINISH: */ - if (s.status === FINISH_STATE && strm.avail_in !== 0) { - return err(strm, Z_BUF_ERROR); - } - - /* Start a new block or continue the current one. - */ - if (strm.avail_in !== 0 || s.lookahead !== 0 || - (flush !== Z_NO_FLUSH && s.status !== FINISH_STATE)) { - var bstate = (s.strategy === Z_HUFFMAN_ONLY) ? deflate_huff(s, flush) : - (s.strategy === Z_RLE ? deflate_rle(s, flush) : - configuration_table[s.level].func(s, flush)); - - if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) { - s.status = FINISH_STATE; - } - if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) { - if (strm.avail_out === 0) { - s.last_flush = -1; - /* avoid BUF_ERROR next call, see above */ - } - return Z_OK; - /* If flush != Z_NO_FLUSH && avail_out == 0, the next call - * of deflate should use the same flush parameter to make sure - * that the flush is complete. So we don't have to output an - * empty block here, this will be done at next call. This also - * ensures that for a very small output buffer, we emit at most - * one empty block. - */ - } - if (bstate === BS_BLOCK_DONE) { - if (flush === Z_PARTIAL_FLUSH) { - trees._tr_align(s); - } - else if (flush !== Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */ - - trees._tr_stored_block(s, 0, 0, false); - /* For a full flush, this empty block will be recognized - * as a special marker by inflate_sync(). - */ - if (flush === Z_FULL_FLUSH) { - /*** CLEAR_HASH(s); ***/ /* forget history */ - zero(s.head); // Fill with NIL (= 0); - - if (s.lookahead === 0) { - s.strstart = 0; - s.block_start = 0; - s.insert = 0; - } - } - } - flush_pending(strm); - if (strm.avail_out === 0) { - s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */ - return Z_OK; - } - } - } - //Assert(strm->avail_out > 0, "bug2"); - //if (strm.avail_out <= 0) { throw new Error("bug2");} - - if (flush !== Z_FINISH) { return Z_OK; } - if (s.wrap <= 0) { return Z_STREAM_END; } - - /* Write the trailer */ - if (s.wrap === 2) { - put_byte(s, strm.adler & 0xff); - put_byte(s, (strm.adler >> 8) & 0xff); - put_byte(s, (strm.adler >> 16) & 0xff); - put_byte(s, (strm.adler >> 24) & 0xff); - put_byte(s, strm.total_in & 0xff); - put_byte(s, (strm.total_in >> 8) & 0xff); - put_byte(s, (strm.total_in >> 16) & 0xff); - put_byte(s, (strm.total_in >> 24) & 0xff); - } - else - { - putShortMSB(s, strm.adler >>> 16); - putShortMSB(s, strm.adler & 0xffff); - } - - flush_pending(strm); - /* If avail_out is zero, the application will call deflate again - * to flush the rest. - */ - if (s.wrap > 0) { s.wrap = -s.wrap; } - /* write the trailer only once! */ - return s.pending !== 0 ? Z_OK : Z_STREAM_END; -} - -function deflateEnd(strm) { - var status; - - if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) { - return Z_STREAM_ERROR; - } - - status = strm.state.status; - if (status !== INIT_STATE && - status !== EXTRA_STATE && - status !== NAME_STATE && - status !== COMMENT_STATE && - status !== HCRC_STATE && - status !== BUSY_STATE && - status !== FINISH_STATE - ) { - return err(strm, Z_STREAM_ERROR); - } - - strm.state = null; - - return status === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK; -} - -/* ========================================================================= - * Copy the source state to the destination state - */ -//function deflateCopy(dest, source) { -// -//} - -exports.deflateInit = deflateInit; -exports.deflateInit2 = deflateInit2; -exports.deflateReset = deflateReset; -exports.deflateResetKeep = deflateResetKeep; -exports.deflateSetHeader = deflateSetHeader; -exports.deflate = deflate; -exports.deflateEnd = deflateEnd; -exports.deflateInfo = 'pako deflate (from Nodeca project)'; - -/* Not implemented -exports.deflateBound = deflateBound; -exports.deflateCopy = deflateCopy; -exports.deflateSetDictionary = deflateSetDictionary; -exports.deflateParams = deflateParams; -exports.deflatePending = deflatePending; -exports.deflatePrime = deflatePrime; -exports.deflateTune = deflateTune; -*/ -},{"../utils/common":27,"./adler32":29,"./crc32":31,"./messages":37,"./trees":38}],33:[function(_dereq_,module,exports){ -'use strict'; - - -function GZheader() { - /* true if compressed data believed to be text */ - this.text = 0; - /* modification time */ - this.time = 0; - /* extra flags (not used when writing a gzip file) */ - this.xflags = 0; - /* operating system */ - this.os = 0; - /* pointer to extra field or Z_NULL if none */ - this.extra = null; - /* extra field length (valid if extra != Z_NULL) */ - this.extra_len = 0; // Actually, we don't need it in JS, - // but leave for few code modifications - - // - // Setup limits is not necessary because in js we should not preallocate memory - // for inflate use constant limit in 65536 bytes - // - - /* space at extra (only when reading header) */ - // this.extra_max = 0; - /* pointer to zero-terminated file name or Z_NULL */ - this.name = ''; - /* space at name (only when reading header) */ - // this.name_max = 0; - /* pointer to zero-terminated comment or Z_NULL */ - this.comment = ''; - /* space at comment (only when reading header) */ - // this.comm_max = 0; - /* true if there was or will be a header crc */ - this.hcrc = 0; - /* true when done reading gzip header (not used when writing a gzip file) */ - this.done = false; -} - -module.exports = GZheader; -},{}],34:[function(_dereq_,module,exports){ -'use strict'; - -// See state defs from inflate.js -var BAD = 30; /* got a data error -- remain here until reset */ -var TYPE = 12; /* i: waiting for type bits, including last-flag bit */ - -/* - Decode literal, length, and distance codes and write out the resulting - literal and match bytes until either not enough input or output is - available, an end-of-block is encountered, or a data error is encountered. - When large enough input and output buffers are supplied to inflate(), for - example, a 16K input buffer and a 64K output buffer, more than 95% of the - inflate execution time is spent in this routine. - - Entry assumptions: - - state.mode === LEN - strm.avail_in >= 6 - strm.avail_out >= 258 - start >= strm.avail_out - state.bits < 8 - - On return, state.mode is one of: - - LEN -- ran out of enough output space or enough available input - TYPE -- reached end of block code, inflate() to interpret next block - BAD -- error in block data - - Notes: - - - The maximum input bits used by a length/distance pair is 15 bits for the - length code, 5 bits for the length extra, 15 bits for the distance code, - and 13 bits for the distance extra. This totals 48 bits, or six bytes. - Therefore if strm.avail_in >= 6, then there is enough input to avoid - checking for available input while decoding. - - - The maximum bytes that a single length/distance pair can output is 258 - bytes, which is the maximum length that can be coded. inflate_fast() - requires strm.avail_out >= 258 for each loop to avoid checking for - output space. - */ -module.exports = function inflate_fast(strm, start) { - var state; - var _in; /* local strm.input */ - var last; /* have enough input while in < last */ - var _out; /* local strm.output */ - var beg; /* inflate()'s initial strm.output */ - var end; /* while out < end, enough space available */ -//#ifdef INFLATE_STRICT - var dmax; /* maximum distance from zlib header */ -//#endif - var wsize; /* window size or zero if not using window */ - var whave; /* valid bytes in the window */ - var wnext; /* window write index */ - var window; /* allocated sliding window, if wsize != 0 */ - var hold; /* local strm.hold */ - var bits; /* local strm.bits */ - var lcode; /* local strm.lencode */ - var dcode; /* local strm.distcode */ - var lmask; /* mask for first level of length codes */ - var dmask; /* mask for first level of distance codes */ - var here; /* retrieved table entry */ - var op; /* code bits, operation, extra bits, or */ - /* window position, window bytes to copy */ - var len; /* match length, unused bytes */ - var dist; /* match distance */ - var from; /* where to copy match from */ - var from_source; - - - var input, output; // JS specific, because we have no pointers - - /* copy state to local variables */ - state = strm.state; - //here = state.here; - _in = strm.next_in; - input = strm.input; - last = _in + (strm.avail_in - 5); - _out = strm.next_out; - output = strm.output; - beg = _out - (start - strm.avail_out); - end = _out + (strm.avail_out - 257); -//#ifdef INFLATE_STRICT - dmax = state.dmax; -//#endif - wsize = state.wsize; - whave = state.whave; - wnext = state.wnext; - window = state.window; - hold = state.hold; - bits = state.bits; - lcode = state.lencode; - dcode = state.distcode; - lmask = (1 << state.lenbits) - 1; - dmask = (1 << state.distbits) - 1; - - - /* decode literals and length/distances until end-of-block or not enough - input data or output space */ - - top: - do { - if (bits < 15) { - hold += input[_in++] << bits; - bits += 8; - hold += input[_in++] << bits; - bits += 8; - } - - here = lcode[hold & lmask]; - - dolen: - for (;;) { // Goto emulation - op = here >>> 24/*here.bits*/; - hold >>>= op; - bits -= op; - op = (here >>> 16) & 0xff/*here.op*/; - if (op === 0) { /* literal */ - //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? - // "inflate: literal '%c'\n" : - // "inflate: literal 0x%02x\n", here.val)); - output[_out++] = here & 0xffff/*here.val*/; - } - else if (op & 16) { /* length base */ - len = here & 0xffff/*here.val*/; - op &= 15; /* number of extra bits */ - if (op) { - if (bits < op) { - hold += input[_in++] << bits; - bits += 8; - } - len += hold & ((1 << op) - 1); - hold >>>= op; - bits -= op; - } - //Tracevv((stderr, "inflate: length %u\n", len)); - if (bits < 15) { - hold += input[_in++] << bits; - bits += 8; - hold += input[_in++] << bits; - bits += 8; - } - here = dcode[hold & dmask]; - - dodist: - for (;;) { // goto emulation - op = here >>> 24/*here.bits*/; - hold >>>= op; - bits -= op; - op = (here >>> 16) & 0xff/*here.op*/; - - if (op & 16) { /* distance base */ - dist = here & 0xffff/*here.val*/; - op &= 15; /* number of extra bits */ - if (bits < op) { - hold += input[_in++] << bits; - bits += 8; - if (bits < op) { - hold += input[_in++] << bits; - bits += 8; - } - } - dist += hold & ((1 << op) - 1); -//#ifdef INFLATE_STRICT - if (dist > dmax) { - strm.msg = 'invalid distance too far back'; - state.mode = BAD; - break top; - } -//#endif - hold >>>= op; - bits -= op; - //Tracevv((stderr, "inflate: distance %u\n", dist)); - op = _out - beg; /* max distance in output */ - if (dist > op) { /* see if copy from window */ - op = dist - op; /* distance back in window */ - if (op > whave) { - if (state.sane) { - strm.msg = 'invalid distance too far back'; - state.mode = BAD; - break top; - } - -// (!) This block is disabled in zlib defailts, -// don't enable it for binary compatibility -//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR -// if (len <= op - whave) { -// do { -// output[_out++] = 0; -// } while (--len); -// continue top; -// } -// len -= op - whave; -// do { -// output[_out++] = 0; -// } while (--op > whave); -// if (op === 0) { -// from = _out - dist; -// do { -// output[_out++] = output[from++]; -// } while (--len); -// continue top; -// } -//#endif - } - from = 0; // window index - from_source = window; - if (wnext === 0) { /* very common case */ - from += wsize - op; - if (op < len) { /* some from window */ - len -= op; - do { - output[_out++] = window[from++]; - } while (--op); - from = _out - dist; /* rest from output */ - from_source = output; - } - } - else if (wnext < op) { /* wrap around window */ - from += wsize + wnext - op; - op -= wnext; - if (op < len) { /* some from end of window */ - len -= op; - do { - output[_out++] = window[from++]; - } while (--op); - from = 0; - if (wnext < len) { /* some from start of window */ - op = wnext; - len -= op; - do { - output[_out++] = window[from++]; - } while (--op); - from = _out - dist; /* rest from output */ - from_source = output; - } - } - } - else { /* contiguous in window */ - from += wnext - op; - if (op < len) { /* some from window */ - len -= op; - do { - output[_out++] = window[from++]; - } while (--op); - from = _out - dist; /* rest from output */ - from_source = output; - } - } - while (len > 2) { - output[_out++] = from_source[from++]; - output[_out++] = from_source[from++]; - output[_out++] = from_source[from++]; - len -= 3; - } - if (len) { - output[_out++] = from_source[from++]; - if (len > 1) { - output[_out++] = from_source[from++]; - } - } - } - else { - from = _out - dist; /* copy direct from output */ - do { /* minimum length is three */ - output[_out++] = output[from++]; - output[_out++] = output[from++]; - output[_out++] = output[from++]; - len -= 3; - } while (len > 2); - if (len) { - output[_out++] = output[from++]; - if (len > 1) { - output[_out++] = output[from++]; - } - } - } - } - else if ((op & 64) === 0) { /* 2nd level distance code */ - here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))]; - continue dodist; - } - else { - strm.msg = 'invalid distance code'; - state.mode = BAD; - break top; - } - - break; // need to emulate goto via "continue" - } - } - else if ((op & 64) === 0) { /* 2nd level length code */ - here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))]; - continue dolen; - } - else if (op & 32) { /* end-of-block */ - //Tracevv((stderr, "inflate: end of block\n")); - state.mode = TYPE; - break top; - } - else { - strm.msg = 'invalid literal/length code'; - state.mode = BAD; - break top; - } - - break; // need to emulate goto via "continue" - } - } while (_in < last && _out < end); - - /* return unused bytes (on entry, bits < 8, so in won't go too far back) */ - len = bits >> 3; - _in -= len; - bits -= len << 3; - hold &= (1 << bits) - 1; - - /* update state and return */ - strm.next_in = _in; - strm.next_out = _out; - strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last)); - strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end)); - state.hold = hold; - state.bits = bits; - return; -}; - -},{}],35:[function(_dereq_,module,exports){ -'use strict'; - - -var utils = _dereq_('../utils/common'); -var adler32 = _dereq_('./adler32'); -var crc32 = _dereq_('./crc32'); -var inflate_fast = _dereq_('./inffast'); -var inflate_table = _dereq_('./inftrees'); - -var CODES = 0; -var LENS = 1; -var DISTS = 2; - -/* Public constants ==========================================================*/ -/* ===========================================================================*/ - - -/* Allowed flush values; see deflate() and inflate() below for details */ -//var Z_NO_FLUSH = 0; -//var Z_PARTIAL_FLUSH = 1; -//var Z_SYNC_FLUSH = 2; -//var Z_FULL_FLUSH = 3; -var Z_FINISH = 4; -var Z_BLOCK = 5; -var Z_TREES = 6; - - -/* Return codes for the compression/decompression functions. Negative values - * are errors, positive values are used for special but normal events. - */ -var Z_OK = 0; -var Z_STREAM_END = 1; -var Z_NEED_DICT = 2; -//var Z_ERRNO = -1; -var Z_STREAM_ERROR = -2; -var Z_DATA_ERROR = -3; -var Z_MEM_ERROR = -4; -var Z_BUF_ERROR = -5; -//var Z_VERSION_ERROR = -6; - -/* The deflate compression method */ -var Z_DEFLATED = 8; - - -/* STATES ====================================================================*/ -/* ===========================================================================*/ - - -var HEAD = 1; /* i: waiting for magic header */ -var FLAGS = 2; /* i: waiting for method and flags (gzip) */ -var TIME = 3; /* i: waiting for modification time (gzip) */ -var OS = 4; /* i: waiting for extra flags and operating system (gzip) */ -var EXLEN = 5; /* i: waiting for extra length (gzip) */ -var EXTRA = 6; /* i: waiting for extra bytes (gzip) */ -var NAME = 7; /* i: waiting for end of file name (gzip) */ -var COMMENT = 8; /* i: waiting for end of comment (gzip) */ -var HCRC = 9; /* i: waiting for header crc (gzip) */ -var DICTID = 10; /* i: waiting for dictionary check value */ -var DICT = 11; /* waiting for inflateSetDictionary() call */ -var TYPE = 12; /* i: waiting for type bits, including last-flag bit */ -var TYPEDO = 13; /* i: same, but skip check to exit inflate on new block */ -var STORED = 14; /* i: waiting for stored size (length and complement) */ -var COPY_ = 15; /* i/o: same as COPY below, but only first time in */ -var COPY = 16; /* i/o: waiting for input or output to copy stored block */ -var TABLE = 17; /* i: waiting for dynamic block table lengths */ -var LENLENS = 18; /* i: waiting for code length code lengths */ -var CODELENS = 19; /* i: waiting for length/lit and distance code lengths */ -var LEN_ = 20; /* i: same as LEN below, but only first time in */ -var LEN = 21; /* i: waiting for length/lit/eob code */ -var LENEXT = 22; /* i: waiting for length extra bits */ -var DIST = 23; /* i: waiting for distance code */ -var DISTEXT = 24; /* i: waiting for distance extra bits */ -var MATCH = 25; /* o: waiting for output space to copy string */ -var LIT = 26; /* o: waiting for output space to write literal */ -var CHECK = 27; /* i: waiting for 32-bit check value */ -var LENGTH = 28; /* i: waiting for 32-bit length (gzip) */ -var DONE = 29; /* finished check, done -- remain here until reset */ -var BAD = 30; /* got a data error -- remain here until reset */ -var MEM = 31; /* got an inflate() memory error -- remain here until reset */ -var SYNC = 32; /* looking for synchronization bytes to restart inflate() */ - -/* ===========================================================================*/ - - - -var ENOUGH_LENS = 852; -var ENOUGH_DISTS = 592; -//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS); - -var MAX_WBITS = 15; -/* 32K LZ77 window */ -var DEF_WBITS = MAX_WBITS; - - -function ZSWAP32(q) { - return (((q >>> 24) & 0xff) + - ((q >>> 8) & 0xff00) + - ((q & 0xff00) << 8) + - ((q & 0xff) << 24)); -} - - -function InflateState() { - this.mode = 0; /* current inflate mode */ - this.last = false; /* true if processing last block */ - this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */ - this.havedict = false; /* true if dictionary provided */ - this.flags = 0; /* gzip header method and flags (0 if zlib) */ - this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */ - this.check = 0; /* protected copy of check value */ - this.total = 0; /* protected copy of output count */ - // TODO: may be {} - this.head = null; /* where to save gzip header information */ - - /* sliding window */ - this.wbits = 0; /* log base 2 of requested window size */ - this.wsize = 0; /* window size or zero if not using window */ - this.whave = 0; /* valid bytes in the window */ - this.wnext = 0; /* window write index */ - this.window = null; /* allocated sliding window, if needed */ - - /* bit accumulator */ - this.hold = 0; /* input bit accumulator */ - this.bits = 0; /* number of bits in "in" */ - - /* for string and stored block copying */ - this.length = 0; /* literal or length of data to copy */ - this.offset = 0; /* distance back to copy string from */ - - /* for table and code decoding */ - this.extra = 0; /* extra bits needed */ - - /* fixed and dynamic code tables */ - this.lencode = null; /* starting table for length/literal codes */ - this.distcode = null; /* starting table for distance codes */ - this.lenbits = 0; /* index bits for lencode */ - this.distbits = 0; /* index bits for distcode */ - - /* dynamic table building */ - this.ncode = 0; /* number of code length code lengths */ - this.nlen = 0; /* number of length code lengths */ - this.ndist = 0; /* number of distance code lengths */ - this.have = 0; /* number of code lengths in lens[] */ - this.next = null; /* next available space in codes[] */ - - this.lens = new utils.Buf16(320); /* temporary storage for code lengths */ - this.work = new utils.Buf16(288); /* work area for code table building */ - - /* - because we don't have pointers in js, we use lencode and distcode directly - as buffers so we don't need codes - */ - //this.codes = new utils.Buf32(ENOUGH); /* space for code tables */ - this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */ - this.distdyn = null; /* dynamic table for distance codes (JS specific) */ - this.sane = 0; /* if false, allow invalid distance too far */ - this.back = 0; /* bits back of last unprocessed length/lit */ - this.was = 0; /* initial length of match */ -} - -function inflateResetKeep(strm) { - var state; - - if (!strm || !strm.state) { return Z_STREAM_ERROR; } - state = strm.state; - strm.total_in = strm.total_out = state.total = 0; - strm.msg = ''; /*Z_NULL*/ - if (state.wrap) { /* to support ill-conceived Java test suite */ - strm.adler = state.wrap & 1; - } - state.mode = HEAD; - state.last = 0; - state.havedict = 0; - state.dmax = 32768; - state.head = null/*Z_NULL*/; - state.hold = 0; - state.bits = 0; - //state.lencode = state.distcode = state.next = state.codes; - state.lencode = state.lendyn = new utils.Buf32(ENOUGH_LENS); - state.distcode = state.distdyn = new utils.Buf32(ENOUGH_DISTS); - - state.sane = 1; - state.back = -1; - //Tracev((stderr, "inflate: reset\n")); - return Z_OK; -} - -function inflateReset(strm) { - var state; - - if (!strm || !strm.state) { return Z_STREAM_ERROR; } - state = strm.state; - state.wsize = 0; - state.whave = 0; - state.wnext = 0; - return inflateResetKeep(strm); - -} - -function inflateReset2(strm, windowBits) { - var wrap; - var state; - - /* get the state */ - if (!strm || !strm.state) { return Z_STREAM_ERROR; } - state = strm.state; - - /* extract wrap request from windowBits parameter */ - if (windowBits < 0) { - wrap = 0; - windowBits = -windowBits; - } - else { - wrap = (windowBits >> 4) + 1; - if (windowBits < 48) { - windowBits &= 15; - } - } - - /* set number of window bits, free window if different */ - if (windowBits && (windowBits < 8 || windowBits > 15)) { - return Z_STREAM_ERROR; - } - if (state.window !== null && state.wbits !== windowBits) { - state.window = null; - } - - /* update state and reset the rest of it */ - state.wrap = wrap; - state.wbits = windowBits; - return inflateReset(strm); -} - -function inflateInit2(strm, windowBits) { - var ret; - var state; - - if (!strm) { return Z_STREAM_ERROR; } - //strm.msg = Z_NULL; /* in case we return an error */ - - state = new InflateState(); - - //if (state === Z_NULL) return Z_MEM_ERROR; - //Tracev((stderr, "inflate: allocated\n")); - strm.state = state; - state.window = null/*Z_NULL*/; - ret = inflateReset2(strm, windowBits); - if (ret !== Z_OK) { - strm.state = null/*Z_NULL*/; - } - return ret; -} - -function inflateInit(strm) { - return inflateInit2(strm, DEF_WBITS); -} - - -/* - Return state with length and distance decoding tables and index sizes set to - fixed code decoding. Normally this returns fixed tables from inffixed.h. - If BUILDFIXED is defined, then instead this routine builds the tables the - first time it's called, and returns those tables the first time and - thereafter. This reduces the size of the code by about 2K bytes, in - exchange for a little execution time. However, BUILDFIXED should not be - used for threaded applications, since the rewriting of the tables and virgin - may not be thread-safe. - */ -var virgin = true; - -var lenfix, distfix; // We have no pointers in JS, so keep tables separate - -function fixedtables(state) { - /* build fixed huffman tables if first call (may not be thread safe) */ - if (virgin) { - var sym; - - lenfix = new utils.Buf32(512); - distfix = new utils.Buf32(32); - - /* literal/length table */ - sym = 0; - while (sym < 144) { state.lens[sym++] = 8; } - while (sym < 256) { state.lens[sym++] = 9; } - while (sym < 280) { state.lens[sym++] = 7; } - while (sym < 288) { state.lens[sym++] = 8; } - - inflate_table(LENS, state.lens, 0, 288, lenfix, 0, state.work, {bits: 9}); - - /* distance table */ - sym = 0; - while (sym < 32) { state.lens[sym++] = 5; } - - inflate_table(DISTS, state.lens, 0, 32, distfix, 0, state.work, {bits: 5}); - - /* do this just once */ - virgin = false; - } - - state.lencode = lenfix; - state.lenbits = 9; - state.distcode = distfix; - state.distbits = 5; -} - - -/* - Update the window with the last wsize (normally 32K) bytes written before - returning. If window does not exist yet, create it. This is only called - when a window is already in use, or when output has been written during this - inflate call, but the end of the deflate stream has not been reached yet. - It is also called to create a window for dictionary data when a dictionary - is loaded. - - Providing output buffers larger than 32K to inflate() should provide a speed - advantage, since only the last 32K of output is copied to the sliding window - upon return from inflate(), and since all distances after the first 32K of - output will fall in the output data, making match copies simpler and faster. - The advantage may be dependent on the size of the processor's data caches. - */ -function updatewindow(strm, src, end, copy) { - var dist; - var state = strm.state; - - /* if it hasn't been done already, allocate space for the window */ - if (state.window === null) { - state.wsize = 1 << state.wbits; - state.wnext = 0; - state.whave = 0; - - state.window = new utils.Buf8(state.wsize); - } - - /* copy state->wsize or less output bytes into the circular window */ - if (copy >= state.wsize) { - utils.arraySet(state.window,src, end - state.wsize, state.wsize, 0); - state.wnext = 0; - state.whave = state.wsize; - } - else { - dist = state.wsize - state.wnext; - if (dist > copy) { - dist = copy; - } - //zmemcpy(state->window + state->wnext, end - copy, dist); - utils.arraySet(state.window,src, end - copy, dist, state.wnext); - copy -= dist; - if (copy) { - //zmemcpy(state->window, end - copy, copy); - utils.arraySet(state.window,src, end - copy, copy, 0); - state.wnext = copy; - state.whave = state.wsize; - } - else { - state.wnext += dist; - if (state.wnext === state.wsize) { state.wnext = 0; } - if (state.whave < state.wsize) { state.whave += dist; } - } - } - return 0; -} - -function inflate(strm, flush) { - var state; - var input, output; // input/output buffers - var next; /* next input INDEX */ - var put; /* next output INDEX */ - var have, left; /* available input and output */ - var hold; /* bit buffer */ - var bits; /* bits in bit buffer */ - var _in, _out; /* save starting available input and output */ - var copy; /* number of stored or match bytes to copy */ - var from; /* where to copy match bytes from */ - var from_source; - var here = 0; /* current decoding table entry */ - var here_bits, here_op, here_val; // paked "here" denormalized (JS specific) - //var last; /* parent table entry */ - var last_bits, last_op, last_val; // paked "last" denormalized (JS specific) - var len; /* length to copy for repeats, bits to drop */ - var ret; /* return code */ - var hbuf = new utils.Buf8(4); /* buffer for gzip header crc calculation */ - var opts; - - var n; // temporary var for NEED_BITS - - var order = /* permutation of code lengths */ - [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]; - - - if (!strm || !strm.state || !strm.output || - (!strm.input && strm.avail_in !== 0)) { - return Z_STREAM_ERROR; - } - - state = strm.state; - if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */ - - - //--- LOAD() --- - put = strm.next_out; - output = strm.output; - left = strm.avail_out; - next = strm.next_in; - input = strm.input; - have = strm.avail_in; - hold = state.hold; - bits = state.bits; - //--- - - _in = have; - _out = left; - ret = Z_OK; - - inf_leave: // goto emulation - for (;;) { - switch (state.mode) { - case HEAD: - if (state.wrap === 0) { - state.mode = TYPEDO; - break; - } - //=== NEEDBITS(16); - while (bits < 16) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */ - state.check = 0/*crc32(0L, Z_NULL, 0)*/; - //=== CRC2(state.check, hold); - hbuf[0] = hold & 0xff; - hbuf[1] = (hold >>> 8) & 0xff; - state.check = crc32(state.check, hbuf, 2, 0); - //===// - - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - state.mode = FLAGS; - break; - } - state.flags = 0; /* expect zlib header */ - if (state.head) { - state.head.done = false; - } - if (!(state.wrap & 1) || /* check if zlib header allowed */ - (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) { - strm.msg = 'incorrect header check'; - state.mode = BAD; - break; - } - if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) { - strm.msg = 'unknown compression method'; - state.mode = BAD; - break; - } - //--- DROPBITS(4) ---// - hold >>>= 4; - bits -= 4; - //---// - len = (hold & 0x0f)/*BITS(4)*/ + 8; - if (state.wbits === 0) { - state.wbits = len; - } - else if (len > state.wbits) { - strm.msg = 'invalid window size'; - state.mode = BAD; - break; - } - state.dmax = 1 << len; - //Tracev((stderr, "inflate: zlib header ok\n")); - strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/; - state.mode = hold & 0x200 ? DICTID : TYPE; - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - break; - case FLAGS: - //=== NEEDBITS(16); */ - while (bits < 16) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - state.flags = hold; - if ((state.flags & 0xff) !== Z_DEFLATED) { - strm.msg = 'unknown compression method'; - state.mode = BAD; - break; - } - if (state.flags & 0xe000) { - strm.msg = 'unknown header flags set'; - state.mode = BAD; - break; - } - if (state.head) { - state.head.text = ((hold >> 8) & 1); - } - if (state.flags & 0x0200) { - //=== CRC2(state.check, hold); - hbuf[0] = hold & 0xff; - hbuf[1] = (hold >>> 8) & 0xff; - state.check = crc32(state.check, hbuf, 2, 0); - //===// - } - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - state.mode = TIME; - /* falls through */ - case TIME: - //=== NEEDBITS(32); */ - while (bits < 32) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - if (state.head) { - state.head.time = hold; - } - if (state.flags & 0x0200) { - //=== CRC4(state.check, hold) - hbuf[0] = hold & 0xff; - hbuf[1] = (hold >>> 8) & 0xff; - hbuf[2] = (hold >>> 16) & 0xff; - hbuf[3] = (hold >>> 24) & 0xff; - state.check = crc32(state.check, hbuf, 4, 0); - //=== - } - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - state.mode = OS; - /* falls through */ - case OS: - //=== NEEDBITS(16); */ - while (bits < 16) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - if (state.head) { - state.head.xflags = (hold & 0xff); - state.head.os = (hold >> 8); - } - if (state.flags & 0x0200) { - //=== CRC2(state.check, hold); - hbuf[0] = hold & 0xff; - hbuf[1] = (hold >>> 8) & 0xff; - state.check = crc32(state.check, hbuf, 2, 0); - //===// - } - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - state.mode = EXLEN; - /* falls through */ - case EXLEN: - if (state.flags & 0x0400) { - //=== NEEDBITS(16); */ - while (bits < 16) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - state.length = hold; - if (state.head) { - state.head.extra_len = hold; - } - if (state.flags & 0x0200) { - //=== CRC2(state.check, hold); - hbuf[0] = hold & 0xff; - hbuf[1] = (hold >>> 8) & 0xff; - state.check = crc32(state.check, hbuf, 2, 0); - //===// - } - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - } - else if (state.head) { - state.head.extra = null/*Z_NULL*/; - } - state.mode = EXTRA; - /* falls through */ - case EXTRA: - if (state.flags & 0x0400) { - copy = state.length; - if (copy > have) { copy = have; } - if (copy) { - if (state.head) { - len = state.head.extra_len - state.length; - if (!state.head.extra) { - // Use untyped array for more conveniend processing later - state.head.extra = new Array(state.head.extra_len); - } - utils.arraySet( - state.head.extra, - input, - next, - // extra field is limited to 65536 bytes - // - no need for additional size check - copy, - /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/ - len - ); - //zmemcpy(state.head.extra + len, next, - // len + copy > state.head.extra_max ? - // state.head.extra_max - len : copy); - } - if (state.flags & 0x0200) { - state.check = crc32(state.check, input, copy, next); - } - have -= copy; - next += copy; - state.length -= copy; - } - if (state.length) { break inf_leave; } - } - state.length = 0; - state.mode = NAME; - /* falls through */ - case NAME: - if (state.flags & 0x0800) { - if (have === 0) { break inf_leave; } - copy = 0; - do { - // TODO: 2 or 1 bytes? - len = input[next + copy++]; - /* use constant limit because in js we should not preallocate memory */ - if (state.head && len && - (state.length < 65536 /*state.head.name_max*/)) { - state.head.name += String.fromCharCode(len); - } - } while (len && copy < have); - - if (state.flags & 0x0200) { - state.check = crc32(state.check, input, copy, next); - } - have -= copy; - next += copy; - if (len) { break inf_leave; } - } - else if (state.head) { - state.head.name = null; - } - state.length = 0; - state.mode = COMMENT; - /* falls through */ - case COMMENT: - if (state.flags & 0x1000) { - if (have === 0) { break inf_leave; } - copy = 0; - do { - len = input[next + copy++]; - /* use constant limit because in js we should not preallocate memory */ - if (state.head && len && - (state.length < 65536 /*state.head.comm_max*/)) { - state.head.comment += String.fromCharCode(len); - } - } while (len && copy < have); - if (state.flags & 0x0200) { - state.check = crc32(state.check, input, copy, next); - } - have -= copy; - next += copy; - if (len) { break inf_leave; } - } - else if (state.head) { - state.head.comment = null; - } - state.mode = HCRC; - /* falls through */ - case HCRC: - if (state.flags & 0x0200) { - //=== NEEDBITS(16); */ - while (bits < 16) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - if (hold !== (state.check & 0xffff)) { - strm.msg = 'header crc mismatch'; - state.mode = BAD; - break; - } - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - } - if (state.head) { - state.head.hcrc = ((state.flags >> 9) & 1); - state.head.done = true; - } - strm.adler = state.check = 0 /*crc32(0L, Z_NULL, 0)*/; - state.mode = TYPE; - break; - case DICTID: - //=== NEEDBITS(32); */ - while (bits < 32) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - strm.adler = state.check = ZSWAP32(hold); - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - state.mode = DICT; - /* falls through */ - case DICT: - if (state.havedict === 0) { - //--- RESTORE() --- - strm.next_out = put; - strm.avail_out = left; - strm.next_in = next; - strm.avail_in = have; - state.hold = hold; - state.bits = bits; - //--- - return Z_NEED_DICT; - } - strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/; - state.mode = TYPE; - /* falls through */ - case TYPE: - if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; } - /* falls through */ - case TYPEDO: - if (state.last) { - //--- BYTEBITS() ---// - hold >>>= bits & 7; - bits -= bits & 7; - //---// - state.mode = CHECK; - break; - } - //=== NEEDBITS(3); */ - while (bits < 3) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - state.last = (hold & 0x01)/*BITS(1)*/; - //--- DROPBITS(1) ---// - hold >>>= 1; - bits -= 1; - //---// - - switch ((hold & 0x03)/*BITS(2)*/) { - case 0: /* stored block */ - //Tracev((stderr, "inflate: stored block%s\n", - // state.last ? " (last)" : "")); - state.mode = STORED; - break; - case 1: /* fixed block */ - fixedtables(state); - //Tracev((stderr, "inflate: fixed codes block%s\n", - // state.last ? " (last)" : "")); - state.mode = LEN_; /* decode codes */ - if (flush === Z_TREES) { - //--- DROPBITS(2) ---// - hold >>>= 2; - bits -= 2; - //---// - break inf_leave; - } - break; - case 2: /* dynamic block */ - //Tracev((stderr, "inflate: dynamic codes block%s\n", - // state.last ? " (last)" : "")); - state.mode = TABLE; - break; - case 3: - strm.msg = 'invalid block type'; - state.mode = BAD; - } - //--- DROPBITS(2) ---// - hold >>>= 2; - bits -= 2; - //---// - break; - case STORED: - //--- BYTEBITS() ---// /* go to byte boundary */ - hold >>>= bits & 7; - bits -= bits & 7; - //---// - //=== NEEDBITS(32); */ - while (bits < 32) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) { - strm.msg = 'invalid stored block lengths'; - state.mode = BAD; - break; - } - state.length = hold & 0xffff; - //Tracev((stderr, "inflate: stored length %u\n", - // state.length)); - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - state.mode = COPY_; - if (flush === Z_TREES) { break inf_leave; } - /* falls through */ - case COPY_: - state.mode = COPY; - /* falls through */ - case COPY: - copy = state.length; - if (copy) { - if (copy > have) { copy = have; } - if (copy > left) { copy = left; } - if (copy === 0) { break inf_leave; } - //--- zmemcpy(put, next, copy); --- - utils.arraySet(output, input, next, copy, put); - //---// - have -= copy; - next += copy; - left -= copy; - put += copy; - state.length -= copy; - break; - } - //Tracev((stderr, "inflate: stored end\n")); - state.mode = TYPE; - break; - case TABLE: - //=== NEEDBITS(14); */ - while (bits < 14) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257; - //--- DROPBITS(5) ---// - hold >>>= 5; - bits -= 5; - //---// - state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1; - //--- DROPBITS(5) ---// - hold >>>= 5; - bits -= 5; - //---// - state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4; - //--- DROPBITS(4) ---// - hold >>>= 4; - bits -= 4; - //---// -//#ifndef PKZIP_BUG_WORKAROUND - if (state.nlen > 286 || state.ndist > 30) { - strm.msg = 'too many length or distance symbols'; - state.mode = BAD; - break; - } -//#endif - //Tracev((stderr, "inflate: table sizes ok\n")); - state.have = 0; - state.mode = LENLENS; - /* falls through */ - case LENLENS: - while (state.have < state.ncode) { - //=== NEEDBITS(3); - while (bits < 3) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - state.lens[order[state.have++]] = (hold & 0x07);//BITS(3); - //--- DROPBITS(3) ---// - hold >>>= 3; - bits -= 3; - //---// - } - while (state.have < 19) { - state.lens[order[state.have++]] = 0; - } - // We have separate tables & no pointers. 2 commented lines below not needed. - //state.next = state.codes; - //state.lencode = state.next; - // Switch to use dynamic table - state.lencode = state.lendyn; - state.lenbits = 7; - - opts = {bits: state.lenbits}; - ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts); - state.lenbits = opts.bits; - - if (ret) { - strm.msg = 'invalid code lengths set'; - state.mode = BAD; - break; - } - //Tracev((stderr, "inflate: code lengths ok\n")); - state.have = 0; - state.mode = CODELENS; - /* falls through */ - case CODELENS: - while (state.have < state.nlen + state.ndist) { - for (;;) { - here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/ - here_bits = here >>> 24; - here_op = (here >>> 16) & 0xff; - here_val = here & 0xffff; - - if ((here_bits) <= bits) { break; } - //--- PULLBYTE() ---// - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - //---// - } - if (here_val < 16) { - //--- DROPBITS(here.bits) ---// - hold >>>= here_bits; - bits -= here_bits; - //---// - state.lens[state.have++] = here_val; - } - else { - if (here_val === 16) { - //=== NEEDBITS(here.bits + 2); - n = here_bits + 2; - while (bits < n) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - //--- DROPBITS(here.bits) ---// - hold >>>= here_bits; - bits -= here_bits; - //---// - if (state.have === 0) { - strm.msg = 'invalid bit length repeat'; - state.mode = BAD; - break; - } - len = state.lens[state.have - 1]; - copy = 3 + (hold & 0x03);//BITS(2); - //--- DROPBITS(2) ---// - hold >>>= 2; - bits -= 2; - //---// - } - else if (here_val === 17) { - //=== NEEDBITS(here.bits + 3); - n = here_bits + 3; - while (bits < n) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - //--- DROPBITS(here.bits) ---// - hold >>>= here_bits; - bits -= here_bits; - //---// - len = 0; - copy = 3 + (hold & 0x07);//BITS(3); - //--- DROPBITS(3) ---// - hold >>>= 3; - bits -= 3; - //---// - } - else { - //=== NEEDBITS(here.bits + 7); - n = here_bits + 7; - while (bits < n) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - //--- DROPBITS(here.bits) ---// - hold >>>= here_bits; - bits -= here_bits; - //---// - len = 0; - copy = 11 + (hold & 0x7f);//BITS(7); - //--- DROPBITS(7) ---// - hold >>>= 7; - bits -= 7; - //---// - } - if (state.have + copy > state.nlen + state.ndist) { - strm.msg = 'invalid bit length repeat'; - state.mode = BAD; - break; - } - while (copy--) { - state.lens[state.have++] = len; - } - } - } - - /* handle error breaks in while */ - if (state.mode === BAD) { break; } - - /* check for end-of-block code (better have one) */ - if (state.lens[256] === 0) { - strm.msg = 'invalid code -- missing end-of-block'; - state.mode = BAD; - break; - } - - /* build code tables -- note: do not change the lenbits or distbits - values here (9 and 6) without reading the comments in inftrees.h - concerning the ENOUGH constants, which depend on those values */ - state.lenbits = 9; - - opts = {bits: state.lenbits}; - ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts); - // We have separate tables & no pointers. 2 commented lines below not needed. - // state.next_index = opts.table_index; - state.lenbits = opts.bits; - // state.lencode = state.next; - - if (ret) { - strm.msg = 'invalid literal/lengths set'; - state.mode = BAD; - break; - } - - state.distbits = 6; - //state.distcode.copy(state.codes); - // Switch to use dynamic table - state.distcode = state.distdyn; - opts = {bits: state.distbits}; - ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts); - // We have separate tables & no pointers. 2 commented lines below not needed. - // state.next_index = opts.table_index; - state.distbits = opts.bits; - // state.distcode = state.next; - - if (ret) { - strm.msg = 'invalid distances set'; - state.mode = BAD; - break; - } - //Tracev((stderr, 'inflate: codes ok\n')); - state.mode = LEN_; - if (flush === Z_TREES) { break inf_leave; } - /* falls through */ - case LEN_: - state.mode = LEN; - /* falls through */ - case LEN: - if (have >= 6 && left >= 258) { - //--- RESTORE() --- - strm.next_out = put; - strm.avail_out = left; - strm.next_in = next; - strm.avail_in = have; - state.hold = hold; - state.bits = bits; - //--- - inflate_fast(strm, _out); - //--- LOAD() --- - put = strm.next_out; - output = strm.output; - left = strm.avail_out; - next = strm.next_in; - input = strm.input; - have = strm.avail_in; - hold = state.hold; - bits = state.bits; - //--- - - if (state.mode === TYPE) { - state.back = -1; - } - break; - } - state.back = 0; - for (;;) { - here = state.lencode[hold & ((1 << state.lenbits) -1)]; /*BITS(state.lenbits)*/ - here_bits = here >>> 24; - here_op = (here >>> 16) & 0xff; - here_val = here & 0xffff; - - if (here_bits <= bits) { break; } - //--- PULLBYTE() ---// - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - //---// - } - if (here_op && (here_op & 0xf0) === 0) { - last_bits = here_bits; - last_op = here_op; - last_val = here_val; - for (;;) { - here = state.lencode[last_val + - ((hold & ((1 << (last_bits + last_op)) -1))/*BITS(last.bits + last.op)*/ >> last_bits)]; - here_bits = here >>> 24; - here_op = (here >>> 16) & 0xff; - here_val = here & 0xffff; - - if ((last_bits + here_bits) <= bits) { break; } - //--- PULLBYTE() ---// - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - //---// - } - //--- DROPBITS(last.bits) ---// - hold >>>= last_bits; - bits -= last_bits; - //---// - state.back += last_bits; - } - //--- DROPBITS(here.bits) ---// - hold >>>= here_bits; - bits -= here_bits; - //---// - state.back += here_bits; - state.length = here_val; - if (here_op === 0) { - //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? - // "inflate: literal '%c'\n" : - // "inflate: literal 0x%02x\n", here.val)); - state.mode = LIT; - break; - } - if (here_op & 32) { - //Tracevv((stderr, "inflate: end of block\n")); - state.back = -1; - state.mode = TYPE; - break; - } - if (here_op & 64) { - strm.msg = 'invalid literal/length code'; - state.mode = BAD; - break; - } - state.extra = here_op & 15; - state.mode = LENEXT; - /* falls through */ - case LENEXT: - if (state.extra) { - //=== NEEDBITS(state.extra); - n = state.extra; - while (bits < n) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - state.length += hold & ((1 << state.extra) -1)/*BITS(state.extra)*/; - //--- DROPBITS(state.extra) ---// - hold >>>= state.extra; - bits -= state.extra; - //---// - state.back += state.extra; - } - //Tracevv((stderr, "inflate: length %u\n", state.length)); - state.was = state.length; - state.mode = DIST; - /* falls through */ - case DIST: - for (;;) { - here = state.distcode[hold & ((1 << state.distbits) -1)];/*BITS(state.distbits)*/ - here_bits = here >>> 24; - here_op = (here >>> 16) & 0xff; - here_val = here & 0xffff; - - if ((here_bits) <= bits) { break; } - //--- PULLBYTE() ---// - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - //---// - } - if ((here_op & 0xf0) === 0) { - last_bits = here_bits; - last_op = here_op; - last_val = here_val; - for (;;) { - here = state.distcode[last_val + - ((hold & ((1 << (last_bits + last_op)) -1))/*BITS(last.bits + last.op)*/ >> last_bits)]; - here_bits = here >>> 24; - here_op = (here >>> 16) & 0xff; - here_val = here & 0xffff; - - if ((last_bits + here_bits) <= bits) { break; } - //--- PULLBYTE() ---// - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - //---// - } - //--- DROPBITS(last.bits) ---// - hold >>>= last_bits; - bits -= last_bits; - //---// - state.back += last_bits; - } - //--- DROPBITS(here.bits) ---// - hold >>>= here_bits; - bits -= here_bits; - //---// - state.back += here_bits; - if (here_op & 64) { - strm.msg = 'invalid distance code'; - state.mode = BAD; - break; - } - state.offset = here_val; - state.extra = (here_op) & 15; - state.mode = DISTEXT; - /* falls through */ - case DISTEXT: - if (state.extra) { - //=== NEEDBITS(state.extra); - n = state.extra; - while (bits < n) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - state.offset += hold & ((1 << state.extra) -1)/*BITS(state.extra)*/; - //--- DROPBITS(state.extra) ---// - hold >>>= state.extra; - bits -= state.extra; - //---// - state.back += state.extra; - } -//#ifdef INFLATE_STRICT - if (state.offset > state.dmax) { - strm.msg = 'invalid distance too far back'; - state.mode = BAD; - break; - } -//#endif - //Tracevv((stderr, "inflate: distance %u\n", state.offset)); - state.mode = MATCH; - /* falls through */ - case MATCH: - if (left === 0) { break inf_leave; } - copy = _out - left; - if (state.offset > copy) { /* copy from window */ - copy = state.offset - copy; - if (copy > state.whave) { - if (state.sane) { - strm.msg = 'invalid distance too far back'; - state.mode = BAD; - break; - } -// (!) This block is disabled in zlib defailts, -// don't enable it for binary compatibility -//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR -// Trace((stderr, "inflate.c too far\n")); -// copy -= state.whave; -// if (copy > state.length) { copy = state.length; } -// if (copy > left) { copy = left; } -// left -= copy; -// state.length -= copy; -// do { -// output[put++] = 0; -// } while (--copy); -// if (state.length === 0) { state.mode = LEN; } -// break; -//#endif - } - if (copy > state.wnext) { - copy -= state.wnext; - from = state.wsize - copy; - } - else { - from = state.wnext - copy; - } - if (copy > state.length) { copy = state.length; } - from_source = state.window; - } - else { /* copy from output */ - from_source = output; - from = put - state.offset; - copy = state.length; - } - if (copy > left) { copy = left; } - left -= copy; - state.length -= copy; - do { - output[put++] = from_source[from++]; - } while (--copy); - if (state.length === 0) { state.mode = LEN; } - break; - case LIT: - if (left === 0) { break inf_leave; } - output[put++] = state.length; - left--; - state.mode = LEN; - break; - case CHECK: - if (state.wrap) { - //=== NEEDBITS(32); - while (bits < 32) { - if (have === 0) { break inf_leave; } - have--; - // Use '|' insdead of '+' to make sure that result is signed - hold |= input[next++] << bits; - bits += 8; - } - //===// - _out -= left; - strm.total_out += _out; - state.total += _out; - if (_out) { - strm.adler = state.check = - /*UPDATE(state.check, put - _out, _out);*/ - (state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out)); - - } - _out = left; - // NB: crc32 stored as signed 32-bit int, ZSWAP32 returns signed too - if ((state.flags ? hold : ZSWAP32(hold)) !== state.check) { - strm.msg = 'incorrect data check'; - state.mode = BAD; - break; - } - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - //Tracev((stderr, "inflate: check matches trailer\n")); - } - state.mode = LENGTH; - /* falls through */ - case LENGTH: - if (state.wrap && state.flags) { - //=== NEEDBITS(32); - while (bits < 32) { - if (have === 0) { break inf_leave; } - have--; - hold += input[next++] << bits; - bits += 8; - } - //===// - if (hold !== (state.total & 0xffffffff)) { - strm.msg = 'incorrect length check'; - state.mode = BAD; - break; - } - //=== INITBITS(); - hold = 0; - bits = 0; - //===// - //Tracev((stderr, "inflate: length matches trailer\n")); - } - state.mode = DONE; - /* falls through */ - case DONE: - ret = Z_STREAM_END; - break inf_leave; - case BAD: - ret = Z_DATA_ERROR; - break inf_leave; - case MEM: - return Z_MEM_ERROR; - case SYNC: - /* falls through */ - default: - return Z_STREAM_ERROR; - } - } - - // inf_leave <- here is real place for "goto inf_leave", emulated via "break inf_leave" - - /* - Return from inflate(), updating the total counts and the check value. - If there was no progress during the inflate() call, return a buffer - error. Call updatewindow() to create and/or update the window state. - Note: a memory error from inflate() is non-recoverable. - */ - - //--- RESTORE() --- - strm.next_out = put; - strm.avail_out = left; - strm.next_in = next; - strm.avail_in = have; - state.hold = hold; - state.bits = bits; - //--- - - if (state.wsize || (_out !== strm.avail_out && state.mode < BAD && - (state.mode < CHECK || flush !== Z_FINISH))) { - if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) { - state.mode = MEM; - return Z_MEM_ERROR; - } - } - _in -= strm.avail_in; - _out -= strm.avail_out; - strm.total_in += _in; - strm.total_out += _out; - state.total += _out; - if (state.wrap && _out) { - strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/ - (state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out)); - } - strm.data_type = state.bits + (state.last ? 64 : 0) + - (state.mode === TYPE ? 128 : 0) + - (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0); - if (((_in === 0 && _out === 0) || flush === Z_FINISH) && ret === Z_OK) { - ret = Z_BUF_ERROR; - } - return ret; -} - -function inflateEnd(strm) { - - if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) { - return Z_STREAM_ERROR; - } - - var state = strm.state; - if (state.window) { - state.window = null; - } - strm.state = null; - return Z_OK; -} - -function inflateGetHeader(strm, head) { - var state; - - /* check state */ - if (!strm || !strm.state) { return Z_STREAM_ERROR; } - state = strm.state; - if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR; } - - /* save header structure */ - state.head = head; - head.done = false; - return Z_OK; -} - - -exports.inflateReset = inflateReset; -exports.inflateReset2 = inflateReset2; -exports.inflateResetKeep = inflateResetKeep; -exports.inflateInit = inflateInit; -exports.inflateInit2 = inflateInit2; -exports.inflate = inflate; -exports.inflateEnd = inflateEnd; -exports.inflateGetHeader = inflateGetHeader; -exports.inflateInfo = 'pako inflate (from Nodeca project)'; - -/* Not implemented -exports.inflateCopy = inflateCopy; -exports.inflateGetDictionary = inflateGetDictionary; -exports.inflateMark = inflateMark; -exports.inflatePrime = inflatePrime; -exports.inflateSetDictionary = inflateSetDictionary; -exports.inflateSync = inflateSync; -exports.inflateSyncPoint = inflateSyncPoint; -exports.inflateUndermine = inflateUndermine; -*/ -},{"../utils/common":27,"./adler32":29,"./crc32":31,"./inffast":34,"./inftrees":36}],36:[function(_dereq_,module,exports){ -'use strict'; - - -var utils = _dereq_('../utils/common'); - -var MAXBITS = 15; -var ENOUGH_LENS = 852; -var ENOUGH_DISTS = 592; -//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS); - -var CODES = 0; -var LENS = 1; -var DISTS = 2; - -var lbase = [ /* Length codes 257..285 base */ - 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, - 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0 -]; - -var lext = [ /* Length codes 257..285 extra */ - 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, - 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78 -]; - -var dbase = [ /* Distance codes 0..29 base */ - 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, - 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, - 8193, 12289, 16385, 24577, 0, 0 -]; - -var dext = [ /* Distance codes 0..29 extra */ - 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, - 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, - 28, 28, 29, 29, 64, 64 -]; - -module.exports = function inflate_table(type, lens, lens_index, codes, table, table_index, work, opts) -{ - var bits = opts.bits; - //here = opts.here; /* table entry for duplication */ - - var len = 0; /* a code's length in bits */ - var sym = 0; /* index of code symbols */ - var min = 0, max = 0; /* minimum and maximum code lengths */ - var root = 0; /* number of index bits for root table */ - var curr = 0; /* number of index bits for current table */ - var drop = 0; /* code bits to drop for sub-table */ - var left = 0; /* number of prefix codes available */ - var used = 0; /* code entries in table used */ - var huff = 0; /* Huffman code */ - var incr; /* for incrementing code, index */ - var fill; /* index for replicating entries */ - var low; /* low bits for current root entry */ - var mask; /* mask for low root bits */ - var next; /* next available space in table */ - var base = null; /* base value table to use */ - var base_index = 0; -// var shoextra; /* extra bits table to use */ - var end; /* use base and extra for symbol > end */ - var count = new utils.Buf16(MAXBITS+1); //[MAXBITS+1]; /* number of codes of each length */ - var offs = new utils.Buf16(MAXBITS+1); //[MAXBITS+1]; /* offsets in table for each length */ - var extra = null; - var extra_index = 0; - - var here_bits, here_op, here_val; - - /* - Process a set of code lengths to create a canonical Huffman code. The - code lengths are lens[0..codes-1]. Each length corresponds to the - symbols 0..codes-1. The Huffman code is generated by first sorting the - symbols by length from short to long, and retaining the symbol order - for codes with equal lengths. Then the code starts with all zero bits - for the first code of the shortest length, and the codes are integer - increments for the same length, and zeros are appended as the length - increases. For the deflate format, these bits are stored backwards - from their more natural integer increment ordering, and so when the - decoding tables are built in the large loop below, the integer codes - are incremented backwards. - - This routine assumes, but does not check, that all of the entries in - lens[] are in the range 0..MAXBITS. The caller must assure this. - 1..MAXBITS is interpreted as that code length. zero means that that - symbol does not occur in this code. - - The codes are sorted by computing a count of codes for each length, - creating from that a table of starting indices for each length in the - sorted table, and then entering the symbols in order in the sorted - table. The sorted table is work[], with that space being provided by - the caller. - - The length counts are used for other purposes as well, i.e. finding - the minimum and maximum length codes, determining if there are any - codes at all, checking for a valid set of lengths, and looking ahead - at length counts to determine sub-table sizes when building the - decoding tables. - */ - - /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */ - for (len = 0; len <= MAXBITS; len++) { - count[len] = 0; - } - for (sym = 0; sym < codes; sym++) { - count[lens[lens_index + sym]]++; - } - - /* bound code lengths, force root to be within code lengths */ - root = bits; - for (max = MAXBITS; max >= 1; max--) { - if (count[max] !== 0) { break; } - } - if (root > max) { - root = max; - } - if (max === 0) { /* no symbols to code at all */ - //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */ - //table.bits[opts.table_index] = 1; //here.bits = (var char)1; - //table.val[opts.table_index++] = 0; //here.val = (var short)0; - table[table_index++] = (1 << 24) | (64 << 16) | 0; - - - //table.op[opts.table_index] = 64; - //table.bits[opts.table_index] = 1; - //table.val[opts.table_index++] = 0; - table[table_index++] = (1 << 24) | (64 << 16) | 0; - - opts.bits = 1; - return 0; /* no symbols, but wait for decoding to report error */ - } - for (min = 1; min < max; min++) { - if (count[min] !== 0) { break; } - } - if (root < min) { - root = min; - } - - /* check for an over-subscribed or incomplete set of lengths */ - left = 1; - for (len = 1; len <= MAXBITS; len++) { - left <<= 1; - left -= count[len]; - if (left < 0) { - return -1; - } /* over-subscribed */ - } - if (left > 0 && (type === CODES || max !== 1)) { - return -1; /* incomplete set */ - } - - /* generate offsets into symbol table for each length for sorting */ - offs[1] = 0; - for (len = 1; len < MAXBITS; len++) { - offs[len + 1] = offs[len] + count[len]; - } - - /* sort symbols by length, by symbol order within each length */ - for (sym = 0; sym < codes; sym++) { - if (lens[lens_index + sym] !== 0) { - work[offs[lens[lens_index + sym]]++] = sym; - } - } - - /* - Create and fill in decoding tables. In this loop, the table being - filled is at next and has curr index bits. The code being used is huff - with length len. That code is converted to an index by dropping drop - bits off of the bottom. For codes where len is less than drop + curr, - those top drop + curr - len bits are incremented through all values to - fill the table with replicated entries. - - root is the number of index bits for the root table. When len exceeds - root, sub-tables are created pointed to by the root entry with an index - of the low root bits of huff. This is saved in low to check for when a - new sub-table should be started. drop is zero when the root table is - being filled, and drop is root when sub-tables are being filled. - - When a new sub-table is needed, it is necessary to look ahead in the - code lengths to determine what size sub-table is needed. The length - counts are used for this, and so count[] is decremented as codes are - entered in the tables. - - used keeps track of how many table entries have been allocated from the - provided *table space. It is checked for LENS and DIST tables against - the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in - the initial root table size constants. See the comments in inftrees.h - for more information. - - sym increments through all symbols, and the loop terminates when - all codes of length max, i.e. all codes, have been processed. This - routine permits incomplete codes, so another loop after this one fills - in the rest of the decoding tables with invalid code markers. - */ - - /* set up for code type */ - // poor man optimization - use if-else instead of switch, - // to avoid deopts in old v8 - if (type === CODES) { - base = extra = work; /* dummy value--not used */ - end = 19; - } else if (type === LENS) { - base = lbase; - base_index -= 257; - extra = lext; - extra_index -= 257; - end = 256; - } else { /* DISTS */ - base = dbase; - extra = dext; - end = -1; - } - - /* initialize opts for loop */ - huff = 0; /* starting code */ - sym = 0; /* starting code symbol */ - len = min; /* starting code length */ - next = table_index; /* current table to fill in */ - curr = root; /* current table index bits */ - drop = 0; /* current bits to drop from code for index */ - low = -1; /* trigger new sub-table when len > root */ - used = 1 << root; /* use root table entries */ - mask = used - 1; /* mask for comparing low */ - - /* check available table space */ - if ((type === LENS && used > ENOUGH_LENS) || - (type === DISTS && used > ENOUGH_DISTS)) { - return 1; - } - - var i=0; - /* process all codes and make table entries */ - for (;;) { - i++; - /* create table entry */ - here_bits = len - drop; - if (work[sym] < end) { - here_op = 0; - here_val = work[sym]; - } - else if (work[sym] > end) { - here_op = extra[extra_index + work[sym]]; - here_val = base[base_index + work[sym]]; - } - else { - here_op = 32 + 64; /* end of block */ - here_val = 0; - } - - /* replicate for those indices with low len bits equal to huff */ - incr = 1 << (len - drop); - fill = 1 << curr; - min = fill; /* save offset to next table */ - do { - fill -= incr; - table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0; - } while (fill !== 0); - - /* backwards increment the len-bit code huff */ - incr = 1 << (len - 1); - while (huff & incr) { - incr >>= 1; - } - if (incr !== 0) { - huff &= incr - 1; - huff += incr; - } else { - huff = 0; - } - - /* go to next symbol, update count, len */ - sym++; - if (--count[len] === 0) { - if (len === max) { break; } - len = lens[lens_index + work[sym]]; - } - - /* create new sub-table if needed */ - if (len > root && (huff & mask) !== low) { - /* if first time, transition to sub-tables */ - if (drop === 0) { - drop = root; - } - - /* increment past last table */ - next += min; /* here min is 1 << curr */ - - /* determine length of next table */ - curr = len - drop; - left = 1 << curr; - while (curr + drop < max) { - left -= count[curr + drop]; - if (left <= 0) { break; } - curr++; - left <<= 1; - } - - /* check for enough space */ - used += 1 << curr; - if ((type === LENS && used > ENOUGH_LENS) || - (type === DISTS && used > ENOUGH_DISTS)) { - return 1; - } - - /* point entry in root table to sub-table */ - low = huff & mask; - /*table.op[low] = curr; - table.bits[low] = root; - table.val[low] = next - opts.table_index;*/ - table[low] = (root << 24) | (curr << 16) | (next - table_index) |0; - } - } - - /* fill in remaining table entry if code is incomplete (guaranteed to have - at most one remaining entry, since if the code is incomplete, the - maximum code length that was allowed to get this far is one bit) */ - if (huff !== 0) { - //table.op[next + huff] = 64; /* invalid code marker */ - //table.bits[next + huff] = len - drop; - //table.val[next + huff] = 0; - table[next + huff] = ((len - drop) << 24) | (64 << 16) |0; - } - - /* set return parameters */ - //opts.table_index += used; - opts.bits = root; - return 0; -}; - -},{"../utils/common":27}],37:[function(_dereq_,module,exports){ -'use strict'; - -module.exports = { - '2': 'need dictionary', /* Z_NEED_DICT 2 */ - '1': 'stream end', /* Z_STREAM_END 1 */ - '0': '', /* Z_OK 0 */ - '-1': 'file error', /* Z_ERRNO (-1) */ - '-2': 'stream error', /* Z_STREAM_ERROR (-2) */ - '-3': 'data error', /* Z_DATA_ERROR (-3) */ - '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */ - '-5': 'buffer error', /* Z_BUF_ERROR (-5) */ - '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */ -}; -},{}],38:[function(_dereq_,module,exports){ -'use strict'; - - -var utils = _dereq_('../utils/common'); - -/* Public constants ==========================================================*/ -/* ===========================================================================*/ - - -//var Z_FILTERED = 1; -//var Z_HUFFMAN_ONLY = 2; -//var Z_RLE = 3; -var Z_FIXED = 4; -//var Z_DEFAULT_STRATEGY = 0; - -/* Possible values of the data_type field (though see inflate()) */ -var Z_BINARY = 0; -var Z_TEXT = 1; -//var Z_ASCII = 1; // = Z_TEXT -var Z_UNKNOWN = 2; - -/*============================================================================*/ - - -function zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } } - -// From zutil.h - -var STORED_BLOCK = 0; -var STATIC_TREES = 1; -var DYN_TREES = 2; -/* The three kinds of block type */ - -var MIN_MATCH = 3; -var MAX_MATCH = 258; -/* The minimum and maximum match lengths */ - -// From deflate.h -/* =========================================================================== - * Internal compression state. - */ - -var LENGTH_CODES = 29; -/* number of length codes, not counting the special END_BLOCK code */ - -var LITERALS = 256; -/* number of literal bytes 0..255 */ - -var L_CODES = LITERALS + 1 + LENGTH_CODES; -/* number of Literal or Length codes, including the END_BLOCK code */ - -var D_CODES = 30; -/* number of distance codes */ - -var BL_CODES = 19; -/* number of codes used to transfer the bit lengths */ - -var HEAP_SIZE = 2*L_CODES + 1; -/* maximum heap size */ - -var MAX_BITS = 15; -/* All codes must not exceed MAX_BITS bits */ - -var Buf_size = 16; -/* size of bit buffer in bi_buf */ - - -/* =========================================================================== - * Constants - */ - -var MAX_BL_BITS = 7; -/* Bit length codes must not exceed MAX_BL_BITS bits */ - -var END_BLOCK = 256; -/* end of block literal code */ - -var REP_3_6 = 16; -/* repeat previous bit length 3-6 times (2 bits of repeat count) */ - -var REPZ_3_10 = 17; -/* repeat a zero length 3-10 times (3 bits of repeat count) */ - -var REPZ_11_138 = 18; -/* repeat a zero length 11-138 times (7 bits of repeat count) */ - -var extra_lbits = /* extra bits for each length code */ - [0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]; - -var extra_dbits = /* extra bits for each distance code */ - [0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]; - -var extra_blbits = /* extra bits for each bit length code */ - [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]; - -var bl_order = - [16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]; -/* The lengths of the bit length codes are sent in order of decreasing - * probability, to avoid transmitting the lengths for unused bit length codes. - */ - -/* =========================================================================== - * Local data. These are initialized only once. - */ - -// We pre-fill arrays with 0 to avoid uninitialized gaps - -var DIST_CODE_LEN = 512; /* see definition of array dist_code below */ - -// !!!! Use flat array insdead of structure, Freq = i*2, Len = i*2+1 -var static_ltree = new Array((L_CODES+2) * 2); -zero(static_ltree); -/* The static literal tree. Since the bit lengths are imposed, there is no - * need for the L_CODES extra codes used during heap construction. However - * The codes 286 and 287 are needed to build a canonical tree (see _tr_init - * below). - */ - -var static_dtree = new Array(D_CODES * 2); -zero(static_dtree); -/* The static distance tree. (Actually a trivial tree since all codes use - * 5 bits.) - */ - -var _dist_code = new Array(DIST_CODE_LEN); -zero(_dist_code); -/* Distance codes. The first 256 values correspond to the distances - * 3 .. 258, the last 256 values correspond to the top 8 bits of - * the 15 bit distances. - */ - -var _length_code = new Array(MAX_MATCH-MIN_MATCH+1); -zero(_length_code); -/* length code for each normalized match length (0 == MIN_MATCH) */ - -var base_length = new Array(LENGTH_CODES); -zero(base_length); -/* First normalized length for each code (0 = MIN_MATCH) */ - -var base_dist = new Array(D_CODES); -zero(base_dist); -/* First normalized distance for each code (0 = distance of 1) */ - - -var StaticTreeDesc = function (static_tree, extra_bits, extra_base, elems, max_length) { - - this.static_tree = static_tree; /* static tree or NULL */ - this.extra_bits = extra_bits; /* extra bits for each code or NULL */ - this.extra_base = extra_base; /* base index for extra_bits */ - this.elems = elems; /* max number of elements in the tree */ - this.max_length = max_length; /* max bit length for the codes */ - - // show if `static_tree` has data or dummy - needed for monomorphic objects - this.has_stree = static_tree && static_tree.length; -}; - - -var static_l_desc; -var static_d_desc; -var static_bl_desc; - - -var TreeDesc = function(dyn_tree, stat_desc) { - this.dyn_tree = dyn_tree; /* the dynamic tree */ - this.max_code = 0; /* largest code with non zero frequency */ - this.stat_desc = stat_desc; /* the corresponding static tree */ -}; - - - -function d_code(dist) { - return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)]; -} - - -/* =========================================================================== - * Output a short LSB first on the stream. - * IN assertion: there is enough room in pendingBuf. - */ -function put_short (s, w) { -// put_byte(s, (uch)((w) & 0xff)); -// put_byte(s, (uch)((ush)(w) >> 8)); - s.pending_buf[s.pending++] = (w) & 0xff; - s.pending_buf[s.pending++] = (w >>> 8) & 0xff; -} - - -/* =========================================================================== - * Send a value on a given number of bits. - * IN assertion: length <= 16 and value fits in length bits. - */ -function send_bits(s, value, length) { - if (s.bi_valid > (Buf_size - length)) { - s.bi_buf |= (value << s.bi_valid) & 0xffff; - put_short(s, s.bi_buf); - s.bi_buf = value >> (Buf_size - s.bi_valid); - s.bi_valid += length - Buf_size; - } else { - s.bi_buf |= (value << s.bi_valid) & 0xffff; - s.bi_valid += length; - } -} - - -function send_code(s, c, tree) { - send_bits(s, tree[c*2]/*.Code*/, tree[c*2 + 1]/*.Len*/); -} - - -/* =========================================================================== - * Reverse the first len bits of a code, using straightforward code (a faster - * method would use a table) - * IN assertion: 1 <= len <= 15 - */ -function bi_reverse(code, len) { - var res = 0; - do { - res |= code & 1; - code >>>= 1; - res <<= 1; - } while (--len > 0); - return res >>> 1; -} - - -/* =========================================================================== - * Flush the bit buffer, keeping at most 7 bits in it. - */ -function bi_flush(s) { - if (s.bi_valid === 16) { - put_short(s, s.bi_buf); - s.bi_buf = 0; - s.bi_valid = 0; - - } else if (s.bi_valid >= 8) { - s.pending_buf[s.pending++] = s.bi_buf & 0xff; - s.bi_buf >>= 8; - s.bi_valid -= 8; - } -} - - -/* =========================================================================== - * Compute the optimal bit lengths for a tree and update the total bit length - * for the current block. - * IN assertion: the fields freq and dad are set, heap[heap_max] and - * above are the tree nodes sorted by increasing frequency. - * OUT assertions: the field len is set to the optimal bit length, the - * array bl_count contains the frequencies for each bit length. - * The length opt_len is updated; static_len is also updated if stree is - * not null. - */ -function gen_bitlen(s, desc) -// deflate_state *s; -// tree_desc *desc; /* the tree descriptor */ -{ - var tree = desc.dyn_tree; - var max_code = desc.max_code; - var stree = desc.stat_desc.static_tree; - var has_stree = desc.stat_desc.has_stree; - var extra = desc.stat_desc.extra_bits; - var base = desc.stat_desc.extra_base; - var max_length = desc.stat_desc.max_length; - var h; /* heap index */ - var n, m; /* iterate over the tree elements */ - var bits; /* bit length */ - var xbits; /* extra bits */ - var f; /* frequency */ - var overflow = 0; /* number of elements with bit length too large */ - - for (bits = 0; bits <= MAX_BITS; bits++) { - s.bl_count[bits] = 0; - } - - /* In a first pass, compute the optimal bit lengths (which may - * overflow in the case of the bit length tree). - */ - tree[s.heap[s.heap_max]*2 + 1]/*.Len*/ = 0; /* root of the heap */ - - for (h = s.heap_max+1; h < HEAP_SIZE; h++) { - n = s.heap[h]; - bits = tree[tree[n*2 +1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1; - if (bits > max_length) { - bits = max_length; - overflow++; - } - tree[n*2 + 1]/*.Len*/ = bits; - /* We overwrite tree[n].Dad which is no longer needed */ - - if (n > max_code) { continue; } /* not a leaf node */ - - s.bl_count[bits]++; - xbits = 0; - if (n >= base) { - xbits = extra[n-base]; - } - f = tree[n * 2]/*.Freq*/; - s.opt_len += f * (bits + xbits); - if (has_stree) { - s.static_len += f * (stree[n*2 + 1]/*.Len*/ + xbits); - } - } - if (overflow === 0) { return; } - - // Trace((stderr,"\nbit length overflow\n")); - /* This happens for example on obj2 and pic of the Calgary corpus */ - - /* Find the first bit length which could increase: */ - do { - bits = max_length-1; - while (s.bl_count[bits] === 0) { bits--; } - s.bl_count[bits]--; /* move one leaf down the tree */ - s.bl_count[bits+1] += 2; /* move one overflow item as its brother */ - s.bl_count[max_length]--; - /* The brother of the overflow item also moves one step up, - * but this does not affect bl_count[max_length] - */ - overflow -= 2; - } while (overflow > 0); - - /* Now recompute all bit lengths, scanning in increasing frequency. - * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all - * lengths instead of fixing only the wrong ones. This idea is taken - * from 'ar' written by Haruhiko Okumura.) - */ - for (bits = max_length; bits !== 0; bits--) { - n = s.bl_count[bits]; - while (n !== 0) { - m = s.heap[--h]; - if (m > max_code) { continue; } - if (tree[m*2 + 1]/*.Len*/ !== bits) { - // Trace((stderr,"code %d bits %d->%d\n", m, tree[m].Len, bits)); - s.opt_len += (bits - tree[m*2 + 1]/*.Len*/)*tree[m*2]/*.Freq*/; - tree[m*2 + 1]/*.Len*/ = bits; - } - n--; - } - } -} - - -/* =========================================================================== - * Generate the codes for a given tree and bit counts (which need not be - * optimal). - * IN assertion: the array bl_count contains the bit length statistics for - * the given tree and the field len is set for all tree elements. - * OUT assertion: the field code is set for all tree elements of non - * zero code length. - */ -function gen_codes(tree, max_code, bl_count) -// ct_data *tree; /* the tree to decorate */ -// int max_code; /* largest code with non zero frequency */ -// ushf *bl_count; /* number of codes at each bit length */ -{ - var next_code = new Array(MAX_BITS+1); /* next code value for each bit length */ - var code = 0; /* running code value */ - var bits; /* bit index */ - var n; /* code index */ - - /* The distribution counts are first used to generate the code values - * without bit reversal. - */ - for (bits = 1; bits <= MAX_BITS; bits++) { - next_code[bits] = code = (code + bl_count[bits-1]) << 1; - } - /* Check that the bit counts in bl_count are consistent. The last code - * must be all ones. - */ - //Assert (code + bl_count[MAX_BITS]-1 == (1< length code (0..28) */ - length = 0; - for (code = 0; code < LENGTH_CODES-1; code++) { - base_length[code] = length; - for (n = 0; n < (1< dist code (0..29) */ - dist = 0; - for (code = 0 ; code < 16; code++) { - base_dist[code] = dist; - for (n = 0; n < (1<>= 7; /* from now on, all distances are divided by 128 */ - for ( ; code < D_CODES; code++) { - base_dist[code] = dist << 7; - for (n = 0; n < (1<<(extra_dbits[code]-7)); n++) { - _dist_code[256 + dist++] = code; - } - } - //Assert (dist == 256, "tr_static_init: 256+dist != 512"); - - /* Construct the codes of the static literal tree */ - for (bits = 0; bits <= MAX_BITS; bits++) { - bl_count[bits] = 0; - } - - n = 0; - while (n <= 143) { - static_ltree[n*2 + 1]/*.Len*/ = 8; - n++; - bl_count[8]++; - } - while (n <= 255) { - static_ltree[n*2 + 1]/*.Len*/ = 9; - n++; - bl_count[9]++; - } - while (n <= 279) { - static_ltree[n*2 + 1]/*.Len*/ = 7; - n++; - bl_count[7]++; - } - while (n <= 287) { - static_ltree[n*2 + 1]/*.Len*/ = 8; - n++; - bl_count[8]++; - } - /* Codes 286 and 287 do not exist, but we must include them in the - * tree construction to get a canonical Huffman tree (longest code - * all ones) - */ - gen_codes(static_ltree, L_CODES+1, bl_count); - - /* The static distance tree is trivial: */ - for (n = 0; n < D_CODES; n++) { - static_dtree[n*2 + 1]/*.Len*/ = 5; - static_dtree[n*2]/*.Code*/ = bi_reverse(n, 5); - } - - // Now data ready and we can init static trees - static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS+1, L_CODES, MAX_BITS); - static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES, MAX_BITS); - static_bl_desc =new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES, MAX_BL_BITS); - - //static_init_done = true; -} - - -/* =========================================================================== - * Initialize a new block. - */ -function init_block(s) { - var n; /* iterates over tree elements */ - - /* Initialize the trees. */ - for (n = 0; n < L_CODES; n++) { s.dyn_ltree[n*2]/*.Freq*/ = 0; } - for (n = 0; n < D_CODES; n++) { s.dyn_dtree[n*2]/*.Freq*/ = 0; } - for (n = 0; n < BL_CODES; n++) { s.bl_tree[n*2]/*.Freq*/ = 0; } - - s.dyn_ltree[END_BLOCK*2]/*.Freq*/ = 1; - s.opt_len = s.static_len = 0; - s.last_lit = s.matches = 0; -} - - -/* =========================================================================== - * Flush the bit buffer and align the output on a byte boundary - */ -function bi_windup(s) -{ - if (s.bi_valid > 8) { - put_short(s, s.bi_buf); - } else if (s.bi_valid > 0) { - //put_byte(s, (Byte)s->bi_buf); - s.pending_buf[s.pending++] = s.bi_buf; - } - s.bi_buf = 0; - s.bi_valid = 0; -} - -/* =========================================================================== - * Copy a stored block, storing first the length and its - * one's complement if requested. - */ -function copy_block(s, buf, len, header) -//DeflateState *s; -//charf *buf; /* the input data */ -//unsigned len; /* its length */ -//int header; /* true if block header must be written */ -{ - bi_windup(s); /* align on byte boundary */ - - if (header) { - put_short(s, len); - put_short(s, ~len); - } -// while (len--) { -// put_byte(s, *buf++); -// } - utils.arraySet(s.pending_buf, s.window, buf, len, s.pending); - s.pending += len; -} - -/* =========================================================================== - * Compares to subtrees, using the tree depth as tie breaker when - * the subtrees have equal frequency. This minimizes the worst case length. - */ -function smaller(tree, n, m, depth) { - var _n2 = n*2; - var _m2 = m*2; - return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ || - (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m])); -} - -/* =========================================================================== - * Restore the heap property by moving down the tree starting at node k, - * exchanging a node with the smallest of its two sons if necessary, stopping - * when the heap property is re-established (each father smaller than its - * two sons). - */ -function pqdownheap(s, tree, k) -// deflate_state *s; -// ct_data *tree; /* the tree to restore */ -// int k; /* node to move down */ -{ - var v = s.heap[k]; - var j = k << 1; /* left son of k */ - while (j <= s.heap_len) { - /* Set j to the smallest of the two sons: */ - if (j < s.heap_len && - smaller(tree, s.heap[j+1], s.heap[j], s.depth)) { - j++; - } - /* Exit if v is smaller than both sons */ - if (smaller(tree, v, s.heap[j], s.depth)) { break; } - - /* Exchange v with the smallest son */ - s.heap[k] = s.heap[j]; - k = j; - - /* And continue down the tree, setting j to the left son of k */ - j <<= 1; - } - s.heap[k] = v; -} - - -// inlined manually -// var SMALLEST = 1; - -/* =========================================================================== - * Send the block data compressed using the given Huffman trees - */ -function compress_block(s, ltree, dtree) -// deflate_state *s; -// const ct_data *ltree; /* literal tree */ -// const ct_data *dtree; /* distance tree */ -{ - var dist; /* distance of matched string */ - var lc; /* match length or unmatched char (if dist == 0) */ - var lx = 0; /* running index in l_buf */ - var code; /* the code to send */ - var extra; /* number of extra bits to send */ - - if (s.last_lit !== 0) { - do { - dist = (s.pending_buf[s.d_buf + lx*2] << 8) | (s.pending_buf[s.d_buf + lx*2 + 1]); - lc = s.pending_buf[s.l_buf + lx]; - lx++; - - if (dist === 0) { - send_code(s, lc, ltree); /* send a literal byte */ - //Tracecv(isgraph(lc), (stderr," '%c' ", lc)); - } else { - /* Here, lc is the match length - MIN_MATCH */ - code = _length_code[lc]; - send_code(s, code+LITERALS+1, ltree); /* send the length code */ - extra = extra_lbits[code]; - if (extra !== 0) { - lc -= base_length[code]; - send_bits(s, lc, extra); /* send the extra length bits */ - } - dist--; /* dist is now the match distance - 1 */ - code = d_code(dist); - //Assert (code < D_CODES, "bad d_code"); - - send_code(s, code, dtree); /* send the distance code */ - extra = extra_dbits[code]; - if (extra !== 0) { - dist -= base_dist[code]; - send_bits(s, dist, extra); /* send the extra distance bits */ - } - } /* literal or match pair ? */ - - /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */ - //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx, - // "pendingBuf overflow"); - - } while (lx < s.last_lit); - } - - send_code(s, END_BLOCK, ltree); -} - - -/* =========================================================================== - * Construct one Huffman tree and assigns the code bit strings and lengths. - * Update the total bit length for the current block. - * IN assertion: the field freq is set for all tree elements. - * OUT assertions: the fields len and code are set to the optimal bit length - * and corresponding code. The length opt_len is updated; static_len is - * also updated if stree is not null. The field max_code is set. - */ -function build_tree(s, desc) -// deflate_state *s; -// tree_desc *desc; /* the tree descriptor */ -{ - var tree = desc.dyn_tree; - var stree = desc.stat_desc.static_tree; - var has_stree = desc.stat_desc.has_stree; - var elems = desc.stat_desc.elems; - var n, m; /* iterate over heap elements */ - var max_code = -1; /* largest code with non zero frequency */ - var node; /* new node being created */ - - /* Construct the initial heap, with least frequent element in - * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1]. - * heap[0] is not used. - */ - s.heap_len = 0; - s.heap_max = HEAP_SIZE; - - for (n = 0; n < elems; n++) { - if (tree[n * 2]/*.Freq*/ !== 0) { - s.heap[++s.heap_len] = max_code = n; - s.depth[n] = 0; - - } else { - tree[n*2 + 1]/*.Len*/ = 0; - } - } - - /* The pkzip format requires that at least one distance code exists, - * and that at least one bit should be sent even if there is only one - * possible code. So to avoid special checks later on we force at least - * two codes of non zero frequency. - */ - while (s.heap_len < 2) { - node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0); - tree[node * 2]/*.Freq*/ = 1; - s.depth[node] = 0; - s.opt_len--; - - if (has_stree) { - s.static_len -= stree[node*2 + 1]/*.Len*/; - } - /* node is 0 or 1 so it does not have extra bits */ - } - desc.max_code = max_code; - - /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree, - * establish sub-heaps of increasing lengths: - */ - for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); } - - /* Construct the Huffman tree by repeatedly combining the least two - * frequent nodes. - */ - node = elems; /* next internal node of the tree */ - do { - //pqremove(s, tree, n); /* n = node of least frequency */ - /*** pqremove ***/ - n = s.heap[1/*SMALLEST*/]; - s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--]; - pqdownheap(s, tree, 1/*SMALLEST*/); - /***/ - - m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */ - - s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */ - s.heap[--s.heap_max] = m; - - /* Create a new node father of n and m */ - tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/; - s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1; - tree[n*2 + 1]/*.Dad*/ = tree[m*2 + 1]/*.Dad*/ = node; - - /* and insert the new node in the heap */ - s.heap[1/*SMALLEST*/] = node++; - pqdownheap(s, tree, 1/*SMALLEST*/); - - } while (s.heap_len >= 2); - - s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/]; - - /* At this point, the fields freq and dad are set. We can now - * generate the bit lengths. - */ - gen_bitlen(s, desc); - - /* The field len is now set, we can generate the bit codes */ - gen_codes(tree, max_code, s.bl_count); -} - - -/* =========================================================================== - * Scan a literal or distance tree to determine the frequencies of the codes - * in the bit length tree. - */ -function scan_tree(s, tree, max_code) -// deflate_state *s; -// ct_data *tree; /* the tree to be scanned */ -// int max_code; /* and its largest code of non zero frequency */ -{ - var n; /* iterates over all tree elements */ - var prevlen = -1; /* last emitted length */ - var curlen; /* length of current code */ - - var nextlen = tree[0*2 + 1]/*.Len*/; /* length of next code */ - - var count = 0; /* repeat count of the current code */ - var max_count = 7; /* max repeat count */ - var min_count = 4; /* min repeat count */ - - if (nextlen === 0) { - max_count = 138; - min_count = 3; - } - tree[(max_code+1)*2 + 1]/*.Len*/ = 0xffff; /* guard */ - - for (n = 0; n <= max_code; n++) { - curlen = nextlen; - nextlen = tree[(n+1)*2 + 1]/*.Len*/; - - if (++count < max_count && curlen === nextlen) { - continue; - - } else if (count < min_count) { - s.bl_tree[curlen * 2]/*.Freq*/ += count; - - } else if (curlen !== 0) { - - if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; } - s.bl_tree[REP_3_6*2]/*.Freq*/++; - - } else if (count <= 10) { - s.bl_tree[REPZ_3_10*2]/*.Freq*/++; - - } else { - s.bl_tree[REPZ_11_138*2]/*.Freq*/++; - } - - count = 0; - prevlen = curlen; - - if (nextlen === 0) { - max_count = 138; - min_count = 3; - - } else if (curlen === nextlen) { - max_count = 6; - min_count = 3; - - } else { - max_count = 7; - min_count = 4; - } - } -} - - -/* =========================================================================== - * Send a literal or distance tree in compressed form, using the codes in - * bl_tree. - */ -function send_tree(s, tree, max_code) -// deflate_state *s; -// ct_data *tree; /* the tree to be scanned */ -// int max_code; /* and its largest code of non zero frequency */ -{ - var n; /* iterates over all tree elements */ - var prevlen = -1; /* last emitted length */ - var curlen; /* length of current code */ - - var nextlen = tree[0*2 + 1]/*.Len*/; /* length of next code */ - - var count = 0; /* repeat count of the current code */ - var max_count = 7; /* max repeat count */ - var min_count = 4; /* min repeat count */ - - /* tree[max_code+1].Len = -1; */ /* guard already set */ - if (nextlen === 0) { - max_count = 138; - min_count = 3; - } - - for (n = 0; n <= max_code; n++) { - curlen = nextlen; - nextlen = tree[(n+1)*2 + 1]/*.Len*/; - - if (++count < max_count && curlen === nextlen) { - continue; - - } else if (count < min_count) { - do { send_code(s, curlen, s.bl_tree); } while (--count !== 0); - - } else if (curlen !== 0) { - if (curlen !== prevlen) { - send_code(s, curlen, s.bl_tree); - count--; - } - //Assert(count >= 3 && count <= 6, " 3_6?"); - send_code(s, REP_3_6, s.bl_tree); - send_bits(s, count-3, 2); - - } else if (count <= 10) { - send_code(s, REPZ_3_10, s.bl_tree); - send_bits(s, count-3, 3); - - } else { - send_code(s, REPZ_11_138, s.bl_tree); - send_bits(s, count-11, 7); - } - - count = 0; - prevlen = curlen; - if (nextlen === 0) { - max_count = 138; - min_count = 3; - - } else if (curlen === nextlen) { - max_count = 6; - min_count = 3; - - } else { - max_count = 7; - min_count = 4; - } - } -} - - -/* =========================================================================== - * Construct the Huffman tree for the bit lengths and return the index in - * bl_order of the last bit length code to send. - */ -function build_bl_tree(s) { - var max_blindex; /* index of last bit length code of non zero freq */ - - /* Determine the bit length frequencies for literal and distance trees */ - scan_tree(s, s.dyn_ltree, s.l_desc.max_code); - scan_tree(s, s.dyn_dtree, s.d_desc.max_code); - - /* Build the bit length tree: */ - build_tree(s, s.bl_desc); - /* opt_len now includes the length of the tree representations, except - * the lengths of the bit lengths codes and the 5+5+4 bits for the counts. - */ - - /* Determine the number of bit length codes to send. The pkzip format - * requires that at least 4 bit length codes be sent. (appnote.txt says - * 3 but the actual value used is 4.) - */ - for (max_blindex = BL_CODES-1; max_blindex >= 3; max_blindex--) { - if (s.bl_tree[bl_order[max_blindex]*2 + 1]/*.Len*/ !== 0) { - break; - } - } - /* Update opt_len to include the bit length tree and counts */ - s.opt_len += 3*(max_blindex+1) + 5+5+4; - //Tracev((stderr, "\ndyn trees: dyn %ld, stat %ld", - // s->opt_len, s->static_len)); - - return max_blindex; -} - - -/* =========================================================================== - * Send the header for a block using dynamic Huffman trees: the counts, the - * lengths of the bit length codes, the literal tree and the distance tree. - * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4. - */ -function send_all_trees(s, lcodes, dcodes, blcodes) -// deflate_state *s; -// int lcodes, dcodes, blcodes; /* number of codes for each tree */ -{ - var rank; /* index in bl_order */ - - //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, "not enough codes"); - //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES, - // "too many codes"); - //Tracev((stderr, "\nbl counts: ")); - send_bits(s, lcodes-257, 5); /* not +255 as stated in appnote.txt */ - send_bits(s, dcodes-1, 5); - send_bits(s, blcodes-4, 4); /* not -3 as stated in appnote.txt */ - for (rank = 0; rank < blcodes; rank++) { - //Tracev((stderr, "\nbl code %2d ", bl_order[rank])); - send_bits(s, s.bl_tree[bl_order[rank]*2 + 1]/*.Len*/, 3); - } - //Tracev((stderr, "\nbl tree: sent %ld", s->bits_sent)); - - send_tree(s, s.dyn_ltree, lcodes-1); /* literal tree */ - //Tracev((stderr, "\nlit tree: sent %ld", s->bits_sent)); - - send_tree(s, s.dyn_dtree, dcodes-1); /* distance tree */ - //Tracev((stderr, "\ndist tree: sent %ld", s->bits_sent)); -} - - -/* =========================================================================== - * Check if the data type is TEXT or BINARY, using the following algorithm: - * - TEXT if the two conditions below are satisfied: - * a) There are no non-portable control characters belonging to the - * "black list" (0..6, 14..25, 28..31). - * b) There is at least one printable character belonging to the - * "white list" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255). - * - BINARY otherwise. - * - The following partially-portable control characters form a - * "gray list" that is ignored in this detection algorithm: - * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}). - * IN assertion: the fields Freq of dyn_ltree are set. - */ -function detect_data_type(s) { - /* black_mask is the bit mask of black-listed bytes - * set bits 0..6, 14..25, and 28..31 - * 0xf3ffc07f = binary 11110011111111111100000001111111 - */ - var black_mask = 0xf3ffc07f; - var n; - - /* Check for non-textual ("black-listed") bytes. */ - for (n = 0; n <= 31; n++, black_mask >>>= 1) { - if ((black_mask & 1) && (s.dyn_ltree[n*2]/*.Freq*/ !== 0)) { - return Z_BINARY; - } - } - - /* Check for textual ("white-listed") bytes. */ - if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 || - s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) { - return Z_TEXT; - } - for (n = 32; n < LITERALS; n++) { - if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) { - return Z_TEXT; - } - } - - /* There are no "black-listed" or "white-listed" bytes: - * this stream either is empty or has tolerated ("gray-listed") bytes only. - */ - return Z_BINARY; -} - - -var static_init_done = false; - -/* =========================================================================== - * Initialize the tree data structures for a new zlib stream. - */ -function _tr_init(s) -{ - - if (!static_init_done) { - tr_static_init(); - static_init_done = true; - } - - s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc); - s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc); - s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc); - - s.bi_buf = 0; - s.bi_valid = 0; - - /* Initialize the first block of the first file: */ - init_block(s); -} - - -/* =========================================================================== - * Send a stored block - */ -function _tr_stored_block(s, buf, stored_len, last) -//DeflateState *s; -//charf *buf; /* input block */ -//ulg stored_len; /* length of input block */ -//int last; /* one if this is the last block for a file */ -{ - send_bits(s, (STORED_BLOCK<<1)+(last ? 1 : 0), 3); /* send block type */ - copy_block(s, buf, stored_len, true); /* with header */ -} - - -/* =========================================================================== - * Send one empty static block to give enough lookahead for inflate. - * This takes 10 bits, of which 7 may remain in the bit buffer. - */ -function _tr_align(s) { - send_bits(s, STATIC_TREES<<1, 3); - send_code(s, END_BLOCK, static_ltree); - bi_flush(s); -} - - -/* =========================================================================== - * Determine the best encoding for the current block: dynamic trees, static - * trees or store, and output the encoded block to the zip file. - */ -function _tr_flush_block(s, buf, stored_len, last) -//DeflateState *s; -//charf *buf; /* input block, or NULL if too old */ -//ulg stored_len; /* length of input block */ -//int last; /* one if this is the last block for a file */ -{ - var opt_lenb, static_lenb; /* opt_len and static_len in bytes */ - var max_blindex = 0; /* index of last bit length code of non zero freq */ - - /* Build the Huffman trees unless a stored block is forced */ - if (s.level > 0) { - - /* Check if the file is binary or text */ - if (s.strm.data_type === Z_UNKNOWN) { - s.strm.data_type = detect_data_type(s); - } - - /* Construct the literal and distance trees */ - build_tree(s, s.l_desc); - // Tracev((stderr, "\nlit data: dyn %ld, stat %ld", s->opt_len, - // s->static_len)); - - build_tree(s, s.d_desc); - // Tracev((stderr, "\ndist data: dyn %ld, stat %ld", s->opt_len, - // s->static_len)); - /* At this point, opt_len and static_len are the total bit lengths of - * the compressed block data, excluding the tree representations. - */ - - /* Build the bit length tree for the above two trees, and get the index - * in bl_order of the last bit length code to send. - */ - max_blindex = build_bl_tree(s); - - /* Determine the best encoding. Compute the block lengths in bytes. */ - opt_lenb = (s.opt_len+3+7) >>> 3; - static_lenb = (s.static_len+3+7) >>> 3; - - // Tracev((stderr, "\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u ", - // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len, - // s->last_lit)); - - if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; } - - } else { - // Assert(buf != (char*)0, "lost buf"); - opt_lenb = static_lenb = stored_len + 5; /* force a stored block */ - } - - if ((stored_len+4 <= opt_lenb) && (buf !== -1)) { - /* 4: two words for the lengths */ - - /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE. - * Otherwise we can't have processed more than WSIZE input bytes since - * the last block flush, because compression would have been - * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to - * transform a block into a stored block. - */ - _tr_stored_block(s, buf, stored_len, last); - - } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) { - - send_bits(s, (STATIC_TREES<<1) + (last ? 1 : 0), 3); - compress_block(s, static_ltree, static_dtree); - - } else { - send_bits(s, (DYN_TREES<<1) + (last ? 1 : 0), 3); - send_all_trees(s, s.l_desc.max_code+1, s.d_desc.max_code+1, max_blindex+1); - compress_block(s, s.dyn_ltree, s.dyn_dtree); - } - // Assert (s->compressed_len == s->bits_sent, "bad compressed size"); - /* The above check is made mod 2^32, for files larger than 512 MB - * and uLong implemented on 32 bits. - */ - init_block(s); - - if (last) { - bi_windup(s); - } - // Tracev((stderr,"\ncomprlen %lu(%lu) ", s->compressed_len>>3, - // s->compressed_len-7*last)); -} - -/* =========================================================================== - * Save the match info and tally the frequency counts. Return true if - * the current block must be flushed. - */ -function _tr_tally(s, dist, lc) -// deflate_state *s; -// unsigned dist; /* distance of matched string */ -// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */ -{ - //var out_length, in_length, dcode; - - s.pending_buf[s.d_buf + s.last_lit * 2] = (dist >>> 8) & 0xff; - s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff; - - s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff; - s.last_lit++; - - if (dist === 0) { - /* lc is the unmatched char */ - s.dyn_ltree[lc*2]/*.Freq*/++; - } else { - s.matches++; - /* Here, lc is the match length - MIN_MATCH */ - dist--; /* dist = match distance - 1 */ - //Assert((ush)dist < (ush)MAX_DIST(s) && - // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) && - // (ush)d_code(dist) < (ush)D_CODES, "_tr_tally: bad match"); - - s.dyn_ltree[(_length_code[lc]+LITERALS+1) * 2]/*.Freq*/++; - s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++; - } - -// (!) This block is disabled in zlib defailts, -// don't enable it for binary compatibility - -//#ifdef TRUNCATE_BLOCK -// /* Try to guess if it is profitable to stop the current block here */ -// if ((s.last_lit & 0x1fff) === 0 && s.level > 2) { -// /* Compute an upper bound for the compressed length */ -// out_length = s.last_lit*8; -// in_length = s.strstart - s.block_start; -// -// for (dcode = 0; dcode < D_CODES; dcode++) { -// out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]); -// } -// out_length >>>= 3; -// //Tracev((stderr,"\nlast_lit %u, in %ld, out ~%ld(%ld%%) ", -// // s->last_lit, in_length, out_length, -// // 100L - out_length*100L/in_length)); -// if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) { -// return true; -// } -// } -//#endif - - return (s.last_lit === s.lit_bufsize-1); - /* We avoid equality with lit_bufsize because of wraparound at 64K - * on 16 bit machines and because stored blocks are restricted to - * 64K-1 bytes. - */ -} - -exports._tr_init = _tr_init; -exports._tr_stored_block = _tr_stored_block; -exports._tr_flush_block = _tr_flush_block; -exports._tr_tally = _tr_tally; -exports._tr_align = _tr_align; -},{"../utils/common":27}],39:[function(_dereq_,module,exports){ -'use strict'; - - -function ZStream() { - /* next input byte */ - this.input = null; // JS specific, because we have no pointers - this.next_in = 0; - /* number of bytes available at input */ - this.avail_in = 0; - /* total number of input bytes read so far */ - this.total_in = 0; - /* next output byte should be put there */ - this.output = null; // JS specific, because we have no pointers - this.next_out = 0; - /* remaining free space at output */ - this.avail_out = 0; - /* total number of bytes output so far */ - this.total_out = 0; - /* last error message, NULL if no error */ - this.msg = ''/*Z_NULL*/; - /* not visible by applications */ - this.state = null; - /* best guess about the data type: binary or text */ - this.data_type = 2/*Z_UNKNOWN*/; - /* adler32 value of the uncompressed data */ - this.adler = 0; -} - -module.exports = ZStream; -},{}]},{},[9]) -(9) -}); \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/export/libs/jszip/jszip.min.js b/chronos/static/js/amcharts/plugins/export/libs/jszip/jszip.min.js deleted file mode 100644 index a09f35b..0000000 --- a/chronos/static/js/amcharts/plugins/export/libs/jszip/jszip.min.js +++ /dev/null @@ -1,14 +0,0 @@ -/*! - -JSZip - A Javascript class for generating and reading zip files - - -(c) 2009-2014 Stuart Knightley -Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/master/LICENSE.markdown. - -JSZip uses the library pako released under the MIT license : -https://github.com/nodeca/pako/blob/master/LICENSE -*/ -!function(a){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var b;"undefined"!=typeof window?b=window:"undefined"!=typeof global?b=global:"undefined"!=typeof self&&(b=self),b.JSZip=a()}}(function(){return function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g>2,g=(3&b)<<4|c>>4,h=(15&c)<<2|e>>6,i=63&e,isNaN(c)?h=i=64:isNaN(e)&&(i=64),j=j+d.charAt(f)+d.charAt(g)+d.charAt(h)+d.charAt(i);return j},c.decode=function(a){var b,c,e,f,g,h,i,j="",k=0;for(a=a.replace(/[^A-Za-z0-9\+\/\=]/g,"");k>4,c=(15&g)<<4|h>>2,e=(3&h)<<6|i,j+=String.fromCharCode(b),64!=h&&(j+=String.fromCharCode(c)),64!=i&&(j+=String.fromCharCode(e));return j}},{}],2:[function(a,b){"use strict";function c(){this.compressedSize=0,this.uncompressedSize=0,this.crc32=0,this.compressionMethod=null,this.compressedContent=null}c.prototype={getContent:function(){return null},getCompressedContent:function(){return null}},b.exports=c},{}],3:[function(a,b,c){"use strict";c.STORE={magic:"\x00\x00",compress:function(a){return a},uncompress:function(a){return a},compressInputType:null,uncompressInputType:null},c.DEFLATE=a("./flate")},{"./flate":8}],4:[function(a,b){"use strict";var c=a("./utils"),d=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];b.exports=function(a,b){if("undefined"==typeof a||!a.length)return 0;var e="string"!==c.getTypeOf(a);"undefined"==typeof b&&(b=0);var f=0,g=0,h=0;b=-1^b;for(var i=0,j=a.length;j>i;i++)h=e?a[i]:a.charCodeAt(i),g=255&(b^h),f=d[g],b=b>>>8^f;return-1^b}},{"./utils":21}],5:[function(a,b){"use strict";function c(){this.data=null,this.length=0,this.index=0}var d=a("./utils");c.prototype={checkOffset:function(a){this.checkIndex(this.index+a)},checkIndex:function(a){if(this.lengtha)throw new Error("End of data reached (data length = "+this.length+", asked index = "+a+"). Corrupted zip ?")},setIndex:function(a){this.checkIndex(a),this.index=a},skip:function(a){this.setIndex(this.index+a)},byteAt:function(){},readInt:function(a){var b,c=0;for(this.checkOffset(a),b=this.index+a-1;b>=this.index;b--)c=(c<<8)+this.byteAt(b);return this.index+=a,c},readString:function(a){return d.transformTo("string",this.readData(a))},readData:function(){},lastIndexOfSignature:function(){},readDate:function(){var a=this.readInt(4);return new Date((a>>25&127)+1980,(a>>21&15)-1,a>>16&31,a>>11&31,a>>5&63,(31&a)<<1)}},b.exports=c},{"./utils":21}],6:[function(a,b,c){"use strict";c.base64=!1,c.binary=!1,c.dir=!1,c.createFolders=!1,c.date=null,c.compression=null,c.compressionOptions=null,c.comment=null,c.unixPermissions=null,c.dosPermissions=null},{}],7:[function(a,b,c){"use strict";var d=a("./utils");c.string2binary=function(a){return d.string2binary(a)},c.string2Uint8Array=function(a){return d.transformTo("uint8array",a)},c.uint8Array2String=function(a){return d.transformTo("string",a)},c.string2Blob=function(a){var b=d.transformTo("arraybuffer",a);return d.arrayBuffer2Blob(b)},c.arrayBuffer2Blob=function(a){return d.arrayBuffer2Blob(a)},c.transformTo=function(a,b){return d.transformTo(a,b)},c.getTypeOf=function(a){return d.getTypeOf(a)},c.checkSupport=function(a){return d.checkSupport(a)},c.MAX_VALUE_16BITS=d.MAX_VALUE_16BITS,c.MAX_VALUE_32BITS=d.MAX_VALUE_32BITS,c.pretty=function(a){return d.pretty(a)},c.findCompression=function(a){return d.findCompression(a)},c.isRegExp=function(a){return d.isRegExp(a)}},{"./utils":21}],8:[function(a,b,c){"use strict";var d="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,e=a("pako");c.uncompressInputType=d?"uint8array":"array",c.compressInputType=d?"uint8array":"array",c.magic="\b\x00",c.compress=function(a,b){return e.deflateRaw(a,{level:b.level||-1})},c.uncompress=function(a){return e.inflateRaw(a)}},{pako:24}],9:[function(a,b){"use strict";function c(a,b){return this instanceof c?(this.files={},this.comment=null,this.root="",a&&this.load(a,b),void(this.clone=function(){var a=new c;for(var b in this)"function"!=typeof this[b]&&(a[b]=this[b]);return a})):new c(a,b)}var d=a("./base64");c.prototype=a("./object"),c.prototype.load=a("./load"),c.support=a("./support"),c.defaults=a("./defaults"),c.utils=a("./deprecatedPublicUtils"),c.base64={encode:function(a){return d.encode(a)},decode:function(a){return d.decode(a)}},c.compressions=a("./compressions"),b.exports=c},{"./base64":1,"./compressions":3,"./defaults":6,"./deprecatedPublicUtils":7,"./load":10,"./object":13,"./support":17}],10:[function(a,b){"use strict";var c=a("./base64"),d=a("./zipEntries");b.exports=function(a,b){var e,f,g,h;for(b=b||{},b.base64&&(a=c.decode(a)),f=new d(a,b),e=f.files,g=0;gc;c++)d+=String.fromCharCode(255&a),a>>>=8;return d},t=function(){var a,b,c={};for(a=0;a0?a.substring(0,b):""},x=function(a){return"/"!=a.slice(-1)&&(a+="/"),a},y=function(a,b){return b="undefined"!=typeof b?b:!1,a=x(a),this.files[a]||v.call(this,a,null,{dir:!0,createFolders:b}),this.files[a]},z=function(a,b,c){var f,g=new j;return a._data instanceof j?(g.uncompressedSize=a._data.uncompressedSize,g.crc32=a._data.crc32,0===g.uncompressedSize||a.dir?(b=i.STORE,g.compressedContent="",g.crc32=0):a._data.compressionMethod===b.magic?g.compressedContent=a._data.getCompressedContent():(f=a._data.getContent(),g.compressedContent=b.compress(d.transformTo(b.compressInputType,f),c))):(f=p(a),(!f||0===f.length||a.dir)&&(b=i.STORE,f=""),g.uncompressedSize=f.length,g.crc32=e(f),g.compressedContent=b.compress(d.transformTo(b.compressInputType,f),c)),g.compressedSize=g.compressedContent.length,g.compressionMethod=b.magic,g},A=function(a,b){var c=a;return a||(c=b?16893:33204),(65535&c)<<16},B=function(a){return 63&(a||0)},C=function(a,b,c,g,h){var i,j,k,m,n=(c.compressedContent,d.transformTo("string",l.utf8encode(b.name))),o=b.comment||"",p=d.transformTo("string",l.utf8encode(o)),q=n.length!==b.name.length,r=p.length!==o.length,t=b.options,u="",v="",w="";k=b._initialMetadata.dir!==b.dir?b.dir:t.dir,m=b._initialMetadata.date!==b.date?b.date:t.date;var x=0,y=0;k&&(x|=16),"UNIX"===h?(y=798,x|=A(b.unixPermissions,k)):(y=20,x|=B(b.dosPermissions,k)),i=m.getHours(),i<<=6,i|=m.getMinutes(),i<<=5,i|=m.getSeconds()/2,j=m.getFullYear()-1980,j<<=4,j|=m.getMonth()+1,j<<=5,j|=m.getDate(),q&&(v=s(1,1)+s(e(n),4)+n,u+="up"+s(v.length,2)+v),r&&(w=s(1,1)+s(this.crc32(p),4)+p,u+="uc"+s(w.length,2)+w);var z="";z+="\n\x00",z+=q||r?"\x00\b":"\x00\x00",z+=c.compressionMethod,z+=s(i,2),z+=s(j,2),z+=s(c.crc32,4),z+=s(c.compressedSize,4),z+=s(c.uncompressedSize,4),z+=s(n.length,2),z+=s(u.length,2);var C=f.LOCAL_FILE_HEADER+z+n+u,D=f.CENTRAL_FILE_HEADER+s(y,2)+z+s(p.length,2)+"\x00\x00\x00\x00"+s(x,4)+s(g,4)+n+u+p;return{fileRecord:C,dirRecord:D,compressedObject:c}},D={load:function(){throw new Error("Load method is not defined. Is the file jszip-load.js included ?")},filter:function(a){var b,c,d,e,f=[];for(b in this.files)this.files.hasOwnProperty(b)&&(d=this.files[b],e=new r(d.name,d._data,t(d.options)),c=b.slice(this.root.length,b.length),b.slice(0,this.root.length)===this.root&&a(c,e)&&f.push(e));return f},file:function(a,b,c){if(1===arguments.length){if(d.isRegExp(a)){var e=a;return this.filter(function(a,b){return!b.dir&&e.test(a)})}return this.filter(function(b,c){return!c.dir&&b===a})[0]||null}return a=this.root+a,v.call(this,a,b,c),this},folder:function(a){if(!a)return this;if(d.isRegExp(a))return this.filter(function(b,c){return c.dir&&a.test(b)});var b=this.root+a,c=y.call(this,b),e=this.clone();return e.root=c.name,e},remove:function(a){a=this.root+a;var b=this.files[a];if(b||("/"!=a.slice(-1)&&(a+="/"),b=this.files[a]),b&&!b.dir)delete this.files[a];else for(var c=this.filter(function(b,c){return c.name.slice(0,a.length)===a}),d=0;d=0;--f)if(this.data[f]===b&&this.data[f+1]===c&&this.data[f+2]===d&&this.data[f+3]===e)return f;return-1},c.prototype.readData=function(a){if(this.checkOffset(a),0===a)return new Uint8Array(0);var b=this.data.subarray(this.index,this.index+a);return this.index+=a,b},b.exports=c},{"./dataReader":5}],19:[function(a,b){"use strict";var c=a("./utils"),d=function(a){this.data=new Uint8Array(a),this.index=0};d.prototype={append:function(a){0!==a.length&&(a=c.transformTo("uint8array",a),this.data.set(a,this.index),this.index+=a.length)},finalize:function(){return this.data}},b.exports=d},{"./utils":21}],20:[function(a,b,c){"use strict";for(var d=a("./utils"),e=a("./support"),f=a("./nodeBuffer"),g=new Array(256),h=0;256>h;h++)g[h]=h>=252?6:h>=248?5:h>=240?4:h>=224?3:h>=192?2:1;g[254]=g[254]=1;var i=function(a){var b,c,d,f,g,h=a.length,i=0;for(f=0;h>f;f++)c=a.charCodeAt(f),55296===(64512&c)&&h>f+1&&(d=a.charCodeAt(f+1),56320===(64512&d)&&(c=65536+(c-55296<<10)+(d-56320),f++)),i+=128>c?1:2048>c?2:65536>c?3:4;for(b=e.uint8array?new Uint8Array(i):new Array(i),g=0,f=0;i>g;f++)c=a.charCodeAt(f),55296===(64512&c)&&h>f+1&&(d=a.charCodeAt(f+1),56320===(64512&d)&&(c=65536+(c-55296<<10)+(d-56320),f++)),128>c?b[g++]=c:2048>c?(b[g++]=192|c>>>6,b[g++]=128|63&c):65536>c?(b[g++]=224|c>>>12,b[g++]=128|c>>>6&63,b[g++]=128|63&c):(b[g++]=240|c>>>18,b[g++]=128|c>>>12&63,b[g++]=128|c>>>6&63,b[g++]=128|63&c);return b},j=function(a,b){var c;for(b=b||a.length,b>a.length&&(b=a.length),c=b-1;c>=0&&128===(192&a[c]);)c--;return 0>c?b:0===c?b:c+g[a[c]]>b?c:b},k=function(a){var b,c,e,f,h=a.length,i=new Array(2*h);for(c=0,b=0;h>b;)if(e=a[b++],128>e)i[c++]=e;else if(f=g[e],f>4)i[c++]=65533,b+=f-1;else{for(e&=2===f?31:3===f?15:7;f>1&&h>b;)e=e<<6|63&a[b++],f--;f>1?i[c++]=65533:65536>e?i[c++]=e:(e-=65536,i[c++]=55296|e>>10&1023,i[c++]=56320|1023&e)}return i.length!==c&&(i.subarray?i=i.subarray(0,c):i.length=c),d.applyFromCharCode(i)};c.utf8encode=function(a){return e.nodebuffer?f(a,"utf-8"):i(a)},c.utf8decode=function(a){if(e.nodebuffer)return d.transformTo("nodebuffer",a).toString("utf-8");a=d.transformTo(e.uint8array?"uint8array":"array",a);for(var b=[],c=0,f=a.length,g=65536;f>c;){var h=j(a,Math.min(c+g,f));b.push(e.uint8array?k(a.subarray(c,h)):k(a.slice(c,h))),c=h}return b.join("")}},{"./nodeBuffer":11,"./support":17,"./utils":21}],21:[function(a,b,c){"use strict";function d(a){return a}function e(a,b){for(var c=0;cg&&b>1;)try{d.push("array"===f||"nodebuffer"===f?String.fromCharCode.apply(null,a.slice(g,Math.min(g+b,e))):String.fromCharCode.apply(null,a.subarray(g,Math.min(g+b,e)))),g+=b}catch(i){b=Math.floor(b/2)}return d.join("")}function g(a,b){for(var c=0;cb?"0":"")+b.toString(16).toUpperCase();return d},c.findCompression=function(a){for(var b in i)if(i.hasOwnProperty(b)&&i[b].magic===a)return i[b];return null},c.isRegExp=function(a){return"[object RegExp]"===Object.prototype.toString.call(a)}},{"./compressions":3,"./nodeBuffer":11,"./support":17}],22:[function(a,b){"use strict";function c(a,b){this.files=[],this.loadOptions=b,a&&this.load(a)}var d=a("./stringReader"),e=a("./nodeBufferReader"),f=a("./uint8ArrayReader"),g=a("./utils"),h=a("./signature"),i=a("./zipEntry"),j=a("./support"),k=a("./object");c.prototype={checkSignature:function(a){var b=this.reader.readString(4);if(b!==a)throw new Error("Corrupted zip or bug : unexpected signature ("+g.pretty(b)+", expected "+g.pretty(a)+")")},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2),this.zipComment=this.reader.readString(this.zipCommentLength),this.zipComment=k.utf8decode(this.zipComment)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.versionMadeBy=this.reader.readString(2),this.versionNeeded=this.reader.readInt(2),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var a,b,c,d=this.zip64EndOfCentralSize-44,e=0;d>e;)a=this.reader.readInt(2),b=this.reader.readInt(4),c=this.reader.readString(b),this.zip64ExtensibleData[a]={id:a,length:b,value:c}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),this.disksCount>1)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var a,b;for(a=0;a>8;this.dir=16&this.externalFileAttributes?!0:!1,a===h&&(this.dosPermissions=63&this.externalFileAttributes),a===i&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileName.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var a=new d(this.extraFields[1].value);this.uncompressedSize===e.MAX_VALUE_32BITS&&(this.uncompressedSize=a.readInt(8)),this.compressedSize===e.MAX_VALUE_32BITS&&(this.compressedSize=a.readInt(8)),this.localHeaderOffset===e.MAX_VALUE_32BITS&&(this.localHeaderOffset=a.readInt(8)),this.diskNumberStart===e.MAX_VALUE_32BITS&&(this.diskNumberStart=a.readInt(4))}},readExtraFields:function(a){var b,c,d,e=a.index;for(this.extraFields=this.extraFields||{};a.index0?b.windowBits=-b.windowBits:b.gzip&&b.windowBits>0&&b.windowBits<16&&(b.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new k,this.strm.avail_out=0;var c=g.deflateInit2(this.strm,b.level,b.method,b.windowBits,b.memLevel,b.strategy);if(c!==n)throw new Error(j[c]);b.header&&g.deflateSetHeader(this.strm,b.header)};s.prototype.push=function(a,b){var c,d,e=this.strm,f=this.options.chunkSize;if(this.ended)return!1;d=b===~~b?b:b===!0?m:l,e.input="string"==typeof a?i.string2buf(a):a,e.next_in=0,e.avail_in=e.input.length;do{if(0===e.avail_out&&(e.output=new h.Buf8(f),e.next_out=0,e.avail_out=f),c=g.deflate(e,d),c!==o&&c!==n)return this.onEnd(c),this.ended=!0,!1;(0===e.avail_out||0===e.avail_in&&d===m)&&this.onData("string"===this.options.to?i.buf2binstring(h.shrinkBuf(e.output,e.next_out)):h.shrinkBuf(e.output,e.next_out))}while((e.avail_in>0||0===e.avail_out)&&c!==o);return d===m?(c=g.deflateEnd(this.strm),this.onEnd(c),this.ended=!0,c===n):!0},s.prototype.onData=function(a){this.chunks.push(a)},s.prototype.onEnd=function(a){a===n&&(this.result="string"===this.options.to?this.chunks.join(""):h.flattenChunks(this.chunks)),this.chunks=[],this.err=a,this.msg=this.strm.msg},c.Deflate=s,c.deflate=d,c.deflateRaw=e,c.gzip=f},{"./utils/common":27,"./utils/strings":28,"./zlib/deflate.js":32,"./zlib/messages":37,"./zlib/zstream":39}],26:[function(a,b,c){"use strict";function d(a,b){var c=new m(b);if(c.push(a,!0),c.err)throw c.msg;return c.result}function e(a,b){return b=b||{},b.raw=!0,d(a,b)}var f=a("./zlib/inflate.js"),g=a("./utils/common"),h=a("./utils/strings"),i=a("./zlib/constants"),j=a("./zlib/messages"),k=a("./zlib/zstream"),l=a("./zlib/gzheader"),m=function(a){this.options=g.assign({chunkSize:16384,windowBits:0,to:""},a||{});var b=this.options;b.raw&&b.windowBits>=0&&b.windowBits<16&&(b.windowBits=-b.windowBits,0===b.windowBits&&(b.windowBits=-15)),!(b.windowBits>=0&&b.windowBits<16)||a&&a.windowBits||(b.windowBits+=32),b.windowBits>15&&b.windowBits<48&&0===(15&b.windowBits)&&(b.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new k,this.strm.avail_out=0;var c=f.inflateInit2(this.strm,b.windowBits);if(c!==i.Z_OK)throw new Error(j[c]);this.header=new l,f.inflateGetHeader(this.strm,this.header)};m.prototype.push=function(a,b){var c,d,e,j,k,l=this.strm,m=this.options.chunkSize;if(this.ended)return!1;d=b===~~b?b:b===!0?i.Z_FINISH:i.Z_NO_FLUSH,l.input="string"==typeof a?h.binstring2buf(a):a,l.next_in=0,l.avail_in=l.input.length;do{if(0===l.avail_out&&(l.output=new g.Buf8(m),l.next_out=0,l.avail_out=m),c=f.inflate(l,i.Z_NO_FLUSH),c!==i.Z_STREAM_END&&c!==i.Z_OK)return this.onEnd(c),this.ended=!0,!1;l.next_out&&(0===l.avail_out||c===i.Z_STREAM_END||0===l.avail_in&&d===i.Z_FINISH)&&("string"===this.options.to?(e=h.utf8border(l.output,l.next_out),j=l.next_out-e,k=h.buf2string(l.output,e),l.next_out=j,l.avail_out=m-j,j&&g.arraySet(l.output,l.output,e,j,0),this.onData(k)):this.onData(g.shrinkBuf(l.output,l.next_out)))}while(l.avail_in>0&&c!==i.Z_STREAM_END);return c===i.Z_STREAM_END&&(d=i.Z_FINISH),d===i.Z_FINISH?(c=f.inflateEnd(this.strm),this.onEnd(c),this.ended=!0,c===i.Z_OK):!0},m.prototype.onData=function(a){this.chunks.push(a)},m.prototype.onEnd=function(a){a===i.Z_OK&&(this.result="string"===this.options.to?this.chunks.join(""):g.flattenChunks(this.chunks)),this.chunks=[],this.err=a,this.msg=this.strm.msg},c.Inflate=m,c.inflate=d,c.inflateRaw=e,c.ungzip=d},{"./utils/common":27,"./utils/strings":28,"./zlib/constants":30,"./zlib/gzheader":33,"./zlib/inflate.js":35,"./zlib/messages":37,"./zlib/zstream":39}],27:[function(a,b,c){"use strict";var d="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;c.assign=function(a){for(var b=Array.prototype.slice.call(arguments,1);b.length;){var c=b.shift();if(c){if("object"!=typeof c)throw new TypeError(c+"must be non-object");for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d])}}return a},c.shrinkBuf=function(a,b){return a.length===b?a:a.subarray?a.subarray(0,b):(a.length=b,a)};var e={arraySet:function(a,b,c,d,e){if(b.subarray&&a.subarray)return void a.set(b.subarray(c,c+d),e);for(var f=0;d>f;f++)a[e+f]=b[c+f]},flattenChunks:function(a){var b,c,d,e,f,g;for(d=0,b=0,c=a.length;c>b;b++)d+=a[b].length;for(g=new Uint8Array(d),e=0,b=0,c=a.length;c>b;b++)f=a[b],g.set(f,e),e+=f.length;return g}},f={arraySet:function(a,b,c,d,e){for(var f=0;d>f;f++)a[e+f]=b[c+f]},flattenChunks:function(a){return[].concat.apply([],a)}};c.setTyped=function(a){a?(c.Buf8=Uint8Array,c.Buf16=Uint16Array,c.Buf32=Int32Array,c.assign(c,e)):(c.Buf8=Array,c.Buf16=Array,c.Buf32=Array,c.assign(c,f))},c.setTyped(d)},{}],28:[function(a,b,c){"use strict";function d(a,b){if(65537>b&&(a.subarray&&g||!a.subarray&&f))return String.fromCharCode.apply(null,e.shrinkBuf(a,b));for(var c="",d=0;b>d;d++)c+=String.fromCharCode(a[d]);return c}var e=a("./common"),f=!0,g=!0;try{String.fromCharCode.apply(null,[0])}catch(h){f=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(h){g=!1}for(var i=new e.Buf8(256),j=0;256>j;j++)i[j]=j>=252?6:j>=248?5:j>=240?4:j>=224?3:j>=192?2:1;i[254]=i[254]=1,c.string2buf=function(a){var b,c,d,f,g,h=a.length,i=0;for(f=0;h>f;f++)c=a.charCodeAt(f),55296===(64512&c)&&h>f+1&&(d=a.charCodeAt(f+1),56320===(64512&d)&&(c=65536+(c-55296<<10)+(d-56320),f++)),i+=128>c?1:2048>c?2:65536>c?3:4;for(b=new e.Buf8(i),g=0,f=0;i>g;f++)c=a.charCodeAt(f),55296===(64512&c)&&h>f+1&&(d=a.charCodeAt(f+1),56320===(64512&d)&&(c=65536+(c-55296<<10)+(d-56320),f++)),128>c?b[g++]=c:2048>c?(b[g++]=192|c>>>6,b[g++]=128|63&c):65536>c?(b[g++]=224|c>>>12,b[g++]=128|c>>>6&63,b[g++]=128|63&c):(b[g++]=240|c>>>18,b[g++]=128|c>>>12&63,b[g++]=128|c>>>6&63,b[g++]=128|63&c);return b},c.buf2binstring=function(a){return d(a,a.length)},c.binstring2buf=function(a){for(var b=new e.Buf8(a.length),c=0,d=b.length;d>c;c++)b[c]=a.charCodeAt(c);return b},c.buf2string=function(a,b){var c,e,f,g,h=b||a.length,j=new Array(2*h);for(e=0,c=0;h>c;)if(f=a[c++],128>f)j[e++]=f;else if(g=i[f],g>4)j[e++]=65533,c+=g-1;else{for(f&=2===g?31:3===g?15:7;g>1&&h>c;)f=f<<6|63&a[c++],g--;g>1?j[e++]=65533:65536>f?j[e++]=f:(f-=65536,j[e++]=55296|f>>10&1023,j[e++]=56320|1023&f)}return d(j,e)},c.utf8border=function(a,b){var c;for(b=b||a.length,b>a.length&&(b=a.length),c=b-1;c>=0&&128===(192&a[c]);)c--;return 0>c?b:0===c?b:c+i[a[c]]>b?c:b}},{"./common":27}],29:[function(a,b){"use strict";function c(a,b,c,d){for(var e=65535&a|0,f=a>>>16&65535|0,g=0;0!==c;){g=c>2e3?2e3:c,c-=g;do e=e+b[d++]|0,f=f+e|0;while(--g);e%=65521,f%=65521}return e|f<<16|0}b.exports=c},{}],30:[function(a,b){b.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],31:[function(a,b){"use strict";function c(){for(var a,b=[],c=0;256>c;c++){a=c;for(var d=0;8>d;d++)a=1&a?3988292384^a>>>1:a>>>1;b[c]=a}return b}function d(a,b,c,d){var f=e,g=d+c;a=-1^a;for(var h=d;g>h;h++)a=a>>>8^f[255&(a^b[h])];return-1^a}var e=c();b.exports=d},{}],32:[function(a,b,c){"use strict";function d(a,b){return a.msg=G[b],b}function e(a){return(a<<1)-(a>4?9:0)}function f(a){for(var b=a.length;--b>=0;)a[b]=0}function g(a){var b=a.state,c=b.pending;c>a.avail_out&&(c=a.avail_out),0!==c&&(C.arraySet(a.output,b.pending_buf,b.pending_out,c,a.next_out),a.next_out+=c,b.pending_out+=c,a.total_out+=c,a.avail_out-=c,b.pending-=c,0===b.pending&&(b.pending_out=0))}function h(a,b){D._tr_flush_block(a,a.block_start>=0?a.block_start:-1,a.strstart-a.block_start,b),a.block_start=a.strstart,g(a.strm)}function i(a,b){a.pending_buf[a.pending++]=b}function j(a,b){a.pending_buf[a.pending++]=b>>>8&255,a.pending_buf[a.pending++]=255&b}function k(a,b,c,d){var e=a.avail_in;return e>d&&(e=d),0===e?0:(a.avail_in-=e,C.arraySet(b,a.input,a.next_in,e,c),1===a.state.wrap?a.adler=E(a.adler,b,e,c):2===a.state.wrap&&(a.adler=F(a.adler,b,e,c)),a.next_in+=e,a.total_in+=e,e)}function l(a,b){var c,d,e=a.max_chain_length,f=a.strstart,g=a.prev_length,h=a.nice_match,i=a.strstart>a.w_size-jb?a.strstart-(a.w_size-jb):0,j=a.window,k=a.w_mask,l=a.prev,m=a.strstart+ib,n=j[f+g-1],o=j[f+g];a.prev_length>=a.good_match&&(e>>=2),h>a.lookahead&&(h=a.lookahead);do if(c=b,j[c+g]===o&&j[c+g-1]===n&&j[c]===j[f]&&j[++c]===j[f+1]){f+=2,c++;do;while(j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&m>f);if(d=ib-(m-f),f=m-ib,d>g){if(a.match_start=b,g=d,d>=h)break;n=j[f+g-1],o=j[f+g]}}while((b=l[b&k])>i&&0!==--e);return g<=a.lookahead?g:a.lookahead}function m(a){var b,c,d,e,f,g=a.w_size;do{if(e=a.window_size-a.lookahead-a.strstart,a.strstart>=g+(g-jb)){C.arraySet(a.window,a.window,g,g,0),a.match_start-=g,a.strstart-=g,a.block_start-=g,c=a.hash_size,b=c;do d=a.head[--b],a.head[b]=d>=g?d-g:0;while(--c);c=g,b=c;do d=a.prev[--b],a.prev[b]=d>=g?d-g:0;while(--c);e+=g}if(0===a.strm.avail_in)break;if(c=k(a.strm,a.window,a.strstart+a.lookahead,e),a.lookahead+=c,a.lookahead+a.insert>=hb)for(f=a.strstart-a.insert,a.ins_h=a.window[f],a.ins_h=(a.ins_h<a.pending_buf_size-5&&(c=a.pending_buf_size-5);;){if(a.lookahead<=1){if(m(a),0===a.lookahead&&b===H)return sb;if(0===a.lookahead)break}a.strstart+=a.lookahead,a.lookahead=0;var d=a.block_start+c;if((0===a.strstart||a.strstart>=d)&&(a.lookahead=a.strstart-d,a.strstart=d,h(a,!1),0===a.strm.avail_out))return sb;if(a.strstart-a.block_start>=a.w_size-jb&&(h(a,!1),0===a.strm.avail_out))return sb}return a.insert=0,b===K?(h(a,!0),0===a.strm.avail_out?ub:vb):a.strstart>a.block_start&&(h(a,!1),0===a.strm.avail_out)?sb:sb}function o(a,b){for(var c,d;;){if(a.lookahead=hb&&(a.ins_h=(a.ins_h<=hb)if(d=D._tr_tally(a,a.strstart-a.match_start,a.match_length-hb),a.lookahead-=a.match_length,a.match_length<=a.max_lazy_match&&a.lookahead>=hb){a.match_length--;do a.strstart++,a.ins_h=(a.ins_h<=hb&&(a.ins_h=(a.ins_h<4096)&&(a.match_length=hb-1)),a.prev_length>=hb&&a.match_length<=a.prev_length){e=a.strstart+a.lookahead-hb,d=D._tr_tally(a,a.strstart-1-a.prev_match,a.prev_length-hb),a.lookahead-=a.prev_length-1,a.prev_length-=2;do++a.strstart<=e&&(a.ins_h=(a.ins_h<=hb&&a.strstart>0&&(e=a.strstart-1,d=g[e],d===g[++e]&&d===g[++e]&&d===g[++e])){f=a.strstart+ib;do;while(d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&f>e);a.match_length=ib-(f-e),a.match_length>a.lookahead&&(a.match_length=a.lookahead)}if(a.match_length>=hb?(c=D._tr_tally(a,1,a.match_length-hb),a.lookahead-=a.match_length,a.strstart+=a.match_length,a.match_length=0):(c=D._tr_tally(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++),c&&(h(a,!1),0===a.strm.avail_out))return sb}return a.insert=0,b===K?(h(a,!0),0===a.strm.avail_out?ub:vb):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?sb:tb}function r(a,b){for(var c;;){if(0===a.lookahead&&(m(a),0===a.lookahead)){if(b===H)return sb;break}if(a.match_length=0,c=D._tr_tally(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++,c&&(h(a,!1),0===a.strm.avail_out))return sb}return a.insert=0,b===K?(h(a,!0),0===a.strm.avail_out?ub:vb):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?sb:tb}function s(a){a.window_size=2*a.w_size,f(a.head),a.max_lazy_match=B[a.level].max_lazy,a.good_match=B[a.level].good_length,a.nice_match=B[a.level].nice_length,a.max_chain_length=B[a.level].max_chain,a.strstart=0,a.block_start=0,a.lookahead=0,a.insert=0,a.match_length=a.prev_length=hb-1,a.match_available=0,a.ins_h=0}function t(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Y,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new C.Buf16(2*fb),this.dyn_dtree=new C.Buf16(2*(2*db+1)),this.bl_tree=new C.Buf16(2*(2*eb+1)),f(this.dyn_ltree),f(this.dyn_dtree),f(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new C.Buf16(gb+1),this.heap=new C.Buf16(2*cb+1),f(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new C.Buf16(2*cb+1),f(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function u(a){var b;return a&&a.state?(a.total_in=a.total_out=0,a.data_type=X,b=a.state,b.pending=0,b.pending_out=0,b.wrap<0&&(b.wrap=-b.wrap),b.status=b.wrap?lb:qb,a.adler=2===b.wrap?0:1,b.last_flush=H,D._tr_init(b),M):d(a,O)}function v(a){var b=u(a);return b===M&&s(a.state),b}function w(a,b){return a&&a.state?2!==a.state.wrap?O:(a.state.gzhead=b,M):O}function x(a,b,c,e,f,g){if(!a)return O;var h=1;if(b===R&&(b=6),0>e?(h=0,e=-e):e>15&&(h=2,e-=16),1>f||f>Z||c!==Y||8>e||e>15||0>b||b>9||0>g||g>V)return d(a,O);8===e&&(e=9);var i=new t;return a.state=i,i.strm=a,i.wrap=h,i.gzhead=null,i.w_bits=e,i.w_size=1<>1,i.l_buf=3*i.lit_bufsize,i.level=b,i.strategy=g,i.method=c,v(a)}function y(a,b){return x(a,b,Y,$,_,W)}function z(a,b){var c,h,k,l;if(!a||!a.state||b>L||0>b)return a?d(a,O):O;if(h=a.state,!a.output||!a.input&&0!==a.avail_in||h.status===rb&&b!==K)return d(a,0===a.avail_out?Q:O);if(h.strm=a,c=h.last_flush,h.last_flush=b,h.status===lb)if(2===h.wrap)a.adler=0,i(h,31),i(h,139),i(h,8),h.gzhead?(i(h,(h.gzhead.text?1:0)+(h.gzhead.hcrc?2:0)+(h.gzhead.extra?4:0)+(h.gzhead.name?8:0)+(h.gzhead.comment?16:0)),i(h,255&h.gzhead.time),i(h,h.gzhead.time>>8&255),i(h,h.gzhead.time>>16&255),i(h,h.gzhead.time>>24&255),i(h,9===h.level?2:h.strategy>=T||h.level<2?4:0),i(h,255&h.gzhead.os),h.gzhead.extra&&h.gzhead.extra.length&&(i(h,255&h.gzhead.extra.length),i(h,h.gzhead.extra.length>>8&255)),h.gzhead.hcrc&&(a.adler=F(a.adler,h.pending_buf,h.pending,0)),h.gzindex=0,h.status=mb):(i(h,0),i(h,0),i(h,0),i(h,0),i(h,0),i(h,9===h.level?2:h.strategy>=T||h.level<2?4:0),i(h,wb),h.status=qb);else{var m=Y+(h.w_bits-8<<4)<<8,n=-1;n=h.strategy>=T||h.level<2?0:h.level<6?1:6===h.level?2:3,m|=n<<6,0!==h.strstart&&(m|=kb),m+=31-m%31,h.status=qb,j(h,m),0!==h.strstart&&(j(h,a.adler>>>16),j(h,65535&a.adler)),a.adler=1}if(h.status===mb)if(h.gzhead.extra){for(k=h.pending;h.gzindex<(65535&h.gzhead.extra.length)&&(h.pending!==h.pending_buf_size||(h.gzhead.hcrc&&h.pending>k&&(a.adler=F(a.adler,h.pending_buf,h.pending-k,k)),g(a),k=h.pending,h.pending!==h.pending_buf_size));)i(h,255&h.gzhead.extra[h.gzindex]),h.gzindex++;h.gzhead.hcrc&&h.pending>k&&(a.adler=F(a.adler,h.pending_buf,h.pending-k,k)),h.gzindex===h.gzhead.extra.length&&(h.gzindex=0,h.status=nb)}else h.status=nb;if(h.status===nb)if(h.gzhead.name){k=h.pending;do{if(h.pending===h.pending_buf_size&&(h.gzhead.hcrc&&h.pending>k&&(a.adler=F(a.adler,h.pending_buf,h.pending-k,k)),g(a),k=h.pending,h.pending===h.pending_buf_size)){l=1;break}l=h.gzindexk&&(a.adler=F(a.adler,h.pending_buf,h.pending-k,k)),0===l&&(h.gzindex=0,h.status=ob)}else h.status=ob;if(h.status===ob)if(h.gzhead.comment){k=h.pending;do{if(h.pending===h.pending_buf_size&&(h.gzhead.hcrc&&h.pending>k&&(a.adler=F(a.adler,h.pending_buf,h.pending-k,k)),g(a),k=h.pending,h.pending===h.pending_buf_size)){l=1;break}l=h.gzindexk&&(a.adler=F(a.adler,h.pending_buf,h.pending-k,k)),0===l&&(h.status=pb)}else h.status=pb;if(h.status===pb&&(h.gzhead.hcrc?(h.pending+2>h.pending_buf_size&&g(a),h.pending+2<=h.pending_buf_size&&(i(h,255&a.adler),i(h,a.adler>>8&255),a.adler=0,h.status=qb)):h.status=qb),0!==h.pending){if(g(a),0===a.avail_out)return h.last_flush=-1,M}else if(0===a.avail_in&&e(b)<=e(c)&&b!==K)return d(a,Q);if(h.status===rb&&0!==a.avail_in)return d(a,Q);if(0!==a.avail_in||0!==h.lookahead||b!==H&&h.status!==rb){var o=h.strategy===T?r(h,b):h.strategy===U?q(h,b):B[h.level].func(h,b);if((o===ub||o===vb)&&(h.status=rb),o===sb||o===ub)return 0===a.avail_out&&(h.last_flush=-1),M;if(o===tb&&(b===I?D._tr_align(h):b!==L&&(D._tr_stored_block(h,0,0,!1),b===J&&(f(h.head),0===h.lookahead&&(h.strstart=0,h.block_start=0,h.insert=0))),g(a),0===a.avail_out))return h.last_flush=-1,M}return b!==K?M:h.wrap<=0?N:(2===h.wrap?(i(h,255&a.adler),i(h,a.adler>>8&255),i(h,a.adler>>16&255),i(h,a.adler>>24&255),i(h,255&a.total_in),i(h,a.total_in>>8&255),i(h,a.total_in>>16&255),i(h,a.total_in>>24&255)):(j(h,a.adler>>>16),j(h,65535&a.adler)),g(a),h.wrap>0&&(h.wrap=-h.wrap),0!==h.pending?M:N)}function A(a){var b;return a&&a.state?(b=a.state.status,b!==lb&&b!==mb&&b!==nb&&b!==ob&&b!==pb&&b!==qb&&b!==rb?d(a,O):(a.state=null,b===qb?d(a,P):M)):O}var B,C=a("../utils/common"),D=a("./trees"),E=a("./adler32"),F=a("./crc32"),G=a("./messages"),H=0,I=1,J=3,K=4,L=5,M=0,N=1,O=-2,P=-3,Q=-5,R=-1,S=1,T=2,U=3,V=4,W=0,X=2,Y=8,Z=9,$=15,_=8,ab=29,bb=256,cb=bb+1+ab,db=30,eb=19,fb=2*cb+1,gb=15,hb=3,ib=258,jb=ib+hb+1,kb=32,lb=42,mb=69,nb=73,ob=91,pb=103,qb=113,rb=666,sb=1,tb=2,ub=3,vb=4,wb=3,xb=function(a,b,c,d,e){this.good_length=a,this.max_lazy=b,this.nice_length=c,this.max_chain=d,this.func=e};B=[new xb(0,0,0,0,n),new xb(4,4,8,4,o),new xb(4,5,16,8,o),new xb(4,6,32,32,o),new xb(4,4,16,16,p),new xb(8,16,32,32,p),new xb(8,16,128,128,p),new xb(8,32,128,256,p),new xb(32,128,258,1024,p),new xb(32,258,258,4096,p)],c.deflateInit=y,c.deflateInit2=x,c.deflateReset=v,c.deflateResetKeep=u,c.deflateSetHeader=w,c.deflate=z,c.deflateEnd=A,c.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":27,"./adler32":29,"./crc32":31,"./messages":37,"./trees":38}],33:[function(a,b){"use strict";function c(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}b.exports=c},{}],34:[function(a,b){"use strict";var c=30,d=12;b.exports=function(a,b){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C;e=a.state,f=a.next_in,B=a.input,g=f+(a.avail_in-5),h=a.next_out,C=a.output,i=h-(b-a.avail_out),j=h+(a.avail_out-257),k=e.dmax,l=e.wsize,m=e.whave,n=e.wnext,o=e.window,p=e.hold,q=e.bits,r=e.lencode,s=e.distcode,t=(1<q&&(p+=B[f++]<>>24,p>>>=w,q-=w,w=v>>>16&255,0===w)C[h++]=65535&v;else{if(!(16&w)){if(0===(64&w)){v=r[(65535&v)+(p&(1<q&&(p+=B[f++]<>>=w,q-=w),15>q&&(p+=B[f++]<>>24,p>>>=w,q-=w,w=v>>>16&255,!(16&w)){if(0===(64&w)){v=s[(65535&v)+(p&(1<q&&(p+=B[f++]<q&&(p+=B[f++]<k){a.msg="invalid distance too far back",e.mode=c;break a}if(p>>>=w,q-=w,w=h-i,y>w){if(w=y-w,w>m&&e.sane){a.msg="invalid distance too far back",e.mode=c;break a}if(z=0,A=o,0===n){if(z+=l-w,x>w){x-=w;do C[h++]=o[z++];while(--w);z=h-y,A=C}}else if(w>n){if(z+=l+n-w,w-=n,x>w){x-=w;do C[h++]=o[z++];while(--w);if(z=0,x>n){w=n,x-=w;do C[h++]=o[z++];while(--w);z=h-y,A=C}}}else if(z+=n-w,x>w){x-=w;do C[h++]=o[z++];while(--w);z=h-y,A=C}for(;x>2;)C[h++]=A[z++],C[h++]=A[z++],C[h++]=A[z++],x-=3;x&&(C[h++]=A[z++],x>1&&(C[h++]=A[z++]))}else{z=h-y;do C[h++]=C[z++],C[h++]=C[z++],C[h++]=C[z++],x-=3;while(x>2);x&&(C[h++]=C[z++],x>1&&(C[h++]=C[z++]))}break}}break}}while(g>f&&j>h);x=q>>3,f-=x,q-=x<<3,p&=(1<f?5+(g-f):5-(f-g),a.avail_out=j>h?257+(j-h):257-(h-j),e.hold=p,e.bits=q}},{}],35:[function(a,b,c){"use strict";function d(a){return(a>>>24&255)+(a>>>8&65280)+((65280&a)<<8)+((255&a)<<24)}function e(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new r.Buf16(320),this.work=new r.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function f(a){var b;return a&&a.state?(b=a.state,a.total_in=a.total_out=b.total=0,a.msg="",b.wrap&&(a.adler=1&b.wrap),b.mode=K,b.last=0,b.havedict=0,b.dmax=32768,b.head=null,b.hold=0,b.bits=0,b.lencode=b.lendyn=new r.Buf32(ob),b.distcode=b.distdyn=new r.Buf32(pb),b.sane=1,b.back=-1,C):F}function g(a){var b;return a&&a.state?(b=a.state,b.wsize=0,b.whave=0,b.wnext=0,f(a)):F}function h(a,b){var c,d;return a&&a.state?(d=a.state,0>b?(c=0,b=-b):(c=(b>>4)+1,48>b&&(b&=15)),b&&(8>b||b>15)?F:(null!==d.window&&d.wbits!==b&&(d.window=null),d.wrap=c,d.wbits=b,g(a))):F}function i(a,b){var c,d;return a?(d=new e,a.state=d,d.window=null,c=h(a,b),c!==C&&(a.state=null),c):F}function j(a){return i(a,rb)}function k(a){if(sb){var b;for(p=new r.Buf32(512),q=new r.Buf32(32),b=0;144>b;)a.lens[b++]=8;for(;256>b;)a.lens[b++]=9;for(;280>b;)a.lens[b++]=7;for(;288>b;)a.lens[b++]=8;for(v(x,a.lens,0,288,p,0,a.work,{bits:9}),b=0;32>b;)a.lens[b++]=5;v(y,a.lens,0,32,q,0,a.work,{bits:5}),sb=!1}a.lencode=p,a.lenbits=9,a.distcode=q,a.distbits=5}function l(a,b,c,d){var e,f=a.state;return null===f.window&&(f.wsize=1<=f.wsize?(r.arraySet(f.window,b,c-f.wsize,f.wsize,0),f.wnext=0,f.whave=f.wsize):(e=f.wsize-f.wnext,e>d&&(e=d),r.arraySet(f.window,b,c-d,e,f.wnext),d-=e,d?(r.arraySet(f.window,b,c-d,d,0),f.wnext=d,f.whave=f.wsize):(f.wnext+=e,f.wnext===f.wsize&&(f.wnext=0),f.whaven;){if(0===i)break a;i--,m+=e[g++]<>>8&255,c.check=t(c.check,Bb,2,0),m=0,n=0,c.mode=L;break}if(c.flags=0,c.head&&(c.head.done=!1),!(1&c.wrap)||(((255&m)<<8)+(m>>8))%31){a.msg="incorrect header check",c.mode=lb;break}if((15&m)!==J){a.msg="unknown compression method",c.mode=lb;break}if(m>>>=4,n-=4,wb=(15&m)+8,0===c.wbits)c.wbits=wb;else if(wb>c.wbits){a.msg="invalid window size",c.mode=lb;break}c.dmax=1<n;){if(0===i)break a;i--,m+=e[g++]<>8&1),512&c.flags&&(Bb[0]=255&m,Bb[1]=m>>>8&255,c.check=t(c.check,Bb,2,0)),m=0,n=0,c.mode=M;case M:for(;32>n;){if(0===i)break a;i--,m+=e[g++]<>>8&255,Bb[2]=m>>>16&255,Bb[3]=m>>>24&255,c.check=t(c.check,Bb,4,0)),m=0,n=0,c.mode=N;case N:for(;16>n;){if(0===i)break a;i--,m+=e[g++]<>8),512&c.flags&&(Bb[0]=255&m,Bb[1]=m>>>8&255,c.check=t(c.check,Bb,2,0)),m=0,n=0,c.mode=O;case O:if(1024&c.flags){for(;16>n;){if(0===i)break a;i--,m+=e[g++]<>>8&255,c.check=t(c.check,Bb,2,0)),m=0,n=0}else c.head&&(c.head.extra=null);c.mode=P;case P:if(1024&c.flags&&(q=c.length,q>i&&(q=i),q&&(c.head&&(wb=c.head.extra_len-c.length,c.head.extra||(c.head.extra=new Array(c.head.extra_len)),r.arraySet(c.head.extra,e,g,q,wb)),512&c.flags&&(c.check=t(c.check,e,q,g)),i-=q,g+=q,c.length-=q),c.length))break a;c.length=0,c.mode=Q;case Q:if(2048&c.flags){if(0===i)break a;q=0;do wb=e[g+q++],c.head&&wb&&c.length<65536&&(c.head.name+=String.fromCharCode(wb));while(wb&&i>q);if(512&c.flags&&(c.check=t(c.check,e,q,g)),i-=q,g+=q,wb)break a}else c.head&&(c.head.name=null);c.length=0,c.mode=R;case R:if(4096&c.flags){if(0===i)break a;q=0;do wb=e[g+q++],c.head&&wb&&c.length<65536&&(c.head.comment+=String.fromCharCode(wb));while(wb&&i>q);if(512&c.flags&&(c.check=t(c.check,e,q,g)),i-=q,g+=q,wb)break a}else c.head&&(c.head.comment=null);c.mode=S;case S:if(512&c.flags){for(;16>n;){if(0===i)break a;i--,m+=e[g++]<>9&1,c.head.done=!0),a.adler=c.check=0,c.mode=V;break;case T:for(;32>n;){if(0===i)break a;i--,m+=e[g++]<>>=7&n,n-=7&n,c.mode=ib;break}for(;3>n;){if(0===i)break a;i--,m+=e[g++]<>>=1,n-=1,3&m){case 0:c.mode=X;break;case 1:if(k(c),c.mode=bb,b===B){m>>>=2,n-=2;break a}break;case 2:c.mode=$;break;case 3:a.msg="invalid block type",c.mode=lb}m>>>=2,n-=2;break;case X:for(m>>>=7&n,n-=7&n;32>n;){if(0===i)break a;i--,m+=e[g++]<>>16^65535)){a.msg="invalid stored block lengths",c.mode=lb;break}if(c.length=65535&m,m=0,n=0,c.mode=Y,b===B)break a;case Y:c.mode=Z;case Z:if(q=c.length){if(q>i&&(q=i),q>j&&(q=j),0===q)break a;r.arraySet(f,e,g,q,h),i-=q,g+=q,j-=q,h+=q,c.length-=q;break}c.mode=V;break;case $:for(;14>n;){if(0===i)break a;i--,m+=e[g++]<>>=5,n-=5,c.ndist=(31&m)+1,m>>>=5,n-=5,c.ncode=(15&m)+4,m>>>=4,n-=4,c.nlen>286||c.ndist>30){a.msg="too many length or distance symbols",c.mode=lb;break}c.have=0,c.mode=_;case _:for(;c.haven;){if(0===i)break a;i--,m+=e[g++]<>>=3,n-=3}for(;c.have<19;)c.lens[Cb[c.have++]]=0;if(c.lencode=c.lendyn,c.lenbits=7,yb={bits:c.lenbits},xb=v(w,c.lens,0,19,c.lencode,0,c.work,yb),c.lenbits=yb.bits,xb){a.msg="invalid code lengths set",c.mode=lb;break}c.have=0,c.mode=ab;case ab:for(;c.have>>24,rb=Ab>>>16&255,sb=65535&Ab,!(n>=qb);){if(0===i)break a;i--,m+=e[g++]<sb)m>>>=qb,n-=qb,c.lens[c.have++]=sb;else{if(16===sb){for(zb=qb+2;zb>n;){if(0===i)break a;i--,m+=e[g++]<>>=qb,n-=qb,0===c.have){a.msg="invalid bit length repeat",c.mode=lb;break}wb=c.lens[c.have-1],q=3+(3&m),m>>>=2,n-=2}else if(17===sb){for(zb=qb+3;zb>n;){if(0===i)break a;i--,m+=e[g++]<>>=qb,n-=qb,wb=0,q=3+(7&m),m>>>=3,n-=3}else{for(zb=qb+7;zb>n;){if(0===i)break a;i--,m+=e[g++]<>>=qb,n-=qb,wb=0,q=11+(127&m),m>>>=7,n-=7}if(c.have+q>c.nlen+c.ndist){a.msg="invalid bit length repeat",c.mode=lb;break}for(;q--;)c.lens[c.have++]=wb}}if(c.mode===lb)break;if(0===c.lens[256]){a.msg="invalid code -- missing end-of-block",c.mode=lb;break}if(c.lenbits=9,yb={bits:c.lenbits},xb=v(x,c.lens,0,c.nlen,c.lencode,0,c.work,yb),c.lenbits=yb.bits,xb){a.msg="invalid literal/lengths set",c.mode=lb;break}if(c.distbits=6,c.distcode=c.distdyn,yb={bits:c.distbits},xb=v(y,c.lens,c.nlen,c.ndist,c.distcode,0,c.work,yb),c.distbits=yb.bits,xb){a.msg="invalid distances set",c.mode=lb;break}if(c.mode=bb,b===B)break a;case bb:c.mode=cb;case cb:if(i>=6&&j>=258){a.next_out=h,a.avail_out=j,a.next_in=g,a.avail_in=i,c.hold=m,c.bits=n,u(a,p),h=a.next_out,f=a.output,j=a.avail_out,g=a.next_in,e=a.input,i=a.avail_in,m=c.hold,n=c.bits,c.mode===V&&(c.back=-1); -break}for(c.back=0;Ab=c.lencode[m&(1<>>24,rb=Ab>>>16&255,sb=65535&Ab,!(n>=qb);){if(0===i)break a;i--,m+=e[g++]<>tb)],qb=Ab>>>24,rb=Ab>>>16&255,sb=65535&Ab,!(n>=tb+qb);){if(0===i)break a;i--,m+=e[g++]<>>=tb,n-=tb,c.back+=tb}if(m>>>=qb,n-=qb,c.back+=qb,c.length=sb,0===rb){c.mode=hb;break}if(32&rb){c.back=-1,c.mode=V;break}if(64&rb){a.msg="invalid literal/length code",c.mode=lb;break}c.extra=15&rb,c.mode=db;case db:if(c.extra){for(zb=c.extra;zb>n;){if(0===i)break a;i--,m+=e[g++]<>>=c.extra,n-=c.extra,c.back+=c.extra}c.was=c.length,c.mode=eb;case eb:for(;Ab=c.distcode[m&(1<>>24,rb=Ab>>>16&255,sb=65535&Ab,!(n>=qb);){if(0===i)break a;i--,m+=e[g++]<>tb)],qb=Ab>>>24,rb=Ab>>>16&255,sb=65535&Ab,!(n>=tb+qb);){if(0===i)break a;i--,m+=e[g++]<>>=tb,n-=tb,c.back+=tb}if(m>>>=qb,n-=qb,c.back+=qb,64&rb){a.msg="invalid distance code",c.mode=lb;break}c.offset=sb,c.extra=15&rb,c.mode=fb;case fb:if(c.extra){for(zb=c.extra;zb>n;){if(0===i)break a;i--,m+=e[g++]<>>=c.extra,n-=c.extra,c.back+=c.extra}if(c.offset>c.dmax){a.msg="invalid distance too far back",c.mode=lb;break}c.mode=gb;case gb:if(0===j)break a;if(q=p-j,c.offset>q){if(q=c.offset-q,q>c.whave&&c.sane){a.msg="invalid distance too far back",c.mode=lb;break}q>c.wnext?(q-=c.wnext,ob=c.wsize-q):ob=c.wnext-q,q>c.length&&(q=c.length),pb=c.window}else pb=f,ob=h-c.offset,q=c.length;q>j&&(q=j),j-=q,c.length-=q;do f[h++]=pb[ob++];while(--q);0===c.length&&(c.mode=cb);break;case hb:if(0===j)break a;f[h++]=c.length,j--,c.mode=cb;break;case ib:if(c.wrap){for(;32>n;){if(0===i)break a;i--,m|=e[g++]<n;){if(0===i)break a;i--,m+=e[g++]<=D;D++)P[D]=0;for(E=0;o>E;E++)P[b[n+E]]++;for(H=C,G=d;G>=1&&0===P[G];G--);if(H>G&&(H=G),0===G)return p[q++]=20971520,p[q++]=20971520,s.bits=1,0;for(F=1;G>F&&0===P[F];F++);for(F>H&&(H=F),K=1,D=1;d>=D;D++)if(K<<=1,K-=P[D],0>K)return-1;if(K>0&&(a===g||1!==G))return-1;for(Q[1]=0,D=1;d>D;D++)Q[D+1]=Q[D]+P[D];for(E=0;o>E;E++)0!==b[n+E]&&(r[Q[b[n+E]]++]=E);if(a===g?(N=R=r,y=19):a===h?(N=j,O-=257,R=k,S-=257,y=256):(N=l,R=m,y=-1),M=0,E=0,D=F,x=q,I=H,J=0,v=-1,L=1<e||a===i&&L>f)return 1;for(var T=0;;){T++,z=D-J,r[E]y?(A=R[S+r[E]],B=N[O+r[E]]):(A=96,B=0),t=1<>J)+u]=z<<24|A<<16|B|0;while(0!==u);for(t=1<>=1;if(0!==t?(M&=t-1,M+=t):M=0,E++,0===--P[D]){if(D===G)break;D=b[n+r[E]]}if(D>H&&(M&w)!==v){for(0===J&&(J=H),x+=F,I=D-J,K=1<I+J&&(K-=P[I+J],!(0>=K));)I++,K<<=1;if(L+=1<e||a===i&&L>f)return 1;v=M&w,p[v]=H<<24|I<<16|x-q|0}}return 0!==M&&(p[x+M]=D-J<<24|64<<16|0),s.bits=H,0}},{"../utils/common":27}],37:[function(a,b){"use strict";b.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],38:[function(a,b,c){"use strict";function d(a){for(var b=a.length;--b>=0;)a[b]=0}function e(a){return 256>a?gb[a]:gb[256+(a>>>7)]}function f(a,b){a.pending_buf[a.pending++]=255&b,a.pending_buf[a.pending++]=b>>>8&255}function g(a,b,c){a.bi_valid>V-c?(a.bi_buf|=b<>V-a.bi_valid,a.bi_valid+=c-V):(a.bi_buf|=b<>>=1,c<<=1;while(--b>0);return c>>>1}function j(a){16===a.bi_valid?(f(a,a.bi_buf),a.bi_buf=0,a.bi_valid=0):a.bi_valid>=8&&(a.pending_buf[a.pending++]=255&a.bi_buf,a.bi_buf>>=8,a.bi_valid-=8)}function k(a,b){var c,d,e,f,g,h,i=b.dyn_tree,j=b.max_code,k=b.stat_desc.static_tree,l=b.stat_desc.has_stree,m=b.stat_desc.extra_bits,n=b.stat_desc.extra_base,o=b.stat_desc.max_length,p=0;for(f=0;U>=f;f++)a.bl_count[f]=0;for(i[2*a.heap[a.heap_max]+1]=0,c=a.heap_max+1;T>c;c++)d=a.heap[c],f=i[2*i[2*d+1]+1]+1,f>o&&(f=o,p++),i[2*d+1]=f,d>j||(a.bl_count[f]++,g=0,d>=n&&(g=m[d-n]),h=i[2*d],a.opt_len+=h*(f+g),l&&(a.static_len+=h*(k[2*d+1]+g)));if(0!==p){do{for(f=o-1;0===a.bl_count[f];)f--;a.bl_count[f]--,a.bl_count[f+1]+=2,a.bl_count[o]--,p-=2}while(p>0);for(f=o;0!==f;f--)for(d=a.bl_count[f];0!==d;)e=a.heap[--c],e>j||(i[2*e+1]!==f&&(a.opt_len+=(f-i[2*e+1])*i[2*e],i[2*e+1]=f),d--)}}function l(a,b,c){var d,e,f=new Array(U+1),g=0;for(d=1;U>=d;d++)f[d]=g=g+c[d-1]<<1;for(e=0;b>=e;e++){var h=a[2*e+1];0!==h&&(a[2*e]=i(f[h]++,h))}}function m(){var a,b,c,d,e,f=new Array(U+1);for(c=0,d=0;O-1>d;d++)for(ib[d]=c,a=0;a<1<<_[d];a++)hb[c++]=d;for(hb[c-1]=d,e=0,d=0;16>d;d++)for(jb[d]=e,a=0;a<1<>=7;R>d;d++)for(jb[d]=e<<7,a=0;a<1<=b;b++)f[b]=0;for(a=0;143>=a;)eb[2*a+1]=8,a++,f[8]++;for(;255>=a;)eb[2*a+1]=9,a++,f[9]++;for(;279>=a;)eb[2*a+1]=7,a++,f[7]++;for(;287>=a;)eb[2*a+1]=8,a++,f[8]++;for(l(eb,Q+1,f),a=0;R>a;a++)fb[2*a+1]=5,fb[2*a]=i(a,5);kb=new nb(eb,_,P+1,Q,U),lb=new nb(fb,ab,0,R,U),mb=new nb(new Array(0),bb,0,S,W)}function n(a){var b;for(b=0;Q>b;b++)a.dyn_ltree[2*b]=0;for(b=0;R>b;b++)a.dyn_dtree[2*b]=0;for(b=0;S>b;b++)a.bl_tree[2*b]=0;a.dyn_ltree[2*X]=1,a.opt_len=a.static_len=0,a.last_lit=a.matches=0}function o(a){a.bi_valid>8?f(a,a.bi_buf):a.bi_valid>0&&(a.pending_buf[a.pending++]=a.bi_buf),a.bi_buf=0,a.bi_valid=0}function p(a,b,c,d){o(a),d&&(f(a,c),f(a,~c)),E.arraySet(a.pending_buf,a.window,b,c,a.pending),a.pending+=c}function q(a,b,c,d){var e=2*b,f=2*c;return a[e]c;c++)0!==f[2*c]?(a.heap[++a.heap_len]=j=c,a.depth[c]=0):f[2*c+1]=0;for(;a.heap_len<2;)e=a.heap[++a.heap_len]=2>j?++j:0,f[2*e]=1,a.depth[e]=0,a.opt_len--,h&&(a.static_len-=g[2*e+1]);for(b.max_code=j,c=a.heap_len>>1;c>=1;c--)r(a,f,c);e=i;do c=a.heap[1],a.heap[1]=a.heap[a.heap_len--],r(a,f,1),d=a.heap[1],a.heap[--a.heap_max]=c,a.heap[--a.heap_max]=d,f[2*e]=f[2*c]+f[2*d],a.depth[e]=(a.depth[c]>=a.depth[d]?a.depth[c]:a.depth[d])+1,f[2*c+1]=f[2*d+1]=e,a.heap[1]=e++,r(a,f,1);while(a.heap_len>=2);a.heap[--a.heap_max]=a.heap[1],k(a,b),l(f,j,a.bl_count)}function u(a,b,c){var d,e,f=-1,g=b[1],h=0,i=7,j=4;for(0===g&&(i=138,j=3),b[2*(c+1)+1]=65535,d=0;c>=d;d++)e=g,g=b[2*(d+1)+1],++hh?a.bl_tree[2*e]+=h:0!==e?(e!==f&&a.bl_tree[2*e]++,a.bl_tree[2*Y]++):10>=h?a.bl_tree[2*Z]++:a.bl_tree[2*$]++,h=0,f=e,0===g?(i=138,j=3):e===g?(i=6,j=3):(i=7,j=4))}function v(a,b,c){var d,e,f=-1,i=b[1],j=0,k=7,l=4;for(0===i&&(k=138,l=3),d=0;c>=d;d++)if(e=i,i=b[2*(d+1)+1],!(++jj){do h(a,e,a.bl_tree);while(0!==--j)}else 0!==e?(e!==f&&(h(a,e,a.bl_tree),j--),h(a,Y,a.bl_tree),g(a,j-3,2)):10>=j?(h(a,Z,a.bl_tree),g(a,j-3,3)):(h(a,$,a.bl_tree),g(a,j-11,7));j=0,f=e,0===i?(k=138,l=3):e===i?(k=6,l=3):(k=7,l=4)}}function w(a){var b;for(u(a,a.dyn_ltree,a.l_desc.max_code),u(a,a.dyn_dtree,a.d_desc.max_code),t(a,a.bl_desc),b=S-1;b>=3&&0===a.bl_tree[2*cb[b]+1];b--);return a.opt_len+=3*(b+1)+5+5+4,b}function x(a,b,c,d){var e;for(g(a,b-257,5),g(a,c-1,5),g(a,d-4,4),e=0;d>e;e++)g(a,a.bl_tree[2*cb[e]+1],3);v(a,a.dyn_ltree,b-1),v(a,a.dyn_dtree,c-1)}function y(a){var b,c=4093624447;for(b=0;31>=b;b++,c>>>=1)if(1&c&&0!==a.dyn_ltree[2*b])return G;if(0!==a.dyn_ltree[18]||0!==a.dyn_ltree[20]||0!==a.dyn_ltree[26])return H;for(b=32;P>b;b++)if(0!==a.dyn_ltree[2*b])return H;return G}function z(a){pb||(m(),pb=!0),a.l_desc=new ob(a.dyn_ltree,kb),a.d_desc=new ob(a.dyn_dtree,lb),a.bl_desc=new ob(a.bl_tree,mb),a.bi_buf=0,a.bi_valid=0,n(a)}function A(a,b,c,d){g(a,(J<<1)+(d?1:0),3),p(a,b,c,!0)}function B(a){g(a,K<<1,3),h(a,X,eb),j(a)}function C(a,b,c,d){var e,f,h=0;a.level>0?(a.strm.data_type===I&&(a.strm.data_type=y(a)),t(a,a.l_desc),t(a,a.d_desc),h=w(a),e=a.opt_len+3+7>>>3,f=a.static_len+3+7>>>3,e>=f&&(e=f)):e=f=c+5,e>=c+4&&-1!==b?A(a,b,c,d):a.strategy===F||f===e?(g(a,(K<<1)+(d?1:0),3),s(a,eb,fb)):(g(a,(L<<1)+(d?1:0),3),x(a,a.l_desc.max_code+1,a.d_desc.max_code+1,h+1),s(a,a.dyn_ltree,a.dyn_dtree)),n(a),d&&o(a)}function D(a,b,c){return a.pending_buf[a.d_buf+2*a.last_lit]=b>>>8&255,a.pending_buf[a.d_buf+2*a.last_lit+1]=255&b,a.pending_buf[a.l_buf+a.last_lit]=255&c,a.last_lit++,0===b?a.dyn_ltree[2*c]++:(a.matches++,b--,a.dyn_ltree[2*(hb[c]+P+1)]++,a.dyn_dtree[2*e(b)]++),a.last_lit===a.lit_bufsize-1}var E=a("../utils/common"),F=4,G=0,H=1,I=2,J=0,K=1,L=2,M=3,N=258,O=29,P=256,Q=P+1+O,R=30,S=19,T=2*Q+1,U=15,V=16,W=7,X=256,Y=16,Z=17,$=18,_=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],ab=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],bb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],cb=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],db=512,eb=new Array(2*(Q+2));d(eb);var fb=new Array(2*R);d(fb);var gb=new Array(db);d(gb);var hb=new Array(N-M+1);d(hb);var ib=new Array(O);d(ib);var jb=new Array(R);d(jb);var kb,lb,mb,nb=function(a,b,c,d,e){this.static_tree=a,this.extra_bits=b,this.extra_base=c,this.elems=d,this.max_length=e,this.has_stree=a&&a.length},ob=function(a,b){this.dyn_tree=a,this.max_code=0,this.stat_desc=b},pb=!1;c._tr_init=z,c._tr_stored_block=A,c._tr_flush_block=C,c._tr_tally=D,c._tr_align=B},{"../utils/common":27}],39:[function(a,b){"use strict";function c(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}b.exports=c},{}]},{},[9])(9)}); \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/export/libs/pdfmake/pdfmake.js b/chronos/static/js/amcharts/plugins/export/libs/pdfmake/pdfmake.js deleted file mode 100644 index 9e68e29..0000000 --- a/chronos/static/js/amcharts/plugins/export/libs/pdfmake/pdfmake.js +++ /dev/null @@ -1,66555 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(global) {module.exports = global["pdfMake"] = __webpack_require__(1); - /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) - -/***/ }, -/* 1 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(Buffer) {/* jslint node: true */ - /* jslint browser: true */ - /* global BlobBuilder */ - 'use strict'; - - var PdfPrinter = __webpack_require__(6); - var saveAs = __webpack_require__(105); - - var defaultClientFonts = { - Roboto: { - normal: 'Roboto-Regular.ttf', - bold: 'Roboto-Medium.ttf', - italics: 'Roboto-Italic.ttf', - bolditalics: 'Roboto-Italic.ttf' - } - }; - - function Document(docDefinition, fonts, vfs) { - this.docDefinition = docDefinition; - this.fonts = fonts || defaultClientFonts; - this.vfs = vfs; - } - - Document.prototype._createDoc = function(options, callback) { - var printer = new PdfPrinter(this.fonts); - printer.fs.bindFS(this.vfs); - - var doc = printer.createPdfKitDocument(this.docDefinition, options); - var chunks = []; - var result; - - doc.on('data', function(chunk) { - chunks.push(chunk); - }); - doc.on('end', function() { - result = Buffer.concat(chunks); - callback(result, doc._pdfMakePages); - }); - doc.end(); - }; - - Document.prototype._getPages = function(options, cb){ - if (!cb) throw 'getBuffer is an async method and needs a callback argument'; - this._createDoc(options, function(ignoreBuffer, pages){ - cb(pages); - }); - }; - - Document.prototype.open = function(message) { - // we have to open the window immediately and store the reference - // otherwise popup blockers will stop us - var win = window.open('', '_blank'); - - try { - this.getDataUrl(function(result) { - win.location.href = result; - }); - } catch(e) { - win.close(); - throw e; - } - }; - - - Document.prototype.print = function() { - this.getDataUrl(function(dataUrl) { - var iFrame = document.createElement('iframe'); - iFrame.style.position = 'absolute'; - iFrame.style.left = '-99999px'; - iFrame.src = dataUrl; - iFrame.onload = function() { - function removeIFrame(){ - document.body.removeChild(iFrame); - document.removeEventListener('click', removeIFrame); - } - document.addEventListener('click', removeIFrame, false); - }; - - document.body.appendChild(iFrame); - }, { autoPrint: true }); - }; - - Document.prototype.download = function(defaultFileName, cb) { - if(typeof defaultFileName === "function") { - cb = defaultFileName; - defaultFileName = null; - } - - defaultFileName = defaultFileName || 'file.pdf'; - this.getBuffer(function (result) { - var blob; - try { - blob = new Blob([result], { type: 'application/pdf' }); - } - catch (e) { - // Old browser which can't handle it without making it an byte array (ie10) - if (e.name == "InvalidStateError") { - var byteArray = new Uint8Array(result); - blob = new Blob([byteArray.buffer], { type: 'application/pdf' }); - } - } - if (blob) { - saveAs(blob, defaultFileName); - } - else { - throw 'Could not generate blob'; - } - if (typeof cb === "function") { - cb(); - } - }); - }; - - Document.prototype.getBase64 = function(cb, options) { - if (!cb) throw 'getBase64 is an async method and needs a callback argument'; - this._createDoc(options, function(buffer) { - cb(buffer.toString('base64')); - }); - }; - - Document.prototype.getDataUrl = function(cb, options) { - if (!cb) throw 'getDataUrl is an async method and needs a callback argument'; - this._createDoc(options, function(buffer) { - cb('data:application/pdf;base64,' + buffer.toString('base64')); - }); - }; - - Document.prototype.getBuffer = function(cb, options) { - if (!cb) throw 'getBuffer is an async method and needs a callback argument'; - this._createDoc(options, function(buffer){ - cb(buffer); - }); - }; - - module.exports = { - createPdf: function(docDefinition) { - return new Document(docDefinition, window.pdfMake.fonts, window.pdfMake.vfs); - } - }; - - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2).Buffer)) - -/***/ }, -/* 2 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(Buffer) {/*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh - * @license MIT - */ - - var base64 = __webpack_require__(3) - var ieee754 = __webpack_require__(4) - var isArray = __webpack_require__(5) - - exports.Buffer = Buffer - exports.SlowBuffer = SlowBuffer - exports.INSPECT_MAX_BYTES = 50 - Buffer.poolSize = 8192 // not used by this implementation - - var rootParent = {} - - /** - * If `Buffer.TYPED_ARRAY_SUPPORT`: - * === true Use Uint8Array implementation (fastest) - * === false Use Object implementation (most compatible, even IE6) - * - * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, - * Opera 11.6+, iOS 4.2+. - * - * Due to various browser bugs, sometimes the Object implementation will be used even - * when the browser supports typed arrays. - * - * Note: - * - * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances, - * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438. - * - * - Safari 5-7 lacks support for changing the `Object.prototype.constructor` property - * on objects. - * - * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function. - * - * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of - * incorrect length in some situations. - - * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they - * get the Object implementation, which is slower but behaves correctly. - */ - Buffer.TYPED_ARRAY_SUPPORT = (function () { - function Bar () {} - try { - var arr = new Uint8Array(1) - arr.foo = function () { return 42 } - arr.constructor = Bar - return arr.foo() === 42 && // typed array instances can be augmented - arr.constructor === Bar && // constructor can be set - typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray` - arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray` - } catch (e) { - return false - } - })() - - function kMaxLength () { - return Buffer.TYPED_ARRAY_SUPPORT - ? 0x7fffffff - : 0x3fffffff - } - - /** - * Class: Buffer - * ============= - * - * The Buffer constructor returns instances of `Uint8Array` that are augmented - * with function properties for all the node `Buffer` API functions. We use - * `Uint8Array` so that square bracket notation works as expected -- it returns - * a single octet. - * - * By augmenting the instances, we can avoid modifying the `Uint8Array` - * prototype. - */ - function Buffer (arg) { - if (!(this instanceof Buffer)) { - // Avoid going through an ArgumentsAdaptorTrampoline in the common case. - if (arguments.length > 1) return new Buffer(arg, arguments[1]) - return new Buffer(arg) - } - - this.length = 0 - this.parent = undefined - - // Common case. - if (typeof arg === 'number') { - return fromNumber(this, arg) - } - - // Slightly less common case. - if (typeof arg === 'string') { - return fromString(this, arg, arguments.length > 1 ? arguments[1] : 'utf8') - } - - // Unusual. - return fromObject(this, arg) - } - - function fromNumber (that, length) { - that = allocate(that, length < 0 ? 0 : checked(length) | 0) - if (!Buffer.TYPED_ARRAY_SUPPORT) { - for (var i = 0; i < length; i++) { - that[i] = 0 - } - } - return that - } - - function fromString (that, string, encoding) { - if (typeof encoding !== 'string' || encoding === '') encoding = 'utf8' - - // Assumption: byteLength() return value is always < kMaxLength. - var length = byteLength(string, encoding) | 0 - that = allocate(that, length) - - that.write(string, encoding) - return that - } - - function fromObject (that, object) { - if (Buffer.isBuffer(object)) return fromBuffer(that, object) - - if (isArray(object)) return fromArray(that, object) - - if (object == null) { - throw new TypeError('must start with number, buffer, array or string') - } - - if (typeof ArrayBuffer !== 'undefined') { - if (object.buffer instanceof ArrayBuffer) { - return fromTypedArray(that, object) - } - if (object instanceof ArrayBuffer) { - return fromArrayBuffer(that, object) - } - } - - if (object.length) return fromArrayLike(that, object) - - return fromJsonObject(that, object) - } - - function fromBuffer (that, buffer) { - var length = checked(buffer.length) | 0 - that = allocate(that, length) - buffer.copy(that, 0, 0, length) - return that - } - - function fromArray (that, array) { - var length = checked(array.length) | 0 - that = allocate(that, length) - for (var i = 0; i < length; i += 1) { - that[i] = array[i] & 255 - } - return that - } - - // Duplicate of fromArray() to keep fromArray() monomorphic. - function fromTypedArray (that, array) { - var length = checked(array.length) | 0 - that = allocate(that, length) - // Truncating the elements is probably not what people expect from typed - // arrays with BYTES_PER_ELEMENT > 1 but it's compatible with the behavior - // of the old Buffer constructor. - for (var i = 0; i < length; i += 1) { - that[i] = array[i] & 255 - } - return that - } - - function fromArrayBuffer (that, array) { - if (Buffer.TYPED_ARRAY_SUPPORT) { - // Return an augmented `Uint8Array` instance, for best performance - array.byteLength - that = Buffer._augment(new Uint8Array(array)) - } else { - // Fallback: Return an object instance of the Buffer class - that = fromTypedArray(that, new Uint8Array(array)) - } - return that - } - - function fromArrayLike (that, array) { - var length = checked(array.length) | 0 - that = allocate(that, length) - for (var i = 0; i < length; i += 1) { - that[i] = array[i] & 255 - } - return that - } - - // Deserialize { type: 'Buffer', data: [1,2,3,...] } into a Buffer object. - // Returns a zero-length buffer for inputs that don't conform to the spec. - function fromJsonObject (that, object) { - var array - var length = 0 - - if (object.type === 'Buffer' && isArray(object.data)) { - array = object.data - length = checked(array.length) | 0 - } - that = allocate(that, length) - - for (var i = 0; i < length; i += 1) { - that[i] = array[i] & 255 - } - return that - } - - function allocate (that, length) { - if (Buffer.TYPED_ARRAY_SUPPORT) { - // Return an augmented `Uint8Array` instance, for best performance - that = Buffer._augment(new Uint8Array(length)) - } else { - // Fallback: Return an object instance of the Buffer class - that.length = length - that._isBuffer = true - } - - var fromPool = length !== 0 && length <= Buffer.poolSize >>> 1 - if (fromPool) that.parent = rootParent - - return that - } - - function checked (length) { - // Note: cannot use `length < kMaxLength` here because that fails when - // length is NaN (which is otherwise coerced to zero.) - if (length >= kMaxLength()) { - throw new RangeError('Attempt to allocate Buffer larger than maximum ' + - 'size: 0x' + kMaxLength().toString(16) + ' bytes') - } - return length | 0 - } - - function SlowBuffer (subject, encoding) { - if (!(this instanceof SlowBuffer)) return new SlowBuffer(subject, encoding) - - var buf = new Buffer(subject, encoding) - delete buf.parent - return buf - } - - Buffer.isBuffer = function isBuffer (b) { - return !!(b != null && b._isBuffer) - } - - Buffer.compare = function compare (a, b) { - if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { - throw new TypeError('Arguments must be Buffers') - } - - if (a === b) return 0 - - var x = a.length - var y = b.length - - var i = 0 - var len = Math.min(x, y) - while (i < len) { - if (a[i] !== b[i]) break - - ++i - } - - if (i !== len) { - x = a[i] - y = b[i] - } - - if (x < y) return -1 - if (y < x) return 1 - return 0 - } - - Buffer.isEncoding = function isEncoding (encoding) { - switch (String(encoding).toLowerCase()) { - case 'hex': - case 'utf8': - case 'utf-8': - case 'ascii': - case 'binary': - case 'base64': - case 'raw': - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return true - default: - return false - } - } - - Buffer.concat = function concat (list, length) { - if (!isArray(list)) throw new TypeError('list argument must be an Array of Buffers.') - - if (list.length === 0) { - return new Buffer(0) - } - - var i - if (length === undefined) { - length = 0 - for (i = 0; i < list.length; i++) { - length += list[i].length - } - } - - var buf = new Buffer(length) - var pos = 0 - for (i = 0; i < list.length; i++) { - var item = list[i] - item.copy(buf, pos) - pos += item.length - } - return buf - } - - function byteLength (string, encoding) { - if (typeof string !== 'string') string = '' + string - - var len = string.length - if (len === 0) return 0 - - // Use a for loop to avoid recursion - var loweredCase = false - for (;;) { - switch (encoding) { - case 'ascii': - case 'binary': - // Deprecated - case 'raw': - case 'raws': - return len - case 'utf8': - case 'utf-8': - return utf8ToBytes(string).length - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return len * 2 - case 'hex': - return len >>> 1 - case 'base64': - return base64ToBytes(string).length - default: - if (loweredCase) return utf8ToBytes(string).length // assume utf8 - encoding = ('' + encoding).toLowerCase() - loweredCase = true - } - } - } - Buffer.byteLength = byteLength - - // pre-set for values that may exist in the future - Buffer.prototype.length = undefined - Buffer.prototype.parent = undefined - - function slowToString (encoding, start, end) { - var loweredCase = false - - start = start | 0 - end = end === undefined || end === Infinity ? this.length : end | 0 - - if (!encoding) encoding = 'utf8' - if (start < 0) start = 0 - if (end > this.length) end = this.length - if (end <= start) return '' - - while (true) { - switch (encoding) { - case 'hex': - return hexSlice(this, start, end) - - case 'utf8': - case 'utf-8': - return utf8Slice(this, start, end) - - case 'ascii': - return asciiSlice(this, start, end) - - case 'binary': - return binarySlice(this, start, end) - - case 'base64': - return base64Slice(this, start, end) - - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return utf16leSlice(this, start, end) - - default: - if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) - encoding = (encoding + '').toLowerCase() - loweredCase = true - } - } - } - - Buffer.prototype.toString = function toString () { - var length = this.length | 0 - if (length === 0) return '' - if (arguments.length === 0) return utf8Slice(this, 0, length) - return slowToString.apply(this, arguments) - } - - Buffer.prototype.equals = function equals (b) { - if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') - if (this === b) return true - return Buffer.compare(this, b) === 0 - } - - Buffer.prototype.inspect = function inspect () { - var str = '' - var max = exports.INSPECT_MAX_BYTES - if (this.length > 0) { - str = this.toString('hex', 0, max).match(/.{2}/g).join(' ') - if (this.length > max) str += ' ... ' - } - return '' - } - - Buffer.prototype.compare = function compare (b) { - if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') - if (this === b) return 0 - return Buffer.compare(this, b) - } - - Buffer.prototype.indexOf = function indexOf (val, byteOffset) { - if (byteOffset > 0x7fffffff) byteOffset = 0x7fffffff - else if (byteOffset < -0x80000000) byteOffset = -0x80000000 - byteOffset >>= 0 - - if (this.length === 0) return -1 - if (byteOffset >= this.length) return -1 - - // Negative offsets start from the end of the buffer - if (byteOffset < 0) byteOffset = Math.max(this.length + byteOffset, 0) - - if (typeof val === 'string') { - if (val.length === 0) return -1 // special case: looking for empty string always fails - return String.prototype.indexOf.call(this, val, byteOffset) - } - if (Buffer.isBuffer(val)) { - return arrayIndexOf(this, val, byteOffset) - } - if (typeof val === 'number') { - if (Buffer.TYPED_ARRAY_SUPPORT && Uint8Array.prototype.indexOf === 'function') { - return Uint8Array.prototype.indexOf.call(this, val, byteOffset) - } - return arrayIndexOf(this, [ val ], byteOffset) - } - - function arrayIndexOf (arr, val, byteOffset) { - var foundIndex = -1 - for (var i = 0; byteOffset + i < arr.length; i++) { - if (arr[byteOffset + i] === val[foundIndex === -1 ? 0 : i - foundIndex]) { - if (foundIndex === -1) foundIndex = i - if (i - foundIndex + 1 === val.length) return byteOffset + foundIndex - } else { - foundIndex = -1 - } - } - return -1 - } - - throw new TypeError('val must be string, number or Buffer') - } - - // `get` is deprecated - Buffer.prototype.get = function get (offset) { - console.log('.get() is deprecated. Access using array indexes instead.') - return this.readUInt8(offset) - } - - // `set` is deprecated - Buffer.prototype.set = function set (v, offset) { - console.log('.set() is deprecated. Access using array indexes instead.') - return this.writeUInt8(v, offset) - } - - function hexWrite (buf, string, offset, length) { - offset = Number(offset) || 0 - var remaining = buf.length - offset - if (!length) { - length = remaining - } else { - length = Number(length) - if (length > remaining) { - length = remaining - } - } - - // must be an even number of digits - var strLen = string.length - if (strLen % 2 !== 0) throw new Error('Invalid hex string') - - if (length > strLen / 2) { - length = strLen / 2 - } - for (var i = 0; i < length; i++) { - var parsed = parseInt(string.substr(i * 2, 2), 16) - if (isNaN(parsed)) throw new Error('Invalid hex string') - buf[offset + i] = parsed - } - return i - } - - function utf8Write (buf, string, offset, length) { - return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) - } - - function asciiWrite (buf, string, offset, length) { - return blitBuffer(asciiToBytes(string), buf, offset, length) - } - - function binaryWrite (buf, string, offset, length) { - return asciiWrite(buf, string, offset, length) - } - - function base64Write (buf, string, offset, length) { - return blitBuffer(base64ToBytes(string), buf, offset, length) - } - - function ucs2Write (buf, string, offset, length) { - return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) - } - - Buffer.prototype.write = function write (string, offset, length, encoding) { - // Buffer#write(string) - if (offset === undefined) { - encoding = 'utf8' - length = this.length - offset = 0 - // Buffer#write(string, encoding) - } else if (length === undefined && typeof offset === 'string') { - encoding = offset - length = this.length - offset = 0 - // Buffer#write(string, offset[, length][, encoding]) - } else if (isFinite(offset)) { - offset = offset | 0 - if (isFinite(length)) { - length = length | 0 - if (encoding === undefined) encoding = 'utf8' - } else { - encoding = length - length = undefined - } - // legacy write(string, encoding, offset, length) - remove in v0.13 - } else { - var swap = encoding - encoding = offset - offset = length | 0 - length = swap - } - - var remaining = this.length - offset - if (length === undefined || length > remaining) length = remaining - - if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { - throw new RangeError('attempt to write outside buffer bounds') - } - - if (!encoding) encoding = 'utf8' - - var loweredCase = false - for (;;) { - switch (encoding) { - case 'hex': - return hexWrite(this, string, offset, length) - - case 'utf8': - case 'utf-8': - return utf8Write(this, string, offset, length) - - case 'ascii': - return asciiWrite(this, string, offset, length) - - case 'binary': - return binaryWrite(this, string, offset, length) - - case 'base64': - // Warning: maxLength not taken into account in base64Write - return base64Write(this, string, offset, length) - - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return ucs2Write(this, string, offset, length) - - default: - if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) - encoding = ('' + encoding).toLowerCase() - loweredCase = true - } - } - } - - Buffer.prototype.toJSON = function toJSON () { - return { - type: 'Buffer', - data: Array.prototype.slice.call(this._arr || this, 0) - } - } - - function base64Slice (buf, start, end) { - if (start === 0 && end === buf.length) { - return base64.fromByteArray(buf) - } else { - return base64.fromByteArray(buf.slice(start, end)) - } - } - - function utf8Slice (buf, start, end) { - end = Math.min(buf.length, end) - var res = [] - - var i = start - while (i < end) { - var firstByte = buf[i] - var codePoint = null - var bytesPerSequence = (firstByte > 0xEF) ? 4 - : (firstByte > 0xDF) ? 3 - : (firstByte > 0xBF) ? 2 - : 1 - - if (i + bytesPerSequence <= end) { - var secondByte, thirdByte, fourthByte, tempCodePoint - - switch (bytesPerSequence) { - case 1: - if (firstByte < 0x80) { - codePoint = firstByte - } - break - case 2: - secondByte = buf[i + 1] - if ((secondByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F) - if (tempCodePoint > 0x7F) { - codePoint = tempCodePoint - } - } - break - case 3: - secondByte = buf[i + 1] - thirdByte = buf[i + 2] - if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F) - if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { - codePoint = tempCodePoint - } - } - break - case 4: - secondByte = buf[i + 1] - thirdByte = buf[i + 2] - fourthByte = buf[i + 3] - if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F) - if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { - codePoint = tempCodePoint - } - } - } - } - - if (codePoint === null) { - // we did not generate a valid codePoint so insert a - // replacement char (U+FFFD) and advance only 1 byte - codePoint = 0xFFFD - bytesPerSequence = 1 - } else if (codePoint > 0xFFFF) { - // encode to utf16 (surrogate pair dance) - codePoint -= 0x10000 - res.push(codePoint >>> 10 & 0x3FF | 0xD800) - codePoint = 0xDC00 | codePoint & 0x3FF - } - - res.push(codePoint) - i += bytesPerSequence - } - - return decodeCodePointsArray(res) - } - - // Based on http://stackoverflow.com/a/22747272/680742, the browser with - // the lowest limit is Chrome, with 0x10000 args. - // We go 1 magnitude less, for safety - var MAX_ARGUMENTS_LENGTH = 0x1000 - - function decodeCodePointsArray (codePoints) { - var len = codePoints.length - if (len <= MAX_ARGUMENTS_LENGTH) { - return String.fromCharCode.apply(String, codePoints) // avoid extra slice() - } - - // Decode in chunks to avoid "call stack size exceeded". - var res = '' - var i = 0 - while (i < len) { - res += String.fromCharCode.apply( - String, - codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH) - ) - } - return res - } - - function asciiSlice (buf, start, end) { - var ret = '' - end = Math.min(buf.length, end) - - for (var i = start; i < end; i++) { - ret += String.fromCharCode(buf[i] & 0x7F) - } - return ret - } - - function binarySlice (buf, start, end) { - var ret = '' - end = Math.min(buf.length, end) - - for (var i = start; i < end; i++) { - ret += String.fromCharCode(buf[i]) - } - return ret - } - - function hexSlice (buf, start, end) { - var len = buf.length - - if (!start || start < 0) start = 0 - if (!end || end < 0 || end > len) end = len - - var out = '' - for (var i = start; i < end; i++) { - out += toHex(buf[i]) - } - return out - } - - function utf16leSlice (buf, start, end) { - var bytes = buf.slice(start, end) - var res = '' - for (var i = 0; i < bytes.length; i += 2) { - res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256) - } - return res - } - - Buffer.prototype.slice = function slice (start, end) { - var len = this.length - start = ~~start - end = end === undefined ? len : ~~end - - if (start < 0) { - start += len - if (start < 0) start = 0 - } else if (start > len) { - start = len - } - - if (end < 0) { - end += len - if (end < 0) end = 0 - } else if (end > len) { - end = len - } - - if (end < start) end = start - - var newBuf - if (Buffer.TYPED_ARRAY_SUPPORT) { - newBuf = Buffer._augment(this.subarray(start, end)) - } else { - var sliceLen = end - start - newBuf = new Buffer(sliceLen, undefined) - for (var i = 0; i < sliceLen; i++) { - newBuf[i] = this[i + start] - } - } - - if (newBuf.length) newBuf.parent = this.parent || this - - return newBuf - } - - /* - * Need to make sure that buffer isn't trying to write out of bounds. - */ - function checkOffset (offset, ext, length) { - if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') - if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') - } - - Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - var val = this[offset] - var mul = 1 - var i = 0 - while (++i < byteLength && (mul *= 0x100)) { - val += this[offset + i] * mul - } - - return val - } - - Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) { - checkOffset(offset, byteLength, this.length) - } - - var val = this[offset + --byteLength] - var mul = 1 - while (byteLength > 0 && (mul *= 0x100)) { - val += this[offset + --byteLength] * mul - } - - return val - } - - Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) { - if (!noAssert) checkOffset(offset, 1, this.length) - return this[offset] - } - - Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 2, this.length) - return this[offset] | (this[offset + 1] << 8) - } - - Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 2, this.length) - return (this[offset] << 8) | this[offset + 1] - } - - Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - - return ((this[offset]) | - (this[offset + 1] << 8) | - (this[offset + 2] << 16)) + - (this[offset + 3] * 0x1000000) - } - - Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset] * 0x1000000) + - ((this[offset + 1] << 16) | - (this[offset + 2] << 8) | - this[offset + 3]) - } - - Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - var val = this[offset] - var mul = 1 - var i = 0 - while (++i < byteLength && (mul *= 0x100)) { - val += this[offset + i] * mul - } - mul *= 0x80 - - if (val >= mul) val -= Math.pow(2, 8 * byteLength) - - return val - } - - Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - var i = byteLength - var mul = 1 - var val = this[offset + --i] - while (i > 0 && (mul *= 0x100)) { - val += this[offset + --i] * mul - } - mul *= 0x80 - - if (val >= mul) val -= Math.pow(2, 8 * byteLength) - - return val - } - - Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) { - if (!noAssert) checkOffset(offset, 1, this.length) - if (!(this[offset] & 0x80)) return (this[offset]) - return ((0xff - this[offset] + 1) * -1) - } - - Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 2, this.length) - var val = this[offset] | (this[offset + 1] << 8) - return (val & 0x8000) ? val | 0xFFFF0000 : val - } - - Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 2, this.length) - var val = this[offset + 1] | (this[offset] << 8) - return (val & 0x8000) ? val | 0xFFFF0000 : val - } - - Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset]) | - (this[offset + 1] << 8) | - (this[offset + 2] << 16) | - (this[offset + 3] << 24) - } - - Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset] << 24) | - (this[offset + 1] << 16) | - (this[offset + 2] << 8) | - (this[offset + 3]) - } - - Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - return ieee754.read(this, offset, true, 23, 4) - } - - Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - return ieee754.read(this, offset, false, 23, 4) - } - - Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 8, this.length) - return ieee754.read(this, offset, true, 52, 8) - } - - Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 8, this.length) - return ieee754.read(this, offset, false, 52, 8) - } - - function checkInt (buf, value, offset, ext, max, min) { - if (!Buffer.isBuffer(buf)) throw new TypeError('buffer must be a Buffer instance') - if (value > max || value < min) throw new RangeError('value is out of bounds') - if (offset + ext > buf.length) throw new RangeError('index out of range') - } - - Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { - value = +value - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) checkInt(this, value, offset, byteLength, Math.pow(2, 8 * byteLength), 0) - - var mul = 1 - var i = 0 - this[offset] = value & 0xFF - while (++i < byteLength && (mul *= 0x100)) { - this[offset + i] = (value / mul) & 0xFF - } - - return offset + byteLength - } - - Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { - value = +value - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) checkInt(this, value, offset, byteLength, Math.pow(2, 8 * byteLength), 0) - - var i = byteLength - 1 - var mul = 1 - this[offset + i] = value & 0xFF - while (--i >= 0 && (mul *= 0x100)) { - this[offset + i] = (value / mul) & 0xFF - } - - return offset + byteLength - } - - Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0) - if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) - this[offset] = value - return offset + 1 - } - - function objectWriteUInt16 (buf, value, offset, littleEndian) { - if (value < 0) value = 0xffff + value + 1 - for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; i++) { - buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>> - (littleEndian ? i : 1 - i) * 8 - } - } - - Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = value - this[offset + 1] = (value >>> 8) - } else { - objectWriteUInt16(this, value, offset, true) - } - return offset + 2 - } - - Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 8) - this[offset + 1] = value - } else { - objectWriteUInt16(this, value, offset, false) - } - return offset + 2 - } - - function objectWriteUInt32 (buf, value, offset, littleEndian) { - if (value < 0) value = 0xffffffff + value + 1 - for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; i++) { - buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff - } - } - - Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset + 3] = (value >>> 24) - this[offset + 2] = (value >>> 16) - this[offset + 1] = (value >>> 8) - this[offset] = value - } else { - objectWriteUInt32(this, value, offset, true) - } - return offset + 4 - } - - Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 24) - this[offset + 1] = (value >>> 16) - this[offset + 2] = (value >>> 8) - this[offset + 3] = value - } else { - objectWriteUInt32(this, value, offset, false) - } - return offset + 4 - } - - Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) { - var limit = Math.pow(2, 8 * byteLength - 1) - - checkInt(this, value, offset, byteLength, limit - 1, -limit) - } - - var i = 0 - var mul = 1 - var sub = value < 0 ? 1 : 0 - this[offset] = value & 0xFF - while (++i < byteLength && (mul *= 0x100)) { - this[offset + i] = ((value / mul) >> 0) - sub & 0xFF - } - - return offset + byteLength - } - - Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) { - var limit = Math.pow(2, 8 * byteLength - 1) - - checkInt(this, value, offset, byteLength, limit - 1, -limit) - } - - var i = byteLength - 1 - var mul = 1 - var sub = value < 0 ? 1 : 0 - this[offset + i] = value & 0xFF - while (--i >= 0 && (mul *= 0x100)) { - this[offset + i] = ((value / mul) >> 0) - sub & 0xFF - } - - return offset + byteLength - } - - Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80) - if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) - if (value < 0) value = 0xff + value + 1 - this[offset] = value - return offset + 1 - } - - Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = value - this[offset + 1] = (value >>> 8) - } else { - objectWriteUInt16(this, value, offset, true) - } - return offset + 2 - } - - Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 8) - this[offset + 1] = value - } else { - objectWriteUInt16(this, value, offset, false) - } - return offset + 2 - } - - Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = value - this[offset + 1] = (value >>> 8) - this[offset + 2] = (value >>> 16) - this[offset + 3] = (value >>> 24) - } else { - objectWriteUInt32(this, value, offset, true) - } - return offset + 4 - } - - Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) - if (value < 0) value = 0xffffffff + value + 1 - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 24) - this[offset + 1] = (value >>> 16) - this[offset + 2] = (value >>> 8) - this[offset + 3] = value - } else { - objectWriteUInt32(this, value, offset, false) - } - return offset + 4 - } - - function checkIEEE754 (buf, value, offset, ext, max, min) { - if (value > max || value < min) throw new RangeError('value is out of bounds') - if (offset + ext > buf.length) throw new RangeError('index out of range') - if (offset < 0) throw new RangeError('index out of range') - } - - function writeFloat (buf, value, offset, littleEndian, noAssert) { - if (!noAssert) { - checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38) - } - ieee754.write(buf, value, offset, littleEndian, 23, 4) - return offset + 4 - } - - Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { - return writeFloat(this, value, offset, true, noAssert) - } - - Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { - return writeFloat(this, value, offset, false, noAssert) - } - - function writeDouble (buf, value, offset, littleEndian, noAssert) { - if (!noAssert) { - checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308) - } - ieee754.write(buf, value, offset, littleEndian, 52, 8) - return offset + 8 - } - - Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { - return writeDouble(this, value, offset, true, noAssert) - } - - Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { - return writeDouble(this, value, offset, false, noAssert) - } - - // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) - Buffer.prototype.copy = function copy (target, targetStart, start, end) { - if (!start) start = 0 - if (!end && end !== 0) end = this.length - if (targetStart >= target.length) targetStart = target.length - if (!targetStart) targetStart = 0 - if (end > 0 && end < start) end = start - - // Copy 0 bytes; we're done - if (end === start) return 0 - if (target.length === 0 || this.length === 0) return 0 - - // Fatal error conditions - if (targetStart < 0) { - throw new RangeError('targetStart out of bounds') - } - if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds') - if (end < 0) throw new RangeError('sourceEnd out of bounds') - - // Are we oob? - if (end > this.length) end = this.length - if (target.length - targetStart < end - start) { - end = target.length - targetStart + start - } - - var len = end - start - var i - - if (this === target && start < targetStart && targetStart < end) { - // descending copy from end - for (i = len - 1; i >= 0; i--) { - target[i + targetStart] = this[i + start] - } - } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) { - // ascending copy from start - for (i = 0; i < len; i++) { - target[i + targetStart] = this[i + start] - } - } else { - target._set(this.subarray(start, start + len), targetStart) - } - - return len - } - - // fill(value, start=0, end=buffer.length) - Buffer.prototype.fill = function fill (value, start, end) { - if (!value) value = 0 - if (!start) start = 0 - if (!end) end = this.length - - if (end < start) throw new RangeError('end < start') - - // Fill 0 bytes; we're done - if (end === start) return - if (this.length === 0) return - - if (start < 0 || start >= this.length) throw new RangeError('start out of bounds') - if (end < 0 || end > this.length) throw new RangeError('end out of bounds') - - var i - if (typeof value === 'number') { - for (i = start; i < end; i++) { - this[i] = value - } - } else { - var bytes = utf8ToBytes(value.toString()) - var len = bytes.length - for (i = start; i < end; i++) { - this[i] = bytes[i % len] - } - } - - return this - } - - /** - * Creates a new `ArrayBuffer` with the *copied* memory of the buffer instance. - * Added in Node 0.12. Only available in browsers that support ArrayBuffer. - */ - Buffer.prototype.toArrayBuffer = function toArrayBuffer () { - if (typeof Uint8Array !== 'undefined') { - if (Buffer.TYPED_ARRAY_SUPPORT) { - return (new Buffer(this)).buffer - } else { - var buf = new Uint8Array(this.length) - for (var i = 0, len = buf.length; i < len; i += 1) { - buf[i] = this[i] - } - return buf.buffer - } - } else { - throw new TypeError('Buffer.toArrayBuffer not supported in this browser') - } - } - - // HELPER FUNCTIONS - // ================ - - var BP = Buffer.prototype - - /** - * Augment a Uint8Array *instance* (not the Uint8Array class!) with Buffer methods - */ - Buffer._augment = function _augment (arr) { - arr.constructor = Buffer - arr._isBuffer = true - - // save reference to original Uint8Array set method before overwriting - arr._set = arr.set - - // deprecated - arr.get = BP.get - arr.set = BP.set - - arr.write = BP.write - arr.toString = BP.toString - arr.toLocaleString = BP.toString - arr.toJSON = BP.toJSON - arr.equals = BP.equals - arr.compare = BP.compare - arr.indexOf = BP.indexOf - arr.copy = BP.copy - arr.slice = BP.slice - arr.readUIntLE = BP.readUIntLE - arr.readUIntBE = BP.readUIntBE - arr.readUInt8 = BP.readUInt8 - arr.readUInt16LE = BP.readUInt16LE - arr.readUInt16BE = BP.readUInt16BE - arr.readUInt32LE = BP.readUInt32LE - arr.readUInt32BE = BP.readUInt32BE - arr.readIntLE = BP.readIntLE - arr.readIntBE = BP.readIntBE - arr.readInt8 = BP.readInt8 - arr.readInt16LE = BP.readInt16LE - arr.readInt16BE = BP.readInt16BE - arr.readInt32LE = BP.readInt32LE - arr.readInt32BE = BP.readInt32BE - arr.readFloatLE = BP.readFloatLE - arr.readFloatBE = BP.readFloatBE - arr.readDoubleLE = BP.readDoubleLE - arr.readDoubleBE = BP.readDoubleBE - arr.writeUInt8 = BP.writeUInt8 - arr.writeUIntLE = BP.writeUIntLE - arr.writeUIntBE = BP.writeUIntBE - arr.writeUInt16LE = BP.writeUInt16LE - arr.writeUInt16BE = BP.writeUInt16BE - arr.writeUInt32LE = BP.writeUInt32LE - arr.writeUInt32BE = BP.writeUInt32BE - arr.writeIntLE = BP.writeIntLE - arr.writeIntBE = BP.writeIntBE - arr.writeInt8 = BP.writeInt8 - arr.writeInt16LE = BP.writeInt16LE - arr.writeInt16BE = BP.writeInt16BE - arr.writeInt32LE = BP.writeInt32LE - arr.writeInt32BE = BP.writeInt32BE - arr.writeFloatLE = BP.writeFloatLE - arr.writeFloatBE = BP.writeFloatBE - arr.writeDoubleLE = BP.writeDoubleLE - arr.writeDoubleBE = BP.writeDoubleBE - arr.fill = BP.fill - arr.inspect = BP.inspect - arr.toArrayBuffer = BP.toArrayBuffer - - return arr - } - - var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g - - function base64clean (str) { - // Node strips out invalid characters like \n and \t from the string, base64-js does not - str = stringtrim(str).replace(INVALID_BASE64_RE, '') - // Node converts strings with length < 2 to '' - if (str.length < 2) return '' - // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not - while (str.length % 4 !== 0) { - str = str + '=' - } - return str - } - - function stringtrim (str) { - if (str.trim) return str.trim() - return str.replace(/^\s+|\s+$/g, '') - } - - function toHex (n) { - if (n < 16) return '0' + n.toString(16) - return n.toString(16) - } - - function utf8ToBytes (string, units) { - units = units || Infinity - var codePoint - var length = string.length - var leadSurrogate = null - var bytes = [] - - for (var i = 0; i < length; i++) { - codePoint = string.charCodeAt(i) - - // is surrogate component - if (codePoint > 0xD7FF && codePoint < 0xE000) { - // last char was a lead - if (!leadSurrogate) { - // no lead yet - if (codePoint > 0xDBFF) { - // unexpected trail - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - continue - } else if (i + 1 === length) { - // unpaired lead - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - continue - } - - // valid lead - leadSurrogate = codePoint - - continue - } - - // 2 leads in a row - if (codePoint < 0xDC00) { - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - leadSurrogate = codePoint - continue - } - - // valid surrogate pair - codePoint = leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00 | 0x10000 - } else if (leadSurrogate) { - // valid bmp char, but last char was a lead - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - } - - leadSurrogate = null - - // encode utf8 - if (codePoint < 0x80) { - if ((units -= 1) < 0) break - bytes.push(codePoint) - } else if (codePoint < 0x800) { - if ((units -= 2) < 0) break - bytes.push( - codePoint >> 0x6 | 0xC0, - codePoint & 0x3F | 0x80 - ) - } else if (codePoint < 0x10000) { - if ((units -= 3) < 0) break - bytes.push( - codePoint >> 0xC | 0xE0, - codePoint >> 0x6 & 0x3F | 0x80, - codePoint & 0x3F | 0x80 - ) - } else if (codePoint < 0x110000) { - if ((units -= 4) < 0) break - bytes.push( - codePoint >> 0x12 | 0xF0, - codePoint >> 0xC & 0x3F | 0x80, - codePoint >> 0x6 & 0x3F | 0x80, - codePoint & 0x3F | 0x80 - ) - } else { - throw new Error('Invalid code point') - } - } - - return bytes - } - - function asciiToBytes (str) { - var byteArray = [] - for (var i = 0; i < str.length; i++) { - // Node's code seems to be doing this and not & 0x7F.. - byteArray.push(str.charCodeAt(i) & 0xFF) - } - return byteArray - } - - function utf16leToBytes (str, units) { - var c, hi, lo - var byteArray = [] - for (var i = 0; i < str.length; i++) { - if ((units -= 2) < 0) break - - c = str.charCodeAt(i) - hi = c >> 8 - lo = c % 256 - byteArray.push(lo) - byteArray.push(hi) - } - - return byteArray - } - - function base64ToBytes (str) { - return base64.toByteArray(base64clean(str)) - } - - function blitBuffer (src, dst, offset, length) { - for (var i = 0; i < length; i++) { - if ((i + offset >= dst.length) || (i >= src.length)) break - dst[i + offset] = src[i] - } - return i - } - - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2).Buffer)) - -/***/ }, -/* 3 */ -/***/ function(module, exports, __webpack_require__) { - - var lookup = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; - - ;(function (exports) { - 'use strict'; - - var Arr = (typeof Uint8Array !== 'undefined') - ? Uint8Array - : Array - - var PLUS = '+'.charCodeAt(0) - var SLASH = '/'.charCodeAt(0) - var NUMBER = '0'.charCodeAt(0) - var LOWER = 'a'.charCodeAt(0) - var UPPER = 'A'.charCodeAt(0) - var PLUS_URL_SAFE = '-'.charCodeAt(0) - var SLASH_URL_SAFE = '_'.charCodeAt(0) - - function decode (elt) { - var code = elt.charCodeAt(0) - if (code === PLUS || - code === PLUS_URL_SAFE) - return 62 // '+' - if (code === SLASH || - code === SLASH_URL_SAFE) - return 63 // '/' - if (code < NUMBER) - return -1 //no match - if (code < NUMBER + 10) - return code - NUMBER + 26 + 26 - if (code < UPPER + 26) - return code - UPPER - if (code < LOWER + 26) - return code - LOWER + 26 - } - - function b64ToByteArray (b64) { - var i, j, l, tmp, placeHolders, arr - - if (b64.length % 4 > 0) { - throw new Error('Invalid string. Length must be a multiple of 4') - } - - // the number of equal signs (place holders) - // if there are two placeholders, than the two characters before it - // represent one byte - // if there is only one, then the three characters before it represent 2 bytes - // this is just a cheap hack to not do indexOf twice - var len = b64.length - placeHolders = '=' === b64.charAt(len - 2) ? 2 : '=' === b64.charAt(len - 1) ? 1 : 0 - - // base64 is 4/3 + up to two characters of the original data - arr = new Arr(b64.length * 3 / 4 - placeHolders) - - // if there are placeholders, only get up to the last complete 4 chars - l = placeHolders > 0 ? b64.length - 4 : b64.length - - var L = 0 - - function push (v) { - arr[L++] = v - } - - for (i = 0, j = 0; i < l; i += 4, j += 3) { - tmp = (decode(b64.charAt(i)) << 18) | (decode(b64.charAt(i + 1)) << 12) | (decode(b64.charAt(i + 2)) << 6) | decode(b64.charAt(i + 3)) - push((tmp & 0xFF0000) >> 16) - push((tmp & 0xFF00) >> 8) - push(tmp & 0xFF) - } - - if (placeHolders === 2) { - tmp = (decode(b64.charAt(i)) << 2) | (decode(b64.charAt(i + 1)) >> 4) - push(tmp & 0xFF) - } else if (placeHolders === 1) { - tmp = (decode(b64.charAt(i)) << 10) | (decode(b64.charAt(i + 1)) << 4) | (decode(b64.charAt(i + 2)) >> 2) - push((tmp >> 8) & 0xFF) - push(tmp & 0xFF) - } - - return arr - } - - function uint8ToBase64 (uint8) { - var i, - extraBytes = uint8.length % 3, // if we have 1 byte left, pad 2 bytes - output = "", - temp, length - - function encode (num) { - return lookup.charAt(num) - } - - function tripletToBase64 (num) { - return encode(num >> 18 & 0x3F) + encode(num >> 12 & 0x3F) + encode(num >> 6 & 0x3F) + encode(num & 0x3F) - } - - // go through the array every three bytes, we'll deal with trailing stuff later - for (i = 0, length = uint8.length - extraBytes; i < length; i += 3) { - temp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2]) - output += tripletToBase64(temp) - } - - // pad the end with zeros, but make sure to not forget the extra bytes - switch (extraBytes) { - case 1: - temp = uint8[uint8.length - 1] - output += encode(temp >> 2) - output += encode((temp << 4) & 0x3F) - output += '==' - break - case 2: - temp = (uint8[uint8.length - 2] << 8) + (uint8[uint8.length - 1]) - output += encode(temp >> 10) - output += encode((temp >> 4) & 0x3F) - output += encode((temp << 2) & 0x3F) - output += '=' - break - } - - return output - } - - exports.toByteArray = b64ToByteArray - exports.fromByteArray = uint8ToBase64 - }( false ? (this.base64js = {}) : exports)) - - -/***/ }, -/* 4 */ -/***/ function(module, exports) { - - exports.read = function (buffer, offset, isLE, mLen, nBytes) { - var e, m - var eLen = nBytes * 8 - mLen - 1 - var eMax = (1 << eLen) - 1 - var eBias = eMax >> 1 - var nBits = -7 - var i = isLE ? (nBytes - 1) : 0 - var d = isLE ? -1 : 1 - var s = buffer[offset + i] - - i += d - - e = s & ((1 << (-nBits)) - 1) - s >>= (-nBits) - nBits += eLen - for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {} - - m = e & ((1 << (-nBits)) - 1) - e >>= (-nBits) - nBits += mLen - for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {} - - if (e === 0) { - e = 1 - eBias - } else if (e === eMax) { - return m ? NaN : ((s ? -1 : 1) * Infinity) - } else { - m = m + Math.pow(2, mLen) - e = e - eBias - } - return (s ? -1 : 1) * m * Math.pow(2, e - mLen) - } - - exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { - var e, m, c - var eLen = nBytes * 8 - mLen - 1 - var eMax = (1 << eLen) - 1 - var eBias = eMax >> 1 - var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0) - var i = isLE ? 0 : (nBytes - 1) - var d = isLE ? 1 : -1 - var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0 - - value = Math.abs(value) - - if (isNaN(value) || value === Infinity) { - m = isNaN(value) ? 1 : 0 - e = eMax - } else { - e = Math.floor(Math.log(value) / Math.LN2) - if (value * (c = Math.pow(2, -e)) < 1) { - e-- - c *= 2 - } - if (e + eBias >= 1) { - value += rt / c - } else { - value += rt * Math.pow(2, 1 - eBias) - } - if (value * c >= 2) { - e++ - c /= 2 - } - - if (e + eBias >= eMax) { - m = 0 - e = eMax - } else if (e + eBias >= 1) { - m = (value * c - 1) * Math.pow(2, mLen) - e = e + eBias - } else { - m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen) - e = 0 - } - } - - for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} - - e = (e << mLen) | m - eLen += mLen - for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} - - buffer[offset + i - d] |= s * 128 - } - - -/***/ }, -/* 5 */ -/***/ function(module, exports) { - - - /** - * isArray - */ - - var isArray = Array.isArray; - - /** - * toString - */ - - var str = Object.prototype.toString; - - /** - * Whether or not the given `val` - * is an array. - * - * example: - * - * isArray([]); - * // > true - * isArray(arguments); - * // > false - * isArray(''); - * // > false - * - * @param {mixed} val - * @return {bool} - */ - - module.exports = isArray || function (val) { - return !! val && '[object Array]' == str.call(val); - }; - - -/***/ }, -/* 6 */ -/***/ function(module, exports, __webpack_require__) { - - /* jslint node: true */ - /* global window */ - 'use strict'; - - var _ = __webpack_require__(7); - var FontProvider = __webpack_require__(9); - var LayoutBuilder = __webpack_require__(11); - var PdfKit = __webpack_require__(24); - var PDFReference = __webpack_require__(46); - var sizes = __webpack_require__(102); - var ImageMeasure = __webpack_require__(103); - var textDecorator = __webpack_require__(104); - var FontProvider = __webpack_require__(9); - - //////////////////////////////////////// - // PdfPrinter - - /** - * @class Creates an instance of a PdfPrinter which turns document definition into a pdf - * - * @param {Object} fontDescriptors font definition dictionary - * - * @example - * var fontDescriptors = { - * Roboto: { - * normal: 'fonts/Roboto-Regular.ttf', - * bold: 'fonts/Roboto-Medium.ttf', - * italics: 'fonts/Roboto-Italic.ttf', - * bolditalics: 'fonts/Roboto-Italic.ttf' - * } - * }; - * - * var printer = new PdfPrinter(fontDescriptors); - */ - function PdfPrinter(fontDescriptors) { - this.fontDescriptors = fontDescriptors; - } - - /** - * Executes layout engine for the specified document and renders it into a pdfkit document - * ready to be saved. - * - * @param {Object} docDefinition document definition - * @param {Object} docDefinition.content an array describing the pdf structure (for more information take a look at the examples in the /examples folder) - * @param {Object} [docDefinition.defaultStyle] default (implicit) style definition - * @param {Object} [docDefinition.styles] dictionary defining all styles which can be used in the document - * @param {Object} [docDefinition.pageSize] page size (pdfkit units, A4 dimensions by default) - * @param {Number} docDefinition.pageSize.width width - * @param {Number} docDefinition.pageSize.height height - * @param {Object} [docDefinition.pageMargins] page margins (pdfkit units) - * - * @example - * - * var docDefinition = { - * content: [ - * 'First paragraph', - * 'Second paragraph, this time a little bit longer', - * { text: 'Third paragraph, slightly bigger font size', fontSize: 20 }, - * { text: 'Another paragraph using a named style', style: 'header' }, - * { text: ['playing with ', 'inlines' ] }, - * { text: ['and ', { text: 'restyling ', bold: true }, 'them'] }, - * ], - * styles: { - * header: { fontSize: 30, bold: true } - * } - * } - * - * var pdfDoc = printer.createPdfKitDocument(docDefinition); - * - * pdfDoc.pipe(fs.createWriteStream('sample.pdf')); - * pdfDoc.end(); - * - * @return {Object} a pdfKit document object which can be saved or encode to data-url - */ - PdfPrinter.prototype.createPdfKitDocument = function(docDefinition, options) { - options = options || {}; - - var pageSize = pageSize2widthAndHeight(docDefinition.pageSize || 'a4'); - - if(docDefinition.pageOrientation === 'landscape') { - pageSize = { width: pageSize.height, height: pageSize.width}; - } - pageSize.orientation = docDefinition.pageOrientation === 'landscape' ? docDefinition.pageOrientation : 'portrait'; - - this.pdfKitDoc = new PdfKit({ size: [ pageSize.width, pageSize.height ], compress: false}); - this.pdfKitDoc.info.Producer = 'pdfmake'; - this.pdfKitDoc.info.Creator = 'pdfmake'; - this.fontProvider = new FontProvider(this.fontDescriptors, this.pdfKitDoc); - - docDefinition.images = docDefinition.images || {}; - - var builder = new LayoutBuilder( - pageSize, - fixPageMargins(docDefinition.pageMargins || 40), - new ImageMeasure(this.pdfKitDoc, docDefinition.images)); - - registerDefaultTableLayouts(builder); - if (options.tableLayouts) { - builder.registerTableLayouts(options.tableLayouts); - } - - var pages = builder.layoutDocument(docDefinition.content, this.fontProvider, docDefinition.styles || {}, docDefinition.defaultStyle || { fontSize: 12, font: 'Roboto' }, docDefinition.background, docDefinition.header, docDefinition.footer, docDefinition.images, docDefinition.watermark, docDefinition.pageBreakBefore); - - renderPages(pages, this.fontProvider, this.pdfKitDoc); - - if(options.autoPrint){ - var printActionRef = this.pdfKitDoc.ref({ - Type: 'Action', - S: 'Named', - N: 'Print' - }); - this.pdfKitDoc._root.data.OpenAction = printActionRef; - printActionRef.end(); - } - return this.pdfKitDoc; - }; - - function fixPageMargins(margin) { - if (!margin) return null; - - if (typeof margin === 'number' || margin instanceof Number) { - margin = { left: margin, right: margin, top: margin, bottom: margin }; - } else if (margin instanceof Array) { - if (margin.length === 2) { - margin = { left: margin[0], top: margin[1], right: margin[0], bottom: margin[1] }; - } else if (margin.length === 4) { - margin = { left: margin[0], top: margin[1], right: margin[2], bottom: margin[3] }; - } else throw 'Invalid pageMargins definition'; - } - - return margin; - } - - function registerDefaultTableLayouts(layoutBuilder) { - layoutBuilder.registerTableLayouts({ - noBorders: { - hLineWidth: function(i) { return 0; }, - vLineWidth: function(i) { return 0; }, - paddingLeft: function(i) { return i && 4 || 0; }, - paddingRight: function(i, node) { return (i < node.table.widths.length - 1) ? 4 : 0; }, - }, - headerLineOnly: { - hLineWidth: function(i, node) { - if (i === 0 || i === node.table.body.length) return 0; - return (i === node.table.headerRows) ? 2 : 0; - }, - vLineWidth: function(i) { return 0; }, - paddingLeft: function(i) { - return i === 0 ? 0 : 8; - }, - paddingRight: function(i, node) { - return (i === node.table.widths.length - 1) ? 0 : 8; - } - }, - lightHorizontalLines: { - hLineWidth: function(i, node) { - if (i === 0 || i === node.table.body.length) return 0; - return (i === node.table.headerRows) ? 2 : 1; - }, - vLineWidth: function(i) { return 0; }, - hLineColor: function(i) { return i === 1 ? 'black' : '#aaa'; }, - paddingLeft: function(i) { - return i === 0 ? 0 : 8; - }, - paddingRight: function(i, node) { - return (i === node.table.widths.length - 1) ? 0 : 8; - } - } - }); - } - - var defaultLayout = { - hLineWidth: function(i, node) { return 1; }, //return node.table.headerRows && i === node.table.headerRows && 3 || 0; }, - vLineWidth: function(i, node) { return 1; }, - hLineColor: function(i, node) { return 'black'; }, - vLineColor: function(i, node) { return 'black'; }, - paddingLeft: function(i, node) { return 4; }, //i && 4 || 0; }, - paddingRight: function(i, node) { return 4; }, //(i < node.table.widths.length - 1) ? 4 : 0; }, - paddingTop: function(i, node) { return 2; }, - paddingBottom: function(i, node) { return 2; } - }; - - function pageSize2widthAndHeight(pageSize) { - if (typeof pageSize == 'string' || pageSize instanceof String) { - var size = sizes[pageSize.toUpperCase()]; - if (!size) throw ('Page size ' + pageSize + ' not recognized'); - return { width: size[0], height: size[1] }; - } - - return pageSize; - } - - function StringObject(str){ - this.isString = true; - this.toString = function(){ - return str; - }; - } - - function updatePageOrientationInOptions(currentPage, pdfKitDoc) { - var previousPageOrientation = pdfKitDoc.options.size[0] > pdfKitDoc.options.size[1] ? 'landscape' : 'portrait'; - - if(currentPage.pageSize.orientation !== previousPageOrientation) { - var width = pdfKitDoc.options.size[0]; - var height = pdfKitDoc.options.size[1]; - pdfKitDoc.options.size = [height, width]; - } - } - - function renderPages(pages, fontProvider, pdfKitDoc) { - pdfKitDoc._pdfMakePages = pages; - for (var i = 0; i < pages.length; i++) { - if (i > 0) { - updatePageOrientationInOptions(pages[i], pdfKitDoc); - pdfKitDoc.addPage(pdfKitDoc.options); - } - - var page = pages[i]; - for(var ii = 0, il = page.items.length; ii < il; ii++) { - var item = page.items[ii]; - switch(item.type) { - case 'vector': - renderVector(item.item, pdfKitDoc); - break; - case 'line': - renderLine(item.item, item.item.x, item.item.y, pdfKitDoc); - break; - case 'image': - renderImage(item.item, item.item.x, item.item.y, pdfKitDoc); - break; - } - } - if(page.watermark){ - renderWatermark(page, pdfKitDoc); - } - - fontProvider.setFontRefsToPdfDoc(); - } - } - - function renderLine(line, x, y, pdfKitDoc) { - x = x || 0; - y = y || 0; - - var ascenderHeight = line.getAscenderHeight(); - - textDecorator.drawBackground(line, x, y, pdfKitDoc); - - //TODO: line.optimizeInlines(); - for(var i = 0, l = line.inlines.length; i < l; i++) { - var inline = line.inlines[i]; - - pdfKitDoc.fill(inline.color || 'black'); - - pdfKitDoc.save(); - pdfKitDoc.transform(1, 0, 0, -1, 0, pdfKitDoc.page.height); - - - var encoded = inline.font.encode(inline.text); - pdfKitDoc.addContent('BT'); - - pdfKitDoc.addContent('' + (x + inline.x) + ' ' + (pdfKitDoc.page.height - y - ascenderHeight) + ' Td'); - pdfKitDoc.addContent('/' + encoded.fontId + ' ' + inline.fontSize + ' Tf'); - - pdfKitDoc.addContent('<' + encoded.encodedText + '> Tj'); - - pdfKitDoc.addContent('ET'); - pdfKitDoc.restore(); - } - - textDecorator.drawDecorations(line, x, y, pdfKitDoc); - - } - - function renderWatermark(page, pdfKitDoc){ - var watermark = page.watermark; - - pdfKitDoc.fill('black'); - pdfKitDoc.opacity(0.6); - - pdfKitDoc.save(); - pdfKitDoc.transform(1, 0, 0, -1, 0, pdfKitDoc.page.height); - - var angle = Math.atan2(pdfKitDoc.page.height, pdfKitDoc.page.width) * 180/Math.PI; - pdfKitDoc.rotate(angle, {origin: [pdfKitDoc.page.width/2, pdfKitDoc.page.height/2]}); - - var encoded = watermark.font.encode(watermark.text); - pdfKitDoc.addContent('BT'); - pdfKitDoc.addContent('' + (pdfKitDoc.page.width/2 - watermark.size.size.width/2) + ' ' + (pdfKitDoc.page.height/2 - watermark.size.size.height/4) + ' Td'); - pdfKitDoc.addContent('/' + encoded.fontId + ' ' + watermark.size.fontSize + ' Tf'); - pdfKitDoc.addContent('<' + encoded.encodedText + '> Tj'); - pdfKitDoc.addContent('ET'); - pdfKitDoc.restore(); - } - - function renderVector(vector, pdfDoc) { - //TODO: pdf optimization (there's no need to write all properties everytime) - pdfDoc.lineWidth(vector.lineWidth || 1); - if (vector.dash) { - pdfDoc.dash(vector.dash.length, { space: vector.dash.space || vector.dash.length }); - } else { - pdfDoc.undash(); - } - pdfDoc.fillOpacity(vector.fillOpacity || 1); - pdfDoc.strokeOpacity(vector.strokeOpacity || 1); - pdfDoc.lineJoin(vector.lineJoin || 'miter'); - - //TODO: clipping - - switch(vector.type) { - case 'ellipse': - pdfDoc.ellipse(vector.x, vector.y, vector.r1, vector.r2); - break; - case 'rect': - if (vector.r) { - pdfDoc.roundedRect(vector.x, vector.y, vector.w, vector.h, vector.r); - } else { - pdfDoc.rect(vector.x, vector.y, vector.w, vector.h); - } - break; - case 'line': - pdfDoc.moveTo(vector.x1, vector.y1); - pdfDoc.lineTo(vector.x2, vector.y2); - break; - case 'polyline': - if (vector.points.length === 0) break; - - pdfDoc.moveTo(vector.points[0].x, vector.points[0].y); - for(var i = 1, l = vector.points.length; i < l; i++) { - pdfDoc.lineTo(vector.points[i].x, vector.points[i].y); - } - - if (vector.points.length > 1) { - var p1 = vector.points[0]; - var pn = vector.points[vector.points.length - 1]; - - if (vector.closePath || p1.x === pn.x && p1.y === pn.y) { - pdfDoc.closePath(); - } - } - break; - } - - if (vector.color && vector.lineColor) { - pdfDoc.fillAndStroke(vector.color, vector.lineColor); - } else if (vector.color) { - pdfDoc.fill(vector.color); - } else { - pdfDoc.stroke(vector.lineColor || 'black'); - } - } - - function renderImage(image, x, y, pdfKitDoc) { - pdfKitDoc.image(image.image, image.x, image.y, { width: image._width, height: image._height }); - } - - module.exports = PdfPrinter; - - - /* temporary browser extension */ - PdfPrinter.prototype.fs = __webpack_require__(44); - - -/***/ }, -/* 7 */ -/***/ function(module, exports, __webpack_require__) { - - var __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(module, global) {/** - * @license - * lodash 3.1.0 (Custom Build) - * Build: `lodash modern -d -o ./index.js` - * Copyright 2012-2015 The Dojo Foundation - * Based on Underscore.js 1.7.0 - * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - * Available under MIT license - */ - ;(function() { - - /** Used as a safe reference for `undefined` in pre-ES5 environments. */ - var undefined; - - /** Used as the semantic version number. */ - var VERSION = '3.1.0'; - - /** Used to compose bitmasks for wrapper metadata. */ - var BIND_FLAG = 1, - BIND_KEY_FLAG = 2, - CURRY_BOUND_FLAG = 4, - CURRY_FLAG = 8, - CURRY_RIGHT_FLAG = 16, - PARTIAL_FLAG = 32, - PARTIAL_RIGHT_FLAG = 64, - REARG_FLAG = 128, - ARY_FLAG = 256; - - /** Used as default options for `_.trunc`. */ - var DEFAULT_TRUNC_LENGTH = 30, - DEFAULT_TRUNC_OMISSION = '...'; - - /** Used to detect when a function becomes hot. */ - var HOT_COUNT = 150, - HOT_SPAN = 16; - - /** Used to indicate the type of lazy iteratees. */ - var LAZY_FILTER_FLAG = 0, - LAZY_MAP_FLAG = 1, - LAZY_WHILE_FLAG = 2; - - /** Used as the `TypeError` message for "Functions" methods. */ - var FUNC_ERROR_TEXT = 'Expected a function'; - - /** Used as the internal argument placeholder. */ - var PLACEHOLDER = '__lodash_placeholder__'; - - /** `Object#toString` result references. */ - var argsTag = '[object Arguments]', - arrayTag = '[object Array]', - boolTag = '[object Boolean]', - dateTag = '[object Date]', - errorTag = '[object Error]', - funcTag = '[object Function]', - mapTag = '[object Map]', - numberTag = '[object Number]', - objectTag = '[object Object]', - regexpTag = '[object RegExp]', - setTag = '[object Set]', - stringTag = '[object String]', - weakMapTag = '[object WeakMap]'; - - var arrayBufferTag = '[object ArrayBuffer]', - float32Tag = '[object Float32Array]', - float64Tag = '[object Float64Array]', - int8Tag = '[object Int8Array]', - int16Tag = '[object Int16Array]', - int32Tag = '[object Int32Array]', - uint8Tag = '[object Uint8Array]', - uint8ClampedTag = '[object Uint8ClampedArray]', - uint16Tag = '[object Uint16Array]', - uint32Tag = '[object Uint32Array]'; - - /** Used to match empty string literals in compiled template source. */ - var reEmptyStringLeading = /\b__p \+= '';/g, - reEmptyStringMiddle = /\b(__p \+=) '' \+/g, - reEmptyStringTrailing = /(__e\(.*?\)|\b__t\)) \+\n'';/g; - - /** Used to match HTML entities and HTML characters. */ - var reEscapedHtml = /&(?:amp|lt|gt|quot|#39|#96);/g, - reUnescapedHtml = /[&<>"'`]/g, - reHasEscapedHtml = RegExp(reEscapedHtml.source), - reHasUnescapedHtml = RegExp(reUnescapedHtml.source); - - /** Used to match template delimiters. */ - var reEscape = /<%-([\s\S]+?)%>/g, - reEvaluate = /<%([\s\S]+?)%>/g, - reInterpolate = /<%=([\s\S]+?)%>/g; - - /** - * Used to match ES template delimiters. - * See the [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-template-literal-lexical-components) - * for more details. - */ - var reEsTemplate = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g; - - /** Used to match `RegExp` flags from their coerced string values. */ - var reFlags = /\w*$/; - - /** Used to detect named functions. */ - var reFuncName = /^\s*function[ \n\r\t]+\w/; - - /** Used to detect hexadecimal string values. */ - var reHexPrefix = /^0[xX]/; - - /** Used to detect host constructors (Safari > 5). */ - var reHostCtor = /^\[object .+?Constructor\]$/; - - /** Used to match latin-1 supplementary letters (excluding mathematical operators). */ - var reLatin1 = /[\xc0-\xd6\xd8-\xde\xdf-\xf6\xf8-\xff]/g; - - /** Used to ensure capturing order of template delimiters. */ - var reNoMatch = /($^)/; - - /** - * Used to match `RegExp` special characters. - * See this [article on `RegExp` characters](http://www.regular-expressions.info/characters.html#special) - * for more details. - */ - var reRegExpChars = /[.*+?^${}()|[\]\/\\]/g, - reHasRegExpChars = RegExp(reRegExpChars.source); - - /** Used to detect functions containing a `this` reference. */ - var reThis = /\bthis\b/; - - /** Used to match unescaped characters in compiled string literals. */ - var reUnescapedString = /['\n\r\u2028\u2029\\]/g; - - /** Used to match words to create compound words. */ - var reWords = (function() { - var upper = '[A-Z\\xc0-\\xd6\\xd8-\\xde]', - lower = '[a-z\\xdf-\\xf6\\xf8-\\xff]+'; - - return RegExp(upper + '{2,}(?=' + upper + lower + ')|' + upper + '?' + lower + '|' + upper + '+|[0-9]+', 'g'); - }()); - - /** Used to detect and test for whitespace. */ - var whitespace = ( - // Basic whitespace characters. - ' \t\x0b\f\xa0\ufeff' + - - // Line terminators. - '\n\r\u2028\u2029' + - - // Unicode category "Zs" space separators. - '\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000' - ); - - /** Used to assign default `context` object properties. */ - var contextProps = [ - 'Array', 'ArrayBuffer', 'Date', 'Error', 'Float32Array', 'Float64Array', - 'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Math', 'Number', - 'Object', 'RegExp', 'Set', 'String', '_', 'clearTimeout', 'document', - 'isFinite', 'parseInt', 'setTimeout', 'TypeError', 'Uint8Array', - 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap', - 'window', 'WinRTError' - ]; - - /** Used to make template sourceURLs easier to identify. */ - var templateCounter = -1; - - /** Used to identify `toStringTag` values of typed arrays. */ - var typedArrayTags = {}; - typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = - typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = - typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = - typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = - typedArrayTags[uint32Tag] = true; - typedArrayTags[argsTag] = typedArrayTags[arrayTag] = - typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = - typedArrayTags[dateTag] = typedArrayTags[errorTag] = - typedArrayTags[funcTag] = typedArrayTags[mapTag] = - typedArrayTags[numberTag] = typedArrayTags[objectTag] = - typedArrayTags[regexpTag] = typedArrayTags[setTag] = - typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false; - - /** Used to identify `toStringTag` values supported by `_.clone`. */ - var cloneableTags = {}; - cloneableTags[argsTag] = cloneableTags[arrayTag] = - cloneableTags[arrayBufferTag] = cloneableTags[boolTag] = - cloneableTags[dateTag] = cloneableTags[float32Tag] = - cloneableTags[float64Tag] = cloneableTags[int8Tag] = - cloneableTags[int16Tag] = cloneableTags[int32Tag] = - cloneableTags[numberTag] = cloneableTags[objectTag] = - cloneableTags[regexpTag] = cloneableTags[stringTag] = - cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = - cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true; - cloneableTags[errorTag] = cloneableTags[funcTag] = - cloneableTags[mapTag] = cloneableTags[setTag] = - cloneableTags[weakMapTag] = false; - - /** Used as an internal `_.debounce` options object by `_.throttle`. */ - var debounceOptions = { - 'leading': false, - 'maxWait': 0, - 'trailing': false - }; - - /** Used to map latin-1 supplementary letters to basic latin letters. */ - var deburredLetters = { - '\xc0': 'A', '\xc1': 'A', '\xc2': 'A', '\xc3': 'A', '\xc4': 'A', '\xc5': 'A', - '\xe0': 'a', '\xe1': 'a', '\xe2': 'a', '\xe3': 'a', '\xe4': 'a', '\xe5': 'a', - '\xc7': 'C', '\xe7': 'c', - '\xd0': 'D', '\xf0': 'd', - '\xc8': 'E', '\xc9': 'E', '\xca': 'E', '\xcb': 'E', - '\xe8': 'e', '\xe9': 'e', '\xea': 'e', '\xeb': 'e', - '\xcC': 'I', '\xcd': 'I', '\xce': 'I', '\xcf': 'I', - '\xeC': 'i', '\xed': 'i', '\xee': 'i', '\xef': 'i', - '\xd1': 'N', '\xf1': 'n', - '\xd2': 'O', '\xd3': 'O', '\xd4': 'O', '\xd5': 'O', '\xd6': 'O', '\xd8': 'O', - '\xf2': 'o', '\xf3': 'o', '\xf4': 'o', '\xf5': 'o', '\xf6': 'o', '\xf8': 'o', - '\xd9': 'U', '\xda': 'U', '\xdb': 'U', '\xdc': 'U', - '\xf9': 'u', '\xfa': 'u', '\xfb': 'u', '\xfc': 'u', - '\xdd': 'Y', '\xfd': 'y', '\xff': 'y', - '\xc6': 'Ae', '\xe6': 'ae', - '\xde': 'Th', '\xfe': 'th', - '\xdf': 'ss' - }; - - /** Used to map characters to HTML entities. */ - var htmlEscapes = { - '&': '&', - '<': '<', - '>': '>', - '"': '"', - "'": ''', - '`': '`' - }; - - /** Used to map HTML entities to characters. */ - var htmlUnescapes = { - '&': '&', - '<': '<', - '>': '>', - '"': '"', - ''': "'", - '`': '`' - }; - - /** Used to determine if values are of the language type `Object`. */ - var objectTypes = { - 'function': true, - 'object': true - }; - - /** Used to escape characters for inclusion in compiled string literals. */ - var stringEscapes = { - '\\': '\\', - "'": "'", - '\n': 'n', - '\r': 'r', - '\u2028': 'u2028', - '\u2029': 'u2029' - }; - - /** - * Used as a reference to the global object. - * - * The `this` value is used if it is the global object to avoid Greasemonkey's - * restricted `window` object, otherwise the `window` object is used. - */ - var root = (objectTypes[typeof window] && window !== (this && this.window)) ? window : this; - - /** Detect free variable `exports`. */ - var freeExports = objectTypes[typeof exports] && exports && !exports.nodeType && exports; - - /** Detect free variable `module`. */ - var freeModule = objectTypes[typeof module] && module && !module.nodeType && module; - - /** Detect free variable `global` from Node.js or Browserified code and use it as `root`. */ - var freeGlobal = freeExports && freeModule && typeof global == 'object' && global; - if (freeGlobal && (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal || freeGlobal.self === freeGlobal)) { - root = freeGlobal; - } - - /** Detect the popular CommonJS extension `module.exports`. */ - var moduleExports = freeModule && freeModule.exports === freeExports && freeExports; - - /*--------------------------------------------------------------------------*/ - - /** - * The base implementation of `compareAscending` which compares values and - * sorts them in ascending order without guaranteeing a stable sort. - * - * @private - * @param {*} value The value to compare to `other`. - * @param {*} other The value to compare to `value`. - * @returns {number} Returns the sort order indicator for `value`. - */ - function baseCompareAscending(value, other) { - if (value !== other) { - var valIsReflexive = value === value, - othIsReflexive = other === other; - - if (value > other || !valIsReflexive || (typeof value == 'undefined' && othIsReflexive)) { - return 1; - } - if (value < other || !othIsReflexive || (typeof other == 'undefined' && valIsReflexive)) { - return -1; - } - } - return 0; - } - - /** - * The base implementation of `_.indexOf` without support for binary searches. - * - * @private - * @param {Array} array The array to search. - * @param {*} value The value to search for. - * @param {number} [fromIndex=0] The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function baseIndexOf(array, value, fromIndex) { - if (value !== value) { - return indexOfNaN(array, fromIndex); - } - var index = (fromIndex || 0) - 1, - length = array.length; - - while (++index < length) { - if (array[index] === value) { - return index; - } - } - return -1; - } - - /** - * The base implementation of `_.sortBy` and `_.sortByAll` which uses `comparer` - * to define the sort order of `array` and replaces criteria objects with their - * corresponding values. - * - * @private - * @param {Array} array The array to sort. - * @param {Function} comparer The function to define sort order. - * @returns {Array} Returns `array`. - */ - function baseSortBy(array, comparer) { - var length = array.length; - - array.sort(comparer); - while (length--) { - array[length] = array[length].value; - } - return array; - } - - /** - * Converts `value` to a string if it is not one. An empty string is returned - * for `null` or `undefined` values. - * - * @private - * @param {*} value The value to process. - * @returns {string} Returns the string. - */ - function baseToString(value) { - if (typeof value == 'string') { - return value; - } - return value == null ? '' : (value + ''); - } - - /** - * Used by `_.max` and `_.min` as the default callback for string values. - * - * @private - * @param {string} string The string to inspect. - * @returns {number} Returns the code unit of the first character of the string. - */ - function charAtCallback(string) { - return string.charCodeAt(0); - } - - /** - * Used by `_.trim` and `_.trimLeft` to get the index of the first character - * of `string` that is not found in `chars`. - * - * @private - * @param {string} string The string to inspect. - * @param {string} chars The characters to find. - * @returns {number} Returns the index of the first character not found in `chars`. - */ - function charsLeftIndex(string, chars) { - var index = -1, - length = string.length; - - while (++index < length && chars.indexOf(string.charAt(index)) > -1) {} - return index; - } - - /** - * Used by `_.trim` and `_.trimRight` to get the index of the last character - * of `string` that is not found in `chars`. - * - * @private - * @param {string} string The string to inspect. - * @param {string} chars The characters to find. - * @returns {number} Returns the index of the last character not found in `chars`. - */ - function charsRightIndex(string, chars) { - var index = string.length; - - while (index-- && chars.indexOf(string.charAt(index)) > -1) {} - return index; - } - - /** - * Used by `_.sortBy` to compare transformed elements of a collection and stable - * sort them in ascending order. - * - * @private - * @param {Object} object The object to compare to `other`. - * @param {Object} other The object to compare to `object`. - * @returns {number} Returns the sort order indicator for `object`. - */ - function compareAscending(object, other) { - return baseCompareAscending(object.criteria, other.criteria) || (object.index - other.index); - } - - /** - * Used by `_.sortByAll` to compare multiple properties of each element - * in a collection and stable sort them in ascending order. - * - * @private - * @param {Object} object The object to compare to `other`. - * @param {Object} other The object to compare to `object`. - * @returns {number} Returns the sort order indicator for `object`. - */ - function compareMultipleAscending(object, other) { - var index = -1, - objCriteria = object.criteria, - othCriteria = other.criteria, - length = objCriteria.length; - - while (++index < length) { - var result = baseCompareAscending(objCriteria[index], othCriteria[index]); - if (result) { - return result; - } - } - // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications - // that causes it, under certain circumstances, to provide the same value for - // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247 - // for more details. - // - // This also ensures a stable sort in V8 and other engines. - // See https://code.google.com/p/v8/issues/detail?id=90 for more details. - return object.index - other.index; - } - - /** - * Used by `_.deburr` to convert latin-1 supplementary letters to basic latin letters. - * - * @private - * @param {string} letter The matched letter to deburr. - * @returns {string} Returns the deburred letter. - */ - function deburrLetter(letter) { - return deburredLetters[letter]; - } - - /** - * Used by `_.escape` to convert characters to HTML entities. - * - * @private - * @param {string} chr The matched character to escape. - * @returns {string} Returns the escaped character. - */ - function escapeHtmlChar(chr) { - return htmlEscapes[chr]; - } - - /** - * Used by `_.template` to escape characters for inclusion in compiled - * string literals. - * - * @private - * @param {string} chr The matched character to escape. - * @returns {string} Returns the escaped character. - */ - function escapeStringChar(chr) { - return '\\' + stringEscapes[chr]; - } - - /** - * Gets the index at which the first occurrence of `NaN` is found in `array`. - * If `fromRight` is provided elements of `array` are iterated from right to left. - * - * @private - * @param {Array} array The array to search. - * @param {number} [fromIndex] The index to search from. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {number} Returns the index of the matched `NaN`, else `-1`. - */ - function indexOfNaN(array, fromIndex, fromRight) { - var length = array.length, - index = fromRight ? (fromIndex || length) : ((fromIndex || 0) - 1); - - while ((fromRight ? index-- : ++index < length)) { - var other = array[index]; - if (other !== other) { - return index; - } - } - return -1; - } - - /** - * Checks if `value` is object-like. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is object-like, else `false`. - */ - function isObjectLike(value) { - return (value && typeof value == 'object') || false; - } - - /** - * Used by `trimmedLeftIndex` and `trimmedRightIndex` to determine if a - * character code is whitespace. - * - * @private - * @param {number} charCode The character code to inspect. - * @returns {boolean} Returns `true` if `charCode` is whitespace, else `false`. - */ - function isSpace(charCode) { - return ((charCode <= 160 && (charCode >= 9 && charCode <= 13) || charCode == 32 || charCode == 160) || charCode == 5760 || charCode == 6158 || - (charCode >= 8192 && (charCode <= 8202 || charCode == 8232 || charCode == 8233 || charCode == 8239 || charCode == 8287 || charCode == 12288 || charCode == 65279))); - } - - /** - * Replaces all `placeholder` elements in `array` with an internal placeholder - * and returns an array of their indexes. - * - * @private - * @param {Array} array The array to modify. - * @param {*} placeholder The placeholder to replace. - * @returns {Array} Returns the new array of placeholder indexes. - */ - function replaceHolders(array, placeholder) { - var index = -1, - length = array.length, - resIndex = -1, - result = []; - - while (++index < length) { - if (array[index] === placeholder) { - array[index] = PLACEHOLDER; - result[++resIndex] = index; - } - } - return result; - } - - /** - * An implementation of `_.uniq` optimized for sorted arrays without support - * for callback shorthands and `this` binding. - * - * @private - * @param {Array} array The array to inspect. - * @param {Function} [iteratee] The function invoked per iteration. - * @returns {Array} Returns the new duplicate-value-free array. - */ - function sortedUniq(array, iteratee) { - var seen, - index = -1, - length = array.length, - resIndex = -1, - result = []; - - while (++index < length) { - var value = array[index], - computed = iteratee ? iteratee(value, index, array) : value; - - if (!index || seen !== computed) { - seen = computed; - result[++resIndex] = value; - } - } - return result; - } - - /** - * Used by `_.trim` and `_.trimLeft` to get the index of the first non-whitespace - * character of `string`. - * - * @private - * @param {string} string The string to inspect. - * @returns {number} Returns the index of the first non-whitespace character. - */ - function trimmedLeftIndex(string) { - var index = -1, - length = string.length; - - while (++index < length && isSpace(string.charCodeAt(index))) {} - return index; - } - - /** - * Used by `_.trim` and `_.trimRight` to get the index of the last non-whitespace - * character of `string`. - * - * @private - * @param {string} string The string to inspect. - * @returns {number} Returns the index of the last non-whitespace character. - */ - function trimmedRightIndex(string) { - var index = string.length; - - while (index-- && isSpace(string.charCodeAt(index))) {} - return index; - } - - /** - * Used by `_.unescape` to convert HTML entities to characters. - * - * @private - * @param {string} chr The matched character to unescape. - * @returns {string} Returns the unescaped character. - */ - function unescapeHtmlChar(chr) { - return htmlUnescapes[chr]; - } - - /*--------------------------------------------------------------------------*/ - - /** - * Create a new pristine `lodash` function using the given `context` object. - * - * @static - * @memberOf _ - * @category Utility - * @param {Object} [context=root] The context object. - * @returns {Function} Returns a new `lodash` function. - * @example - * - * _.mixin({ 'add': function(a, b) { return a + b; } }); - * - * var lodash = _.runInContext(); - * lodash.mixin({ 'sub': function(a, b) { return a - b; } }); - * - * _.isFunction(_.add); - * // => true - * _.isFunction(_.sub); - * // => false - * - * lodash.isFunction(lodash.add); - * // => false - * lodash.isFunction(lodash.sub); - * // => true - * - * // using `context` to mock `Date#getTime` use in `_.now` - * var mock = _.runInContext({ - * 'Date': function() { - * return { 'getTime': getTimeMock }; - * } - * }); - * - * // or creating a suped-up `defer` in Node.js - * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer; - */ - function runInContext(context) { - // Avoid issues with some ES3 environments that attempt to use values, named - // after built-in constructors like `Object`, for the creation of literals. - // ES5 clears this up by stating that literals must use built-in constructors. - // See https://es5.github.io/#x11.1.5 for more details. - context = context ? _.defaults(root.Object(), context, _.pick(root, contextProps)) : root; - - /** Native constructor references. */ - var Array = context.Array, - Date = context.Date, - Error = context.Error, - Function = context.Function, - Math = context.Math, - Number = context.Number, - Object = context.Object, - RegExp = context.RegExp, - String = context.String, - TypeError = context.TypeError; - - /** Used for native method references. */ - var arrayProto = Array.prototype, - objectProto = Object.prototype; - - /** Used to detect DOM support. */ - var document = (document = context.window) && document.document; - - /** Used to resolve the decompiled source of functions. */ - var fnToString = Function.prototype.toString; - - /** Used to the length of n-tuples for `_.unzip`. */ - var getLength = baseProperty('length'); - - /** Used to check objects for own properties. */ - var hasOwnProperty = objectProto.hasOwnProperty; - - /** Used to generate unique IDs. */ - var idCounter = 0; - - /** - * Used to resolve the `toStringTag` of values. - * See the [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring) - * for more details. - */ - var objToString = objectProto.toString; - - /** Used to restore the original `_` reference in `_.noConflict`. */ - var oldDash = context._; - - /** Used to detect if a method is native. */ - var reNative = RegExp('^' + - escapeRegExp(objToString) - .replace(/toString|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' - ); - - /** Native method references. */ - var ArrayBuffer = isNative(ArrayBuffer = context.ArrayBuffer) && ArrayBuffer, - bufferSlice = isNative(bufferSlice = ArrayBuffer && new ArrayBuffer(0).slice) && bufferSlice, - ceil = Math.ceil, - clearTimeout = context.clearTimeout, - floor = Math.floor, - getPrototypeOf = isNative(getPrototypeOf = Object.getPrototypeOf) && getPrototypeOf, - push = arrayProto.push, - propertyIsEnumerable = objectProto.propertyIsEnumerable, - Set = isNative(Set = context.Set) && Set, - setTimeout = context.setTimeout, - splice = arrayProto.splice, - Uint8Array = isNative(Uint8Array = context.Uint8Array) && Uint8Array, - unshift = arrayProto.unshift, - WeakMap = isNative(WeakMap = context.WeakMap) && WeakMap; - - /** Used to clone array buffers. */ - var Float64Array = (function() { - // Safari 5 errors when using an array buffer to initialize a typed array - // where the array buffer's `byteLength` is not a multiple of the typed - // array's `BYTES_PER_ELEMENT`. - try { - var func = isNative(func = context.Float64Array) && func, - result = new func(new ArrayBuffer(10), 0, 1) && func; - } catch(e) {} - return result; - }()); - - /* Native method references for those with the same name as other `lodash` methods. */ - var nativeIsArray = isNative(nativeIsArray = Array.isArray) && nativeIsArray, - nativeCreate = isNative(nativeCreate = Object.create) && nativeCreate, - nativeIsFinite = context.isFinite, - nativeKeys = isNative(nativeKeys = Object.keys) && nativeKeys, - nativeMax = Math.max, - nativeMin = Math.min, - nativeNow = isNative(nativeNow = Date.now) && nativeNow, - nativeNumIsFinite = isNative(nativeNumIsFinite = Number.isFinite) && nativeNumIsFinite, - nativeParseInt = context.parseInt, - nativeRandom = Math.random; - - /** Used as references for `-Infinity` and `Infinity`. */ - var NEGATIVE_INFINITY = Number.NEGATIVE_INFINITY, - POSITIVE_INFINITY = Number.POSITIVE_INFINITY; - - /** Used as references for the maximum length and index of an array. */ - var MAX_ARRAY_LENGTH = Math.pow(2, 32) - 1, - MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1, - HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1; - - /** Used as the size, in bytes, of each `Float64Array` element. */ - var FLOAT64_BYTES_PER_ELEMENT = Float64Array ? Float64Array.BYTES_PER_ELEMENT : 0; - - /** - * Used as the maximum length of an array-like value. - * See the [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer) - * for more details. - */ - var MAX_SAFE_INTEGER = Math.pow(2, 53) - 1; - - /** Used to store function metadata. */ - var metaMap = WeakMap && new WeakMap; - - /*------------------------------------------------------------------------*/ - - /** - * Creates a `lodash` object which wraps `value` to enable intuitive chaining. - * Methods that operate on and return arrays, collections, and functions can - * be chained together. Methods that return a boolean or single value will - * automatically end the chain returning the unwrapped value. Explicit chaining - * may be enabled using `_.chain`. The execution of chained methods is lazy, - * that is, execution is deferred until `_#value` is implicitly or explicitly - * called. - * - * Lazy evaluation allows several methods to support shortcut fusion. Shortcut - * fusion is an optimization that merges iteratees to avoid creating intermediate - * arrays and reduce the number of iteratee executions. - * - * Chaining is supported in custom builds as long as the `_#value` method is - * directly or indirectly included in the build. - * - * In addition to lodash methods, wrappers also have the following `Array` methods: - * `concat`, `join`, `pop`, `push`, `reverse`, `shift`, `slice`, `sort`, `splice`, - * and `unshift` - * - * The wrapper functions that support shortcut fusion are: - * `drop`, `dropRight`, `dropRightWhile`, `dropWhile`, `filter`, `first`, - * `initial`, `last`, `map`, `pluck`, `reject`, `rest`, `reverse`, `slice`, - * `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `where` - * - * The chainable wrapper functions are: - * `after`, `ary`, `assign`, `at`, `before`, `bind`, `bindAll`, `bindKey`, - * `callback`, `chain`, `chunk`, `compact`, `concat`, `constant`, `countBy`, - * `create`, `curry`, `debounce`, `defaults`, `defer`, `delay`, `difference`, - * `drop`, `dropRight`, `dropRightWhile`, `dropWhile`, `filter`, `flatten`, - * `flattenDeep`, `flow`, `flowRight`, `forEach`, `forEachRight`, `forIn`, - * `forInRight`, `forOwn`, `forOwnRight`, `functions`, `groupBy`, `indexBy`, - * `initial`, `intersection`, `invert`, `invoke`, `keys`, `keysIn`, `map`, - * `mapValues`, `matches`, `memoize`, `merge`, `mixin`, `negate`, `noop`, - * `omit`, `once`, `pairs`, `partial`, `partialRight`, `partition`, `pick`, - * `pluck`, `property`, `propertyOf`, `pull`, `pullAt`, `push`, `range`, - * `rearg`, `reject`, `remove`, `rest`, `reverse`, `shuffle`, `slice`, `sort`, - * `sortBy`, `sortByAll`, `splice`, `take`, `takeRight`, `takeRightWhile`, - * `takeWhile`, `tap`, `throttle`, `thru`, `times`, `toArray`, `toPlainObject`, - * `transform`, `union`, `uniq`, `unshift`, `unzip`, `values`, `valuesIn`, - * `where`, `without`, `wrap`, `xor`, `zip`, and `zipObject` - * - * The wrapper functions that are **not** chainable by default are: - * `attempt`, `camelCase`, `capitalize`, `clone`, `cloneDeep`, `deburr`, - * `endsWith`, `escape`, `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, - * `findLast`, `findLastIndex`, `findLastKey`, `findWhere`, `first`, `has`, - * `identity`, `includes`, `indexOf`, `isArguments`, `isArray`, `isBoolean`, - * `isDate`, `isElement`, `isEmpty`, `isEqual`, `isError`, `isFinite`, - * `isFunction`, `isMatch`, `isNative`, `isNaN`, `isNull`, `isNumber`, - * `isObject`, `isPlainObject`, `isRegExp`, `isString`, `isUndefined`, - * `isTypedArray`, `join`, `kebabCase`, `last`, `lastIndexOf`, `max`, `min`, - * `noConflict`, `now`, `pad`, `padLeft`, `padRight`, `parseInt`, `pop`, - * `random`, `reduce`, `reduceRight`, `repeat`, `result`, `runInContext`, - * `shift`, `size`, `snakeCase`, `some`, `sortedIndex`, `sortedLastIndex`, - * `startCase`, `startsWith`, `template`, `trim`, `trimLeft`, `trimRight`, - * `trunc`, `unescape`, `uniqueId`, `value`, and `words` - * - * The wrapper function `sample` will return a wrapped value when `n` is provided, - * otherwise an unwrapped value is returned. - * - * @name _ - * @constructor - * @category Chain - * @param {*} value The value to wrap in a `lodash` instance. - * @returns {Object} Returns a `lodash` instance. - * @example - * - * var wrapped = _([1, 2, 3]); - * - * // returns an unwrapped value - * wrapped.reduce(function(sum, n) { return sum + n; }); - * // => 6 - * - * // returns a wrapped value - * var squares = wrapped.map(function(n) { return n * n; }); - * - * _.isArray(squares); - * // => false - * - * _.isArray(squares.value()); - * // => true - */ - function lodash(value) { - if (isObjectLike(value) && !isArray(value)) { - if (value instanceof LodashWrapper) { - return value; - } - if (hasOwnProperty.call(value, '__wrapped__')) { - return new LodashWrapper(value.__wrapped__, value.__chain__, arrayCopy(value.__actions__)); - } - } - return new LodashWrapper(value); - } - - /** - * The base constructor for creating `lodash` wrapper objects. - * - * @private - * @param {*} value The value to wrap. - * @param {boolean} [chainAll] Enable chaining for all wrapper methods. - * @param {Array} [actions=[]] Actions to peform to resolve the unwrapped value. - */ - function LodashWrapper(value, chainAll, actions) { - this.__actions__ = actions || []; - this.__chain__ = !!chainAll; - this.__wrapped__ = value; - } - - /** - * An object environment feature flags. - * - * @static - * @memberOf _ - * @type Object - */ - var support = lodash.support = {}; - - (function(x) { - - /** - * Detect if functions can be decompiled by `Function#toString` - * (all but Firefox OS certified apps, older Opera mobile browsers, and - * the PlayStation 3; forced `false` for Windows 8 apps). - * - * @memberOf _.support - * @type boolean - */ - support.funcDecomp = !isNative(context.WinRTError) && reThis.test(runInContext); - - /** - * Detect if `Function#name` is supported (all but IE). - * - * @memberOf _.support - * @type boolean - */ - support.funcNames = typeof Function.name == 'string'; - - /** - * Detect if the DOM is supported. - * - * @memberOf _.support - * @type boolean - */ - try { - support.dom = document.createDocumentFragment().nodeType === 11; - } catch(e) { - support.dom = false; - } - - /** - * Detect if `arguments` object indexes are non-enumerable. - * - * In Firefox < 4, IE < 9, PhantomJS, and Safari < 5.1 `arguments` object - * indexes are non-enumerable. Chrome < 25 and Node.js < 0.11.0 treat - * `arguments` object indexes as non-enumerable and fail `hasOwnProperty` - * checks for indexes that exceed their function's formal parameters with - * associated values of `0`. - * - * @memberOf _.support - * @type boolean - */ - try { - support.nonEnumArgs = !propertyIsEnumerable.call(arguments, 1); - } catch(e) { - support.nonEnumArgs = true; - } - }(0, 0)); - - /** - * By default, the template delimiters used by lodash are like those in - * embedded Ruby (ERB). Change the following template settings to use - * alternative delimiters. - * - * @static - * @memberOf _ - * @type Object - */ - lodash.templateSettings = { - - /** - * Used to detect `data` property values to be HTML-escaped. - * - * @memberOf _.templateSettings - * @type RegExp - */ - 'escape': reEscape, - - /** - * Used to detect code to be evaluated. - * - * @memberOf _.templateSettings - * @type RegExp - */ - 'evaluate': reEvaluate, - - /** - * Used to detect `data` property values to inject. - * - * @memberOf _.templateSettings - * @type RegExp - */ - 'interpolate': reInterpolate, - - /** - * Used to reference the data object in the template text. - * - * @memberOf _.templateSettings - * @type string - */ - 'variable': '', - - /** - * Used to import variables into the compiled template. - * - * @memberOf _.templateSettings - * @type Object - */ - 'imports': { - - /** - * A reference to the `lodash` function. - * - * @memberOf _.templateSettings.imports - * @type Function - */ - '_': lodash - } - }; - - /*------------------------------------------------------------------------*/ - - /** - * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation. - * - * @private - * @param {*} value The value to wrap. - */ - function LazyWrapper(value) { - this.actions = null; - this.dir = 1; - this.dropCount = 0; - this.filtered = false; - this.iteratees = null; - this.takeCount = POSITIVE_INFINITY; - this.views = null; - this.wrapped = value; - } - - /** - * Creates a clone of the lazy wrapper object. - * - * @private - * @name clone - * @memberOf LazyWrapper - * @returns {Object} Returns the cloned `LazyWrapper` object. - */ - function lazyClone() { - var actions = this.actions, - iteratees = this.iteratees, - views = this.views, - result = new LazyWrapper(this.wrapped); - - result.actions = actions ? arrayCopy(actions) : null; - result.dir = this.dir; - result.dropCount = this.dropCount; - result.filtered = this.filtered; - result.iteratees = iteratees ? arrayCopy(iteratees) : null; - result.takeCount = this.takeCount; - result.views = views ? arrayCopy(views) : null; - return result; - } - - /** - * Reverses the direction of lazy iteration. - * - * @private - * @name reverse - * @memberOf LazyWrapper - * @returns {Object} Returns the new reversed `LazyWrapper` object. - */ - function lazyReverse() { - if (this.filtered) { - var result = new LazyWrapper(this); - result.dir = -1; - result.filtered = true; - } else { - result = this.clone(); - result.dir *= -1; - } - return result; - } - - /** - * Extracts the unwrapped value from its lazy wrapper. - * - * @private - * @name value - * @memberOf LazyWrapper - * @returns {*} Returns the unwrapped value. - */ - function lazyValue() { - var array = this.wrapped.value(); - if (!isArray(array)) { - return baseWrapperValue(array, this.actions); - } - var dir = this.dir, - isRight = dir < 0, - view = getView(0, array.length, this.views), - start = view.start, - end = view.end, - length = end - start, - dropCount = this.dropCount, - takeCount = nativeMin(length, this.takeCount - dropCount), - index = isRight ? end : start - 1, - iteratees = this.iteratees, - iterLength = iteratees ? iteratees.length : 0, - resIndex = 0, - result = []; - - outer: - while (length-- && resIndex < takeCount) { - index += dir; - - var iterIndex = -1, - value = array[index]; - - while (++iterIndex < iterLength) { - var data = iteratees[iterIndex], - iteratee = data.iteratee, - computed = iteratee(value, index, array), - type = data.type; - - if (type == LAZY_MAP_FLAG) { - value = computed; - } else if (!computed) { - if (type == LAZY_FILTER_FLAG) { - continue outer; - } else { - break outer; - } - } - } - if (dropCount) { - dropCount--; - } else { - result[resIndex++] = value; - } - } - return result; - } - - /*------------------------------------------------------------------------*/ - - /** - * Creates a cache object to store key/value pairs. - * - * @private - * @static - * @name Cache - * @memberOf _.memoize - */ - function MapCache() { - this.__data__ = {}; - } - - /** - * Removes `key` and its value from the cache. - * - * @private - * @name delete - * @memberOf _.memoize.Cache - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed successfully, else `false`. - */ - function mapDelete(key) { - return this.has(key) && delete this.__data__[key]; - } - - /** - * Gets the cached value for `key`. - * - * @private - * @name get - * @memberOf _.memoize.Cache - * @param {string} key The key of the value to get. - * @returns {*} Returns the cached value. - */ - function mapGet(key) { - return key == '__proto__' ? undefined : this.__data__[key]; - } - - /** - * Checks if a cached value for `key` exists. - * - * @private - * @name has - * @memberOf _.memoize.Cache - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ - function mapHas(key) { - return key != '__proto__' && hasOwnProperty.call(this.__data__, key); - } - - /** - * Adds `value` to `key` of the cache. - * - * @private - * @name set - * @memberOf _.memoize.Cache - * @param {string} key The key of the value to cache. - * @param {*} value The value to cache. - * @returns {Object} Returns the cache object. - */ - function mapSet(key, value) { - if (key != '__proto__') { - this.__data__[key] = value; - } - return this; - } - - /*------------------------------------------------------------------------*/ - - /** - * - * Creates a cache object to store unique values. - * - * @private - * @param {Array} [values] The values to cache. - */ - function SetCache(values) { - var length = values ? values.length : 0; - - this.data = { 'hash': nativeCreate(null), 'set': new Set }; - while (length--) { - this.push(values[length]); - } - } - - /** - * Checks if `value` is in `cache` mimicking the return signature of - * `_.indexOf` by returning `0` if the value is found, else `-1`. - * - * @private - * @param {Object} cache The cache to search. - * @param {*} value The value to search for. - * @returns {number} Returns `0` if `value` is found, else `-1`. - */ - function cacheIndexOf(cache, value) { - var data = cache.data, - result = (typeof value == 'string' || isObject(value)) ? data.set.has(value) : data.hash[value]; - - return result ? 0 : -1; - } - - /** - * Adds `value` to the cache. - * - * @private - * @name push - * @memberOf SetCache - * @param {*} value The value to cache. - */ - function cachePush(value) { - var data = this.data; - if (typeof value == 'string' || isObject(value)) { - data.set.add(value); - } else { - data.hash[value] = true; - } - } - - /*------------------------------------------------------------------------*/ - - /** - * Copies the values of `source` to `array`. - * - * @private - * @param {Array} source The array to copy values from. - * @param {Array} [array=[]] The array to copy values to. - * @returns {Array} Returns `array`. - */ - function arrayCopy(source, array) { - var index = -1, - length = source.length; - - array || (array = Array(length)); - while (++index < length) { - array[index] = source[index]; - } - return array; - } - - /** - * A specialized version of `_.forEach` for arrays without support for callback - * shorthands or `this` binding. - * - * @private - * @param {Array} array The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns `array`. - */ - function arrayEach(array, iteratee) { - var index = -1, - length = array.length; - - while (++index < length) { - if (iteratee(array[index], index, array) === false) { - break; - } - } - return array; - } - - /** - * A specialized version of `_.forEachRight` for arrays without support for - * callback shorthands or `this` binding. - * - * @private - * @param {Array} array The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns `array`. - */ - function arrayEachRight(array, iteratee) { - var length = array.length; - - while (length--) { - if (iteratee(array[length], length, array) === false) { - break; - } - } - return array; - } - - /** - * A specialized version of `_.every` for arrays without support for callback - * shorthands or `this` binding. - * - * @private - * @param {Array} array The array to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if all elements pass the predicate check, - * else `false`. - */ - function arrayEvery(array, predicate) { - var index = -1, - length = array.length; - - while (++index < length) { - if (!predicate(array[index], index, array)) { - return false; - } - } - return true; - } - - /** - * A specialized version of `_.filter` for arrays without support for callback - * shorthands or `this` binding. - * - * @private - * @param {Array} array The array to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {Array} Returns the new filtered array. - */ - function arrayFilter(array, predicate) { - var index = -1, - length = array.length, - resIndex = -1, - result = []; - - while (++index < length) { - var value = array[index]; - if (predicate(value, index, array)) { - result[++resIndex] = value; - } - } - return result; - } - - /** - * A specialized version of `_.map` for arrays without support for callback - * shorthands or `this` binding. - * - * @private - * @param {Array} array The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the new mapped array. - */ - function arrayMap(array, iteratee) { - var index = -1, - length = array.length, - result = Array(length); - - while (++index < length) { - result[index] = iteratee(array[index], index, array); - } - return result; - } - - /** - * A specialized version of `_.max` for arrays without support for iteratees. - * - * @private - * @param {Array} array The array to iterate over. - * @returns {*} Returns the maximum value. - */ - function arrayMax(array) { - var index = -1, - length = array.length, - result = NEGATIVE_INFINITY; - - while (++index < length) { - var value = array[index]; - if (value > result) { - result = value; - } - } - return result; - } - - /** - * A specialized version of `_.min` for arrays without support for iteratees. - * - * @private - * @param {Array} array The array to iterate over. - * @returns {*} Returns the minimum value. - */ - function arrayMin(array) { - var index = -1, - length = array.length, - result = POSITIVE_INFINITY; - - while (++index < length) { - var value = array[index]; - if (value < result) { - result = value; - } - } - return result; - } - - /** - * A specialized version of `_.reduce` for arrays without support for callback - * shorthands or `this` binding. - * - * @private - * @param {Array} array The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {*} [accumulator] The initial value. - * @param {boolean} [initFromArray] Specify using the first element of `array` - * as the initial value. - * @returns {*} Returns the accumulated value. - */ - function arrayReduce(array, iteratee, accumulator, initFromArray) { - var index = -1, - length = array.length; - - if (initFromArray && length) { - accumulator = array[++index]; - } - while (++index < length) { - accumulator = iteratee(accumulator, array[index], index, array); - } - return accumulator; - } - - /** - * A specialized version of `_.reduceRight` for arrays without support for - * callback shorthands or `this` binding. - * - * @private - * @param {Array} array The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {*} [accumulator] The initial value. - * @param {boolean} [initFromArray] Specify using the last element of `array` - * as the initial value. - * @returns {*} Returns the accumulated value. - */ - function arrayReduceRight(array, iteratee, accumulator, initFromArray) { - var length = array.length; - if (initFromArray && length) { - accumulator = array[--length]; - } - while (length--) { - accumulator = iteratee(accumulator, array[length], length, array); - } - return accumulator; - } - - /** - * A specialized version of `_.some` for arrays without support for callback - * shorthands or `this` binding. - * - * @private - * @param {Array} array The array to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if any element passes the predicate check, - * else `false`. - */ - function arraySome(array, predicate) { - var index = -1, - length = array.length; - - while (++index < length) { - if (predicate(array[index], index, array)) { - return true; - } - } - return false; - } - - /** - * Used by `_.defaults` to customize its `_.assign` use. - * - * @private - * @param {*} objectValue The destination object property value. - * @param {*} sourceValue The source object property value. - * @returns {*} Returns the value to assign to the destination object. - */ - function assignDefaults(objectValue, sourceValue) { - return typeof objectValue == 'undefined' ? sourceValue : objectValue; - } - - /** - * Used by `_.template` to customize its `_.assign` use. - * - * **Note:** This method is like `assignDefaults` except that it ignores - * inherited property values when checking if a property is `undefined`. - * - * @private - * @param {*} objectValue The destination object property value. - * @param {*} sourceValue The source object property value. - * @param {string} key The key associated with the object and source values. - * @param {Object} object The destination object. - * @returns {*} Returns the value to assign to the destination object. - */ - function assignOwnDefaults(objectValue, sourceValue, key, object) { - return (typeof objectValue == 'undefined' || !hasOwnProperty.call(object, key)) - ? sourceValue - : objectValue; - } - - /** - * The base implementation of `_.assign` without support for argument juggling, - * multiple sources, and `this` binding `customizer` functions. - * - * @private - * @param {Object} object The destination object. - * @param {Object} source The source object. - * @param {Function} [customizer] The function to customize assigning values. - * @returns {Object} Returns the destination object. - */ - function baseAssign(object, source, customizer) { - var props = keys(source); - if (!customizer) { - return baseCopy(source, object, props); - } - var index = -1, - length = props.length - - while (++index < length) { - var key = props[index], - value = object[key], - result = customizer(value, source[key], key, object, source); - - if ((result === result ? result !== value : value === value) || - (typeof value == 'undefined' && !(key in object))) { - object[key] = result; - } - } - return object; - } - - /** - * The base implementation of `_.at` without support for strings and individual - * key arguments. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {number[]|string[]} [props] The property names or indexes of elements to pick. - * @returns {Array} Returns the new array of picked elements. - */ - function baseAt(collection, props) { - var index = -1, - length = collection.length, - isArr = isLength(length), - propsLength = props.length, - result = Array(propsLength); - - while(++index < propsLength) { - var key = props[index]; - if (isArr) { - key = parseFloat(key); - result[index] = isIndex(key, length) ? collection[key] : undefined; - } else { - result[index] = collection[key]; - } - } - return result; - } - - /** - * Copies the properties of `source` to `object`. - * - * @private - * @param {Object} source The object to copy properties from. - * @param {Object} [object={}] The object to copy properties to. - * @param {Array} props The property names to copy. - * @returns {Object} Returns `object`. - */ - function baseCopy(source, object, props) { - if (!props) { - props = object; - object = {}; - } - var index = -1, - length = props.length; - - while (++index < length) { - var key = props[index]; - object[key] = source[key]; - } - return object; - } - - /** - * The base implementation of `_.bindAll` without support for individual - * method name arguments. - * - * @private - * @param {Object} object The object to bind and assign the bound methods to. - * @param {string[]} methodNames The object method names to bind. - * @returns {Object} Returns `object`. - */ - function baseBindAll(object, methodNames) { - var index = -1, - length = methodNames.length; - - while (++index < length) { - var key = methodNames[index]; - object[key] = createWrapper(object[key], BIND_FLAG, object); - } - return object; - } - - /** - * The base implementation of `_.callback` which supports specifying the - * number of arguments to provide to `func`. - * - * @private - * @param {*} [func=_.identity] The value to convert to a callback. - * @param {*} [thisArg] The `this` binding of `func`. - * @param {number} [argCount] The number of arguments to provide to `func`. - * @returns {Function} Returns the callback. - */ - function baseCallback(func, thisArg, argCount) { - var type = typeof func; - if (type == 'function') { - return (typeof thisArg != 'undefined' && isBindable(func)) - ? bindCallback(func, thisArg, argCount) - : func; - } - if (func == null) { - return identity; - } - // Handle "_.property" and "_.matches" style callback shorthands. - return type == 'object' - ? baseMatches(func) - : baseProperty(func + ''); - } - - /** - * The base implementation of `_.clone` without support for argument juggling - * and `this` binding `customizer` functions. - * - * @private - * @param {*} value The value to clone. - * @param {boolean} [isDeep] Specify a deep clone. - * @param {Function} [customizer] The function to customize cloning values. - * @param {string} [key] The key of `value`. - * @param {Object} [object] The object `value` belongs to. - * @param {Array} [stackA=[]] Tracks traversed source objects. - * @param {Array} [stackB=[]] Associates clones with source counterparts. - * @returns {*} Returns the cloned value. - */ - function baseClone(value, isDeep, customizer, key, object, stackA, stackB) { - var result; - if (customizer) { - result = object ? customizer(value, key, object) : customizer(value); - } - if (typeof result != 'undefined') { - return result; - } - if (!isObject(value)) { - return value; - } - var isArr = isArray(value); - if (isArr) { - result = initCloneArray(value); - if (!isDeep) { - return arrayCopy(value, result); - } - } else { - var tag = objToString.call(value), - isFunc = tag == funcTag; - - if (tag == objectTag || tag == argsTag || (isFunc && !object)) { - result = initCloneObject(isFunc ? {} : value); - if (!isDeep) { - return baseCopy(value, result, keys(value)); - } - } else { - return cloneableTags[tag] - ? initCloneByTag(value, tag, isDeep) - : (object ? value : {}); - } - } - // Check for circular references and return corresponding clone. - stackA || (stackA = []); - stackB || (stackB = []); - - var length = stackA.length; - while (length--) { - if (stackA[length] == value) { - return stackB[length]; - } - } - // Add the source value to the stack of traversed objects and associate it with its clone. - stackA.push(value); - stackB.push(result); - - // Recursively populate clone (susceptible to call stack limits). - (isArr ? arrayEach : baseForOwn)(value, function(subValue, key) { - result[key] = baseClone(subValue, isDeep, customizer, key, value, stackA, stackB); - }); - return result; - } - - /** - * The base implementation of `_.create` without support for assigning - * properties to the created object. - * - * @private - * @param {Object} prototype The object to inherit from. - * @returns {Object} Returns the new object. - */ - var baseCreate = (function() { - function Object() {} - return function(prototype) { - if (isObject(prototype)) { - Object.prototype = prototype; - var result = new Object; - Object.prototype = null; - } - return result || context.Object(); - }; - }()); - - /** - * The base implementation of `_.delay` and `_.defer` which accepts an index - * of where to slice the arguments to provide to `func`. - * - * @private - * @param {Function} func The function to delay. - * @param {number} wait The number of milliseconds to delay invocation. - * @param {Object} args The `arguments` object to slice and provide to `func`. - * @returns {number} Returns the timer id. - */ - function baseDelay(func, wait, args, fromIndex) { - if (!isFunction(func)) { - throw new TypeError(FUNC_ERROR_TEXT); - } - return setTimeout(function() { func.apply(undefined, baseSlice(args, fromIndex)); }, wait); - } - - /** - * The base implementation of `_.difference` which accepts a single array - * of values to exclude. - * - * @private - * @param {Array} array The array to inspect. - * @param {Array} values The values to exclude. - * @returns {Array} Returns the new array of filtered values. - */ - function baseDifference(array, values) { - var length = array ? array.length : 0, - result = []; - - if (!length) { - return result; - } - var index = -1, - indexOf = getIndexOf(), - isCommon = indexOf == baseIndexOf, - cache = isCommon && values.length >= 200 && createCache(values), - valuesLength = values.length; - - if (cache) { - indexOf = cacheIndexOf; - isCommon = false; - values = cache; - } - outer: - while (++index < length) { - var value = array[index]; - - if (isCommon && value === value) { - var valuesIndex = valuesLength; - while (valuesIndex--) { - if (values[valuesIndex] === value) { - continue outer; - } - } - result.push(value); - } - else if (indexOf(values, value) < 0) { - result.push(value); - } - } - return result; - } - - /** - * The base implementation of `_.forEach` without support for callback - * shorthands and `this` binding. - * - * @private - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array|Object|string} Returns `collection`. - */ - function baseEach(collection, iteratee) { - var length = collection ? collection.length : 0; - if (!isLength(length)) { - return baseForOwn(collection, iteratee); - } - var index = -1, - iterable = toObject(collection); - - while (++index < length) { - if (iteratee(iterable[index], index, iterable) === false) { - break; - } - } - return collection; - } - - /** - * The base implementation of `_.forEachRight` without support for callback - * shorthands and `this` binding. - * - * @private - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array|Object|string} Returns `collection`. - */ - function baseEachRight(collection, iteratee) { - var length = collection ? collection.length : 0; - if (!isLength(length)) { - return baseForOwnRight(collection, iteratee); - } - var iterable = toObject(collection); - while (length--) { - if (iteratee(iterable[length], length, iterable) === false) { - break; - } - } - return collection; - } - - /** - * The base implementation of `_.every` without support for callback - * shorthands or `this` binding. - * - * @private - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if all elements pass the predicate check, - * else `false` - */ - function baseEvery(collection, predicate) { - var result = true; - baseEach(collection, function(value, index, collection) { - result = !!predicate(value, index, collection); - return result; - }); - return result; - } - - /** - * The base implementation of `_.filter` without support for callback - * shorthands or `this` binding. - * - * @private - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {Array} Returns the new filtered array. - */ - function baseFilter(collection, predicate) { - var result = []; - baseEach(collection, function(value, index, collection) { - if (predicate(value, index, collection)) { - result.push(value); - } - }); - return result; - } - - /** - * The base implementation of `_.find`, `_.findLast`, `_.findKey`, and `_.findLastKey`, - * without support for callback shorthands and `this` binding, which iterates - * over `collection` using the provided `eachFunc`. - * - * @private - * @param {Array|Object|string} collection The collection to search. - * @param {Function} predicate The function invoked per iteration. - * @param {Function} eachFunc The function to iterate over `collection`. - * @param {boolean} [retKey] Specify returning the key of the found element - * instead of the element itself. - * @returns {*} Returns the found element or its key, else `undefined`. - */ - function baseFind(collection, predicate, eachFunc, retKey) { - var result; - eachFunc(collection, function(value, key, collection) { - if (predicate(value, key, collection)) { - result = retKey ? key : value; - return false; - } - }); - return result; - } - - /** - * The base implementation of `_.flatten` with added support for restricting - * flattening and specifying the start index. - * - * @private - * @param {Array} array The array to flatten. - * @param {boolean} [isDeep] Specify a deep flatten. - * @param {boolean} [isStrict] Restrict flattening to arrays and `arguments` objects. - * @param {number} [fromIndex=0] The index to start from. - * @returns {Array} Returns the new flattened array. - */ - function baseFlatten(array, isDeep, isStrict, fromIndex) { - var index = (fromIndex || 0) - 1, - length = array.length, - resIndex = -1, - result = []; - - while (++index < length) { - var value = array[index]; - - if (isObjectLike(value) && isLength(value.length) && (isArray(value) || isArguments(value))) { - if (isDeep) { - // Recursively flatten arrays (susceptible to call stack limits). - value = baseFlatten(value, isDeep, isStrict); - } - var valIndex = -1, - valLength = value.length; - - result.length += valLength; - while (++valIndex < valLength) { - result[++resIndex] = value[valIndex]; - } - } else if (!isStrict) { - result[++resIndex] = value; - } - } - return result; - } - - /** - * The base implementation of `baseForIn` and `baseForOwn` which iterates - * over `object` properties returned by `keysFunc` invoking `iteratee` for - * each property. Iterator functions may exit iteration early by explicitly - * returning `false`. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {Function} keysFunc The function to get the keys of `object`. - * @returns {Object} Returns `object`. - */ - function baseFor(object, iteratee, keysFunc) { - var index = -1, - iterable = toObject(object), - props = keysFunc(object), - length = props.length; - - while (++index < length) { - var key = props[index]; - if (iteratee(iterable[key], key, iterable) === false) { - break; - } - } - return object; - } - - /** - * This function is like `baseFor` except that it iterates over properties - * in the opposite order. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {Function} keysFunc The function to get the keys of `object`. - * @returns {Object} Returns `object`. - */ - function baseForRight(object, iteratee, keysFunc) { - var iterable = toObject(object), - props = keysFunc(object), - length = props.length; - - while (length--) { - var key = props[length]; - if (iteratee(iterable[key], key, iterable) === false) { - break; - } - } - return object; - } - - /** - * The base implementation of `_.forIn` without support for callback - * shorthands and `this` binding. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Object} Returns `object`. - */ - function baseForIn(object, iteratee) { - return baseFor(object, iteratee, keysIn); - } - - /** - * The base implementation of `_.forOwn` without support for callback - * shorthands and `this` binding. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Object} Returns `object`. - */ - function baseForOwn(object, iteratee) { - return baseFor(object, iteratee, keys); - } - - /** - * The base implementation of `_.forOwnRight` without support for callback - * shorthands and `this` binding. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Object} Returns `object`. - */ - function baseForOwnRight(object, iteratee) { - return baseForRight(object, iteratee, keys); - } - - /** - * The base implementation of `_.functions` which creates an array of - * `object` function property names filtered from those provided. - * - * @private - * @param {Object} object The object to inspect. - * @param {Array} props The property names to filter. - * @returns {Array} Returns the new array of filtered property names. - */ - function baseFunctions(object, props) { - var index = -1, - length = props.length, - resIndex = -1, - result = []; - - while (++index < length) { - var key = props[index]; - if (isFunction(object[key])) { - result[++resIndex] = key; - } - } - return result; - } - - /** - * The base implementation of `_.invoke` which requires additional arguments - * to be provided as an array of arguments rather than individually. - * - * @private - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function|string} methodName The name of the method to invoke or - * the function invoked per iteration. - * @param {Array} [args] The arguments to invoke the method with. - * @returns {Array} Returns the array of results. - */ - function baseInvoke(collection, methodName, args) { - var index = -1, - isFunc = typeof methodName == 'function', - length = collection ? collection.length : 0, - result = isLength(length) ? Array(length) : []; - - baseEach(collection, function(value) { - var func = isFunc ? methodName : (value != null && value[methodName]); - result[++index] = func ? func.apply(value, args) : undefined; - }); - return result; - } - - /** - * The base implementation of `_.isEqual` without support for `this` binding - * `customizer` functions. - * - * @private - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @param {Function} [customizer] The function to customize comparing values. - * @param {boolean} [isWhere] Specify performing partial comparisons. - * @param {Array} [stackA] Tracks traversed `value` objects. - * @param {Array} [stackB] Tracks traversed `other` objects. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. - */ - function baseIsEqual(value, other, customizer, isWhere, stackA, stackB) { - // Exit early for identical values. - if (value === other) { - // Treat `+0` vs. `-0` as not equal. - return value !== 0 || (1 / value == 1 / other); - } - var valType = typeof value, - othType = typeof other; - - // Exit early for unlike primitive values. - if ((valType != 'function' && valType != 'object' && othType != 'function' && othType != 'object') || - value == null || other == null) { - // Return `false` unless both values are `NaN`. - return value !== value && other !== other; - } - return baseIsEqualDeep(value, other, baseIsEqual, customizer, isWhere, stackA, stackB); - } - - /** - * A specialized version of `baseIsEqual` for arrays and objects which performs - * deep comparisons and tracks traversed objects enabling objects with circular - * references to be compared. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Function} [customizer] The function to customize comparing objects. - * @param {boolean} [isWhere] Specify performing partial comparisons. - * @param {Array} [stackA=[]] Tracks traversed `value` objects. - * @param {Array} [stackB=[]] Tracks traversed `other` objects. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ - function baseIsEqualDeep(object, other, equalFunc, customizer, isWhere, stackA, stackB) { - var objIsArr = isArray(object), - othIsArr = isArray(other), - objTag = arrayTag, - othTag = arrayTag; - - if (!objIsArr) { - objTag = objToString.call(object); - if (objTag == argsTag) { - objTag = objectTag; - } else if (objTag != objectTag) { - objIsArr = isTypedArray(object); - } - } - if (!othIsArr) { - othTag = objToString.call(other); - if (othTag == argsTag) { - othTag = objectTag; - } else if (othTag != objectTag) { - othIsArr = isTypedArray(other); - } - } - var objIsObj = objTag == objectTag, - othIsObj = othTag == objectTag, - isSameTag = objTag == othTag; - - if (isSameTag && !(objIsArr || objIsObj)) { - return equalByTag(object, other, objTag); - } - var valWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), - othWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); - - if (valWrapped || othWrapped) { - return equalFunc(valWrapped ? object.value() : object, othWrapped ? other.value() : other, customizer, isWhere, stackA, stackB); - } - if (!isSameTag) { - return false; - } - // Assume cyclic values are equal. - // For more information on detecting circular references see https://es5.github.io/#JO. - stackA || (stackA = []); - stackB || (stackB = []); - - var length = stackA.length; - while (length--) { - if (stackA[length] == object) { - return stackB[length] == other; - } - } - // Add `object` and `other` to the stack of traversed objects. - stackA.push(object); - stackB.push(other); - - var result = (objIsArr ? equalArrays : equalObjects)(object, other, equalFunc, customizer, isWhere, stackA, stackB); - - stackA.pop(); - stackB.pop(); - - return result; - } - - /** - * The base implementation of `_.isMatch` without support for callback - * shorthands or `this` binding. - * - * @private - * @param {Object} source The object to inspect. - * @param {Array} props The source property names to match. - * @param {Array} values The source values to match. - * @param {Array} strictCompareFlags Strict comparison flags for source values. - * @param {Function} [customizer] The function to customize comparing objects. - * @returns {boolean} Returns `true` if `object` is a match, else `false`. - */ - function baseIsMatch(object, props, values, strictCompareFlags, customizer) { - var length = props.length; - if (object == null) { - return !length; - } - var index = -1, - noCustomizer = !customizer; - - while (++index < length) { - if ((noCustomizer && strictCompareFlags[index]) - ? values[index] !== object[props[index]] - : !hasOwnProperty.call(object, props[index]) - ) { - return false; - } - } - index = -1; - while (++index < length) { - var key = props[index]; - if (noCustomizer && strictCompareFlags[index]) { - var result = hasOwnProperty.call(object, key); - } else { - var objValue = object[key], - srcValue = values[index]; - - result = customizer ? customizer(objValue, srcValue, key) : undefined; - if (typeof result == 'undefined') { - result = baseIsEqual(srcValue, objValue, customizer, true); - } - } - if (!result) { - return false; - } - } - return true; - } - - /** - * The base implementation of `_.map` without support for callback shorthands - * or `this` binding. - * - * @private - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the new mapped array. - */ - function baseMap(collection, iteratee) { - var result = []; - baseEach(collection, function(value, key, collection) { - result.push(iteratee(value, key, collection)); - }); - return result; - } - - /** - * The base implementation of `_.matches` which supports specifying whether - * `source` should be cloned. - * - * @private - * @param {Object} source The object of property values to match. - * @returns {Function} Returns the new function. - */ - function baseMatches(source) { - var props = keys(source), - length = props.length; - - if (length == 1) { - var key = props[0], - value = source[key]; - - if (isStrictComparable(value)) { - return function(object) { - return object != null && value === object[key] && hasOwnProperty.call(object, key); - }; - } - } - var values = Array(length), - strictCompareFlags = Array(length); - - while (length--) { - value = source[props[length]]; - values[length] = value; - strictCompareFlags[length] = isStrictComparable(value); - } - return function(object) { - return baseIsMatch(object, props, values, strictCompareFlags); - }; - } - - /** - * The base implementation of `_.merge` without support for argument juggling, - * multiple sources, and `this` binding `customizer` functions. - * - * @private - * @param {Object} object The destination object. - * @param {Object} source The source object. - * @param {Function} [customizer] The function to customize merging properties. - * @param {Array} [stackA=[]] Tracks traversed source objects. - * @param {Array} [stackB=[]] Associates values with source counterparts. - * @returns {Object} Returns the destination object. - */ - function baseMerge(object, source, customizer, stackA, stackB) { - var isSrcArr = isLength(source.length) && (isArray(source) || isTypedArray(source)); - - (isSrcArr ? arrayEach : baseForOwn)(source, function(srcValue, key, source) { - if (isObjectLike(srcValue)) { - stackA || (stackA = []); - stackB || (stackB = []); - return baseMergeDeep(object, source, key, baseMerge, customizer, stackA, stackB); - } - var value = object[key], - result = customizer ? customizer(value, srcValue, key, object, source) : undefined, - isCommon = typeof result == 'undefined'; - - if (isCommon) { - result = srcValue; - } - if ((isSrcArr || typeof result != 'undefined') && - (isCommon || (result === result ? result !== value : value === value))) { - object[key] = result; - } - }); - return object; - } - - /** - * A specialized version of `baseMerge` for arrays and objects which performs - * deep merges and tracks traversed objects enabling objects with circular - * references to be merged. - * - * @private - * @param {Object} object The destination object. - * @param {Object} source The source object. - * @param {string} key The key of the value to merge. - * @param {Function} mergeFunc The function to merge values. - * @param {Function} [customizer] The function to customize merging properties. - * @param {Array} [stackA=[]] Tracks traversed source objects. - * @param {Array} [stackB=[]] Associates values with source counterparts. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ - function baseMergeDeep(object, source, key, mergeFunc, customizer, stackA, stackB) { - var length = stackA.length, - srcValue = source[key]; - - while (length--) { - if (stackA[length] == srcValue) { - object[key] = stackB[length]; - return; - } - } - var value = object[key], - result = customizer ? customizer(value, srcValue, key, object, source) : undefined, - isCommon = typeof result == 'undefined'; - - if (isCommon) { - result = srcValue; - if (isLength(srcValue.length) && (isArray(srcValue) || isTypedArray(srcValue))) { - result = isArray(value) - ? value - : (value ? arrayCopy(value) : []); - } - else if (isPlainObject(srcValue) || isArguments(srcValue)) { - result = isArguments(value) - ? toPlainObject(value) - : (isPlainObject(value) ? value : {}); - } - else { - isCommon = false; - } - } - // Add the source value to the stack of traversed objects and associate - // it with its merged value. - stackA.push(srcValue); - stackB.push(result); - - if (isCommon) { - // Recursively merge objects and arrays (susceptible to call stack limits). - object[key] = mergeFunc(result, srcValue, customizer, stackA, stackB); - } else if (result === result ? result !== value : value === value) { - object[key] = result; - } - } - - /** - * The base implementation of `_.property` which does not coerce `key` to a string. - * - * @private - * @param {string} key The key of the property to get. - * @returns {Function} Returns the new function. - */ - function baseProperty(key) { - return function(object) { - return object == null ? undefined : object[key]; - }; - } - - /** - * The base implementation of `_.pullAt` without support for individual - * index arguments. - * - * @private - * @param {Array} array The array to modify. - * @param {number[]} indexes The indexes of elements to remove. - * @returns {Array} Returns the new array of removed elements. - */ - function basePullAt(array, indexes) { - var length = indexes.length, - result = baseAt(array, indexes); - - indexes.sort(baseCompareAscending); - while (length--) { - var index = parseFloat(indexes[length]); - if (index != previous && isIndex(index)) { - var previous = index; - splice.call(array, index, 1); - } - } - return result; - } - - /** - * The base implementation of `_.random` without support for argument juggling - * and returning floating-point numbers. - * - * @private - * @param {number} min The minimum possible value. - * @param {number} max The maximum possible value. - * @returns {number} Returns the random number. - */ - function baseRandom(min, max) { - return min + floor(nativeRandom() * (max - min + 1)); - } - - /** - * The base implementation of `_.reduce` and `_.reduceRight` without support - * for callback shorthands or `this` binding, which iterates over `collection` - * using the provided `eachFunc`. - * - * @private - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {*} accumulator The initial value. - * @param {boolean} initFromCollection Specify using the first or last element - * of `collection` as the initial value. - * @param {Function} eachFunc The function to iterate over `collection`. - * @returns {*} Returns the accumulated value. - */ - function baseReduce(collection, iteratee, accumulator, initFromCollection, eachFunc) { - eachFunc(collection, function(value, index, collection) { - accumulator = initFromCollection - ? (initFromCollection = false, value) - : iteratee(accumulator, value, index, collection) - }); - return accumulator; - } - - /** - * The base implementation of `setData` without support for hot loop detection. - * - * @private - * @param {Function} func The function to associate metadata with. - * @param {*} data The metadata. - * @returns {Function} Returns `func`. - */ - var baseSetData = !metaMap ? identity : function(func, data) { - metaMap.set(func, data); - return func; - }; - - /** - * The base implementation of `_.slice` without an iteratee call guard. - * - * @private - * @param {Array} array The array to slice. - * @param {number} [start=0] The start position. - * @param {number} [end=array.length] The end position. - * @returns {Array} Returns the slice of `array`. - */ - function baseSlice(array, start, end) { - var index = -1, - length = array.length; - - start = start == null ? 0 : (+start || 0); - if (start < 0) { - start = -start > length ? 0 : (length + start); - } - end = (typeof end == 'undefined' || end > length) ? length : (+end || 0); - if (end < 0) { - end += length; - } - length = start > end ? 0 : (end - start) >>> 0; - start >>>= 0; - - var result = Array(length); - while (++index < length) { - result[index] = array[index + start]; - } - return result; - } - - /** - * The base implementation of `_.some` without support for callback shorthands - * or `this` binding. - * - * @private - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if any element passes the predicate check, - * else `false`. - */ - function baseSome(collection, predicate) { - var result; - - baseEach(collection, function(value, index, collection) { - result = predicate(value, index, collection); - return !result; - }); - return !!result; - } - - /** - * The base implementation of `_.uniq` without support for callback shorthands - * and `this` binding. - * - * @private - * @param {Array} array The array to inspect. - * @param {Function} [iteratee] The function invoked per iteration. - * @returns {Array} Returns the new duplicate-value-free array. - */ - function baseUniq(array, iteratee) { - var index = -1, - indexOf = getIndexOf(), - length = array.length, - isCommon = indexOf == baseIndexOf, - isLarge = isCommon && length >= 200, - seen = isLarge && createCache(), - result = []; - - if (seen) { - indexOf = cacheIndexOf; - isCommon = false; - } else { - isLarge = false; - seen = iteratee ? [] : result; - } - outer: - while (++index < length) { - var value = array[index], - computed = iteratee ? iteratee(value, index, array) : value; - - if (isCommon && value === value) { - var seenIndex = seen.length; - while (seenIndex--) { - if (seen[seenIndex] === computed) { - continue outer; - } - } - if (iteratee) { - seen.push(computed); - } - result.push(value); - } - else if (indexOf(seen, computed) < 0) { - if (iteratee || isLarge) { - seen.push(computed); - } - result.push(value); - } - } - return result; - } - - /** - * The base implementation of `_.values` and `_.valuesIn` which creates an - * array of `object` property values corresponding to the property names - * returned by `keysFunc`. - * - * @private - * @param {Object} object The object to query. - * @param {Array} props The property names to get values for. - * @returns {Object} Returns the array of property values. - */ - function baseValues(object, props) { - var index = -1, - length = props.length, - result = Array(length); - - while (++index < length) { - result[index] = object[props[index]]; - } - return result; - } - - /** - * The base implementation of `wrapperValue` which returns the result of - * performing a sequence of actions on the unwrapped `value`, where each - * successive action is supplied the return value of the previous. - * - * @private - * @param {*} value The unwrapped value. - * @param {Array} actions Actions to peform to resolve the unwrapped value. - * @returns {*} Returns the resolved unwrapped value. - */ - function baseWrapperValue(value, actions) { - var result = value; - if (result instanceof LazyWrapper) { - result = result.value(); - } - var index = -1, - length = actions.length; - - while (++index < length) { - var args = [result], - action = actions[index]; - - push.apply(args, action.args); - result = action.func.apply(action.thisArg, args); - } - return result; - } - - /** - * Performs a binary search of `array` to determine the index at which `value` - * should be inserted into `array` in order to maintain its sort order. - * - * @private - * @param {Array} array The sorted array to inspect. - * @param {*} value The value to evaluate. - * @param {boolean} [retHighest] Specify returning the highest, instead - * of the lowest, index at which a value should be inserted into `array`. - * @returns {number} Returns the index at which `value` should be inserted - * into `array`. - */ - function binaryIndex(array, value, retHighest) { - var low = 0, - high = array ? array.length : low; - - if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) { - while (low < high) { - var mid = (low + high) >>> 1, - computed = array[mid]; - - if (retHighest ? (computed <= value) : (computed < value)) { - low = mid + 1; - } else { - high = mid; - } - } - return high; - } - return binaryIndexBy(array, value, identity, retHighest); - } - - /** - * This function is like `binaryIndex` except that it invokes `iteratee` for - * `value` and each element of `array` to compute their sort ranking. The - * iteratee is invoked with one argument; (value). - * - * @private - * @param {Array} array The sorted array to inspect. - * @param {*} value The value to evaluate. - * @param {Function} iteratee The function invoked per iteration. - * @param {boolean} [retHighest] Specify returning the highest, instead - * of the lowest, index at which a value should be inserted into `array`. - * @returns {number} Returns the index at which `value` should be inserted - * into `array`. - */ - function binaryIndexBy(array, value, iteratee, retHighest) { - value = iteratee(value); - - var low = 0, - high = array ? array.length : 0, - valIsNaN = value !== value, - valIsUndef = typeof value == 'undefined'; - - while (low < high) { - var mid = floor((low + high) / 2), - computed = iteratee(array[mid]), - isReflexive = computed === computed; - - if (valIsNaN) { - var setLow = isReflexive || retHighest; - } else if (valIsUndef) { - setLow = isReflexive && (retHighest || typeof computed != 'undefined'); - } else { - setLow = retHighest ? (computed <= value) : (computed < value); - } - if (setLow) { - low = mid + 1; - } else { - high = mid; - } - } - return nativeMin(high, MAX_ARRAY_INDEX); - } - - /** - * A specialized version of `baseCallback` which only supports `this` binding - * and specifying the number of arguments to provide to `func`. - * - * @private - * @param {Function} func The function to bind. - * @param {*} thisArg The `this` binding of `func`. - * @param {number} [argCount] The number of arguments to provide to `func`. - * @returns {Function} Returns the callback. - */ - function bindCallback(func, thisArg, argCount) { - if (typeof func != 'function') { - return identity; - } - if (typeof thisArg == 'undefined') { - return func; - } - switch (argCount) { - case 1: return function(value) { - return func.call(thisArg, value); - }; - case 3: return function(value, index, collection) { - return func.call(thisArg, value, index, collection); - }; - case 4: return function(accumulator, value, index, collection) { - return func.call(thisArg, accumulator, value, index, collection); - }; - case 5: return function(value, other, key, object, source) { - return func.call(thisArg, value, other, key, object, source); - }; - } - return function() { - return func.apply(thisArg, arguments); - }; - } - - /** - * Creates a clone of the given array buffer. - * - * @private - * @param {ArrayBuffer} buffer The array buffer to clone. - * @returns {ArrayBuffer} Returns the cloned array buffer. - */ - function bufferClone(buffer) { - return bufferSlice.call(buffer, 0); - } - if (!bufferSlice) { - // PhantomJS has `ArrayBuffer` and `Uint8Array` but not `Float64Array`. - bufferClone = !(ArrayBuffer && Uint8Array) ? constant(null) : function(buffer) { - var byteLength = buffer.byteLength, - floatLength = Float64Array ? floor(byteLength / FLOAT64_BYTES_PER_ELEMENT) : 0, - offset = floatLength * FLOAT64_BYTES_PER_ELEMENT, - result = new ArrayBuffer(byteLength); - - if (floatLength) { - var view = new Float64Array(result, 0, floatLength); - view.set(new Float64Array(buffer, 0, floatLength)); - } - if (byteLength != offset) { - view = new Uint8Array(result, offset); - view.set(new Uint8Array(buffer, offset)); - } - return result; - }; - } - - /** - * Creates an array that is the composition of partially applied arguments, - * placeholders, and provided arguments into a single array of arguments. - * - * @private - * @param {Array|Object} args The provided arguments. - * @param {Array} partials The arguments to prepend to those provided. - * @param {Array} holders The `partials` placeholder indexes. - * @returns {Array} Returns the new array of composed arguments. - */ - function composeArgs(args, partials, holders) { - var holdersLength = holders.length, - argsIndex = -1, - argsLength = nativeMax(args.length - holdersLength, 0), - leftIndex = -1, - leftLength = partials.length, - result = Array(argsLength + leftLength); - - while (++leftIndex < leftLength) { - result[leftIndex] = partials[leftIndex]; - } - while (++argsIndex < holdersLength) { - result[holders[argsIndex]] = args[argsIndex]; - } - while (argsLength--) { - result[leftIndex++] = args[argsIndex++]; - } - return result; - } - - /** - * This function is like `composeArgs` except that the arguments composition - * is tailored for `_.partialRight`. - * - * @private - * @param {Array|Object} args The provided arguments. - * @param {Array} partials The arguments to append to those provided. - * @param {Array} holders The `partials` placeholder indexes. - * @returns {Array} Returns the new array of composed arguments. - */ - function composeArgsRight(args, partials, holders) { - var holdersIndex = -1, - holdersLength = holders.length, - argsIndex = -1, - argsLength = nativeMax(args.length - holdersLength, 0), - rightIndex = -1, - rightLength = partials.length, - result = Array(argsLength + rightLength); - - while (++argsIndex < argsLength) { - result[argsIndex] = args[argsIndex]; - } - var pad = argsIndex; - while (++rightIndex < rightLength) { - result[pad + rightIndex] = partials[rightIndex]; - } - while (++holdersIndex < holdersLength) { - result[pad + holders[holdersIndex]] = args[argsIndex++]; - } - return result; - } - - /** - * Creates a function that aggregates a collection, creating an accumulator - * object composed from the results of running each element in the collection - * through an iteratee. The `setter` sets the keys and values of the accumulator - * object. If `initializer` is provided initializes the accumulator object. - * - * @private - * @param {Function} setter The function to set keys and values of the accumulator object. - * @param {Function} [initializer] The function to initialize the accumulator object. - * @returns {Function} Returns the new aggregator function. - */ - function createAggregator(setter, initializer) { - return function(collection, iteratee, thisArg) { - var result = initializer ? initializer() : {}; - iteratee = getCallback(iteratee, thisArg, 3); - - if (isArray(collection)) { - var index = -1, - length = collection.length; - - while (++index < length) { - var value = collection[index]; - setter(result, value, iteratee(value, index, collection), collection); - } - } else { - baseEach(collection, function(value, key, collection) { - setter(result, value, iteratee(value, key, collection), collection); - }); - } - return result; - }; - } - - /** - * Creates a function that assigns properties of source object(s) to a given - * destination object. - * - * @private - * @param {Function} assigner The function to assign values. - * @returns {Function} Returns the new assigner function. - */ - function createAssigner(assigner) { - return function() { - var length = arguments.length, - object = arguments[0]; - - if (length < 2 || object == null) { - return object; - } - if (length > 3 && isIterateeCall(arguments[1], arguments[2], arguments[3])) { - length = 2; - } - // Juggle arguments. - if (length > 3 && typeof arguments[length - 2] == 'function') { - var customizer = bindCallback(arguments[--length - 1], arguments[length--], 5); - } else if (length > 2 && typeof arguments[length - 1] == 'function') { - customizer = arguments[--length]; - } - var index = 0; - while (++index < length) { - var source = arguments[index]; - if (source) { - assigner(object, source, customizer); - } - } - return object; - }; - } - - /** - * Creates a function that wraps `func` and invokes it with the `this` - * binding of `thisArg`. - * - * @private - * @param {Function} func The function to bind. - * @param {*} [thisArg] The `this` binding of `func`. - * @returns {Function} Returns the new bound function. - */ - function createBindWrapper(func, thisArg) { - var Ctor = createCtorWrapper(func); - - function wrapper() { - return (this instanceof wrapper ? Ctor : func).apply(thisArg, arguments); - } - return wrapper; - } - - /** - * Creates a `Set` cache object to optimize linear searches of large arrays. - * - * @private - * @param {Array} [values] The values to cache. - * @returns {null|Object} Returns the new cache object if `Set` is supported, else `null`. - */ - var createCache = !(nativeCreate && Set) ? constant(null) : function(values) { - return new SetCache(values); - }; - - /** - * Creates a function that produces compound words out of the words in a - * given string. - * - * @private - * @param {Function} callback The function to combine each word. - * @returns {Function} Returns the new compounder function. - */ - function createCompounder(callback) { - return function(string) { - var index = -1, - array = words(deburr(string)), - length = array.length, - result = ''; - - while (++index < length) { - result = callback(result, array[index], index); - } - return result; - }; - } - - /** - * Creates a function that produces an instance of `Ctor` regardless of - * whether it was invoked as part of a `new` expression or by `call` or `apply`. - * - * @private - * @param {Function} Ctor The constructor to wrap. - * @returns {Function} Returns the new wrapped function. - */ - function createCtorWrapper(Ctor) { - return function() { - var thisBinding = baseCreate(Ctor.prototype), - result = Ctor.apply(thisBinding, arguments); - - // Mimic the constructor's `return` behavior. - // See https://es5.github.io/#x13.2.2 for more details. - return isObject(result) ? result : thisBinding; - }; - } - - /** - * Creates a function that gets the extremum value of a collection. - * - * @private - * @param {Function} arrayFunc The function to get the extremum value from an array. - * @param {boolean} [isMin] Specify returning the minimum, instead of the maximum, - * extremum value. - * @returns {Function} Returns the new extremum function. - */ - function createExtremum(arrayFunc, isMin) { - return function(collection, iteratee, thisArg) { - if (thisArg && isIterateeCall(collection, iteratee, thisArg)) { - iteratee = null; - } - var func = getCallback(), - noIteratee = iteratee == null; - - if (!(func === baseCallback && noIteratee)) { - noIteratee = false; - iteratee = func(iteratee, thisArg, 3); - } - if (noIteratee) { - var isArr = isArray(collection); - if (!isArr && isString(collection)) { - iteratee = charAtCallback; - } else { - return arrayFunc(isArr ? collection : toIterable(collection)); - } - } - return extremumBy(collection, iteratee, isMin); - }; - } - - /** - * Creates a function that wraps `func` and invokes it with optional `this` - * binding of, partial application, and currying. - * - * @private - * @param {Function|string} func The function or method name to reference. - * @param {number} bitmask The bitmask of flags. See `createWrapper` for more details. - * @param {*} [thisArg] The `this` binding of `func`. - * @param {Array} [partials] The arguments to prepend to those provided to the new function. - * @param {Array} [holders] The `partials` placeholder indexes. - * @param {Array} [partialsRight] The arguments to append to those provided to the new function. - * @param {Array} [holdersRight] The `partialsRight` placeholder indexes. - * @param {Array} [argPos] The argument positions of the new function. - * @param {number} [ary] The arity cap of `func`. - * @param {number} [arity] The arity of `func`. - * @returns {Function} Returns the new wrapped function. - */ - function createHybridWrapper(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) { - var isAry = bitmask & ARY_FLAG, - isBind = bitmask & BIND_FLAG, - isBindKey = bitmask & BIND_KEY_FLAG, - isCurry = bitmask & CURRY_FLAG, - isCurryBound = bitmask & CURRY_BOUND_FLAG, - isCurryRight = bitmask & CURRY_RIGHT_FLAG; - - var Ctor = !isBindKey && createCtorWrapper(func), - key = func; - - function wrapper() { - // Avoid `arguments` object use disqualifying optimizations by - // converting it to an array before providing it to other functions. - var length = arguments.length, - index = length, - args = Array(length); - - while (index--) { - args[index] = arguments[index]; - } - if (partials) { - args = composeArgs(args, partials, holders); - } - if (partialsRight) { - args = composeArgsRight(args, partialsRight, holdersRight); - } - if (isCurry || isCurryRight) { - var placeholder = wrapper.placeholder, - argsHolders = replaceHolders(args, placeholder); - - length -= argsHolders.length; - if (length < arity) { - var newArgPos = argPos ? arrayCopy(argPos) : null, - newArity = nativeMax(arity - length, 0), - newsHolders = isCurry ? argsHolders : null, - newHoldersRight = isCurry ? null : argsHolders, - newPartials = isCurry ? args : null, - newPartialsRight = isCurry ? null : args; - - bitmask |= (isCurry ? PARTIAL_FLAG : PARTIAL_RIGHT_FLAG); - bitmask &= ~(isCurry ? PARTIAL_RIGHT_FLAG : PARTIAL_FLAG); - - if (!isCurryBound) { - bitmask &= ~(BIND_FLAG | BIND_KEY_FLAG); - } - var result = createHybridWrapper(func, bitmask, thisArg, newPartials, newsHolders, newPartialsRight, newHoldersRight, newArgPos, ary, newArity); - result.placeholder = placeholder; - return result; - } - } - var thisBinding = isBind ? thisArg : this; - if (isBindKey) { - func = thisBinding[key]; - } - if (argPos) { - args = reorder(args, argPos); - } - if (isAry && ary < args.length) { - args.length = ary; - } - return (this instanceof wrapper ? (Ctor || createCtorWrapper(func)) : func).apply(thisBinding, args); - } - return wrapper; - } - - /** - * Creates the pad required for `string` based on the given padding length. - * The `chars` string may be truncated if the number of padding characters - * exceeds the padding length. - * - * @private - * @param {string} string The string to create padding for. - * @param {number} [length=0] The padding length. - * @param {string} [chars=' '] The string used as padding. - * @returns {string} Returns the pad for `string`. - */ - function createPad(string, length, chars) { - var strLength = string.length; - length = +length; - - if (strLength >= length || !nativeIsFinite(length)) { - return ''; - } - var padLength = length - strLength; - chars = chars == null ? ' ' : (chars + ''); - return repeat(chars, ceil(padLength / chars.length)).slice(0, padLength); - } - - /** - * Creates a function that wraps `func` and invokes it with the optional `this` - * binding of `thisArg` and the `partials` prepended to those provided to - * the wrapper. - * - * @private - * @param {Function} func The function to partially apply arguments to. - * @param {number} bitmask The bitmask of flags. See `createWrapper` for more details. - * @param {*} thisArg The `this` binding of `func`. - * @param {Array} partials The arguments to prepend to those provided to the new function. - * @returns {Function} Returns the new bound function. - */ - function createPartialWrapper(func, bitmask, thisArg, partials) { - var isBind = bitmask & BIND_FLAG, - Ctor = createCtorWrapper(func); - - function wrapper() { - // Avoid `arguments` object use disqualifying optimizations by - // converting it to an array before providing it `func`. - var argsIndex = -1, - argsLength = arguments.length, - leftIndex = -1, - leftLength = partials.length, - args = Array(argsLength + leftLength); - - while (++leftIndex < leftLength) { - args[leftIndex] = partials[leftIndex]; - } - while (argsLength--) { - args[leftIndex++] = arguments[++argsIndex]; - } - return (this instanceof wrapper ? Ctor : func).apply(isBind ? thisArg : this, args); - } - return wrapper; - } - - /** - * Creates a function that either curries or invokes `func` with optional - * `this` binding and partially applied arguments. - * - * @private - * @param {Function|string} func The function or method name to reference. - * @param {number} bitmask The bitmask of flags. - * The bitmask may be composed of the following flags: - * 1 - `_.bind` - * 2 - `_.bindKey` - * 4 - `_.curry` or `_.curryRight` of a bound function - * 8 - `_.curry` - * 16 - `_.curryRight` - * 32 - `_.partial` - * 64 - `_.partialRight` - * 128 - `_.rearg` - * 256 - `_.ary` - * @param {*} [thisArg] The `this` binding of `func`. - * @param {Array} [partials] The arguments to be partially applied. - * @param {Array} [holders] The `partials` placeholder indexes. - * @param {Array} [argPos] The argument positions of the new function. - * @param {number} [ary] The arity cap of `func`. - * @param {number} [arity] The arity of `func`. - * @returns {Function} Returns the new wrapped function. - */ - function createWrapper(func, bitmask, thisArg, partials, holders, argPos, ary, arity) { - var isBindKey = bitmask & BIND_KEY_FLAG; - if (!isBindKey && !isFunction(func)) { - throw new TypeError(FUNC_ERROR_TEXT); - } - var length = partials ? partials.length : 0; - if (!length) { - bitmask &= ~(PARTIAL_FLAG | PARTIAL_RIGHT_FLAG); - partials = holders = null; - } - length -= (holders ? holders.length : 0); - if (bitmask & PARTIAL_RIGHT_FLAG) { - var partialsRight = partials, - holdersRight = holders; - - partials = holders = null; - } - var data = !isBindKey && getData(func), - newData = [func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity]; - - if (data && data !== true) { - mergeData(newData, data); - bitmask = newData[1]; - arity = newData[9]; - } - newData[9] = arity == null - ? (isBindKey ? 0 : func.length) - : (nativeMax(arity - length, 0) || 0); - - if (bitmask == BIND_FLAG) { - var result = createBindWrapper(newData[0], newData[2]); - } else if ((bitmask == PARTIAL_FLAG || bitmask == (BIND_FLAG | PARTIAL_FLAG)) && !newData[4].length) { - result = createPartialWrapper.apply(null, newData); - } else { - result = createHybridWrapper.apply(null, newData); - } - var setter = data ? baseSetData : setData; - return setter(result, newData); - } - - /** - * A specialized version of `baseIsEqualDeep` for arrays with support for - * partial deep comparisons. - * - * @private - * @param {Array} array The array to compare. - * @param {Array} other The other array to compare. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Function} [customizer] The function to customize comparing arrays. - * @param {boolean} [isWhere] Specify performing partial comparisons. - * @param {Array} [stackA] Tracks traversed `value` objects. - * @param {Array} [stackB] Tracks traversed `other` objects. - * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. - */ - function equalArrays(array, other, equalFunc, customizer, isWhere, stackA, stackB) { - var index = -1, - arrLength = array.length, - othLength = other.length, - result = true; - - if (arrLength != othLength && !(isWhere && othLength > arrLength)) { - return false; - } - // Deep compare the contents, ignoring non-numeric properties. - while (result && ++index < arrLength) { - var arrValue = array[index], - othValue = other[index]; - - result = undefined; - if (customizer) { - result = isWhere - ? customizer(othValue, arrValue, index) - : customizer(arrValue, othValue, index); - } - if (typeof result == 'undefined') { - // Recursively compare arrays (susceptible to call stack limits). - if (isWhere) { - var othIndex = othLength; - while (othIndex--) { - othValue = other[othIndex]; - result = (arrValue && arrValue === othValue) || equalFunc(arrValue, othValue, customizer, isWhere, stackA, stackB); - if (result) { - break; - } - } - } else { - result = (arrValue && arrValue === othValue) || equalFunc(arrValue, othValue, customizer, isWhere, stackA, stackB); - } - } - } - return !!result; - } - - /** - * A specialized version of `baseIsEqualDeep` for comparing objects of - * the same `toStringTag`. - * - * **Note:** This function only supports comparing values with tags of - * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. - * - * @private - * @param {Object} value The object to compare. - * @param {Object} other The other object to compare. - * @param {string} tag The `toStringTag` of the objects to compare. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ - function equalByTag(object, other, tag) { - switch (tag) { - case boolTag: - case dateTag: - // Coerce dates and booleans to numbers, dates to milliseconds and booleans - // to `1` or `0` treating invalid dates coerced to `NaN` as not equal. - return +object == +other; - - case errorTag: - return object.name == other.name && object.message == other.message; - - case numberTag: - // Treat `NaN` vs. `NaN` as equal. - return (object != +object) - ? other != +other - // But, treat `-0` vs. `+0` as not equal. - : (object == 0 ? ((1 / object) == (1 / other)) : object == +other); - - case regexpTag: - case stringTag: - // Coerce regexes to strings and treat strings primitives and string - // objects as equal. See https://es5.github.io/#x15.10.6.4 for more details. - return object == (other + ''); - } - return false; - } - - /** - * A specialized version of `baseIsEqualDeep` for objects with support for - * partial deep comparisons. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Function} [customizer] The function to customize comparing values. - * @param {boolean} [isWhere] Specify performing partial comparisons. - * @param {Array} [stackA] Tracks traversed `value` objects. - * @param {Array} [stackB] Tracks traversed `other` objects. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ - function equalObjects(object, other, equalFunc, customizer, isWhere, stackA, stackB) { - var objProps = keys(object), - objLength = objProps.length, - othProps = keys(other), - othLength = othProps.length; - - if (objLength != othLength && !isWhere) { - return false; - } - var hasCtor, - index = -1; - - while (++index < objLength) { - var key = objProps[index], - result = hasOwnProperty.call(other, key); - - if (result) { - var objValue = object[key], - othValue = other[key]; - - result = undefined; - if (customizer) { - result = isWhere - ? customizer(othValue, objValue, key) - : customizer(objValue, othValue, key); - } - if (typeof result == 'undefined') { - // Recursively compare objects (susceptible to call stack limits). - result = (objValue && objValue === othValue) || equalFunc(objValue, othValue, customizer, isWhere, stackA, stackB); - } - } - if (!result) { - return false; - } - hasCtor || (hasCtor = key == 'constructor'); - } - if (!hasCtor) { - var objCtor = object.constructor, - othCtor = other.constructor; - - // Non `Object` object instances with different constructors are not equal. - if (objCtor != othCtor && ('constructor' in object && 'constructor' in other) && - !(typeof objCtor == 'function' && objCtor instanceof objCtor && typeof othCtor == 'function' && othCtor instanceof othCtor)) { - return false; - } - } - return true; - } - - /** - * Gets the extremum value of `collection` invoking `iteratee` for each value - * in `collection` to generate the criterion by which the value is ranked. - * The `iteratee` is invoked with three arguments; (value, index, collection). - * - * @private - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {boolean} [isMin] Specify returning the minimum, instead of the - * maximum, extremum value. - * @returns {*} Returns the extremum value. - */ - function extremumBy(collection, iteratee, isMin) { - var exValue = isMin ? POSITIVE_INFINITY : NEGATIVE_INFINITY, - computed = exValue, - result = computed; - - baseEach(collection, function(value, index, collection) { - var current = iteratee(value, index, collection); - if ((isMin ? current < computed : current > computed) || (current === exValue && current === result)) { - computed = current; - result = value; - } - }); - return result; - } - - /** - * Gets the appropriate "callback" function. If the `_.callback` method is - * customized this function returns the custom method, otherwise it returns - * the `baseCallback` function. If arguments are provided the chosen function - * is invoked with them and its result is returned. - * - * @private - * @returns {Function} Returns the chosen function or its result. - */ - function getCallback(func, thisArg, argCount) { - var result = lodash.callback || callback; - result = result === callback ? baseCallback : result; - return argCount ? result(func, thisArg, argCount) : result; - } - - /** - * Gets metadata for `func`. - * - * @private - * @param {Function} func The function to query. - * @returns {*} Returns the metadata for `func`. - */ - var getData = !metaMap ? noop : function(func) { - return metaMap.get(func); - }; - - /** - * Gets the appropriate "indexOf" function. If the `_.indexOf` method is - * customized this function returns the custom method, otherwise it returns - * the `baseIndexOf` function. If arguments are provided the chosen function - * is invoked with them and its result is returned. - * - * @private - * @returns {Function|number} Returns the chosen function or its result. - */ - function getIndexOf(collection, target, fromIndex) { - var result = lodash.indexOf || indexOf; - result = result === indexOf ? baseIndexOf : result; - return collection ? result(collection, target, fromIndex) : result; - } - - /** - * Gets the view, applying any `transforms` to the `start` and `end` positions. - * - * @private - * @param {number} start The start of the view. - * @param {number} end The end of the view. - * @param {Array} [transforms] The transformations to apply to the view. - * @returns {Object} Returns an object containing the `start` and `end` - * positions of the view. - */ - function getView(start, end, transforms) { - var index = -1, - length = transforms ? transforms.length : 0; - - while (++index < length) { - var data = transforms[index], - size = data.size; - - switch (data.type) { - case 'drop': start += size; break; - case 'dropRight': end -= size; break; - case 'take': end = nativeMin(end, start + size); break; - case 'takeRight': start = nativeMax(start, end - size); break; - } - } - return { 'start': start, 'end': end }; - } - - /** - * Initializes an array clone. - * - * @private - * @param {Array} array The array to clone. - * @returns {Array} Returns the initialized clone. - */ - function initCloneArray(array) { - var length = array.length, - result = new array.constructor(length); - - // Add array properties assigned by `RegExp#exec`. - if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) { - result.index = array.index; - result.input = array.input; - } - return result; - } - - /** - * Initializes an object clone. - * - * @private - * @param {Object} object The object to clone. - * @returns {Object} Returns the initialized clone. - */ - function initCloneObject(object) { - var Ctor = object.constructor; - if (!(typeof Ctor == 'function' && Ctor instanceof Ctor)) { - Ctor = Object; - } - return new Ctor; - } - - /** - * Initializes an object clone based on its `toStringTag`. - * - * **Note:** This function only supports cloning values with tags of - * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. - * - * - * @private - * @param {Object} object The object to clone. - * @param {string} tag The `toStringTag` of the object to clone. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Object} Returns the initialized clone. - */ - function initCloneByTag(object, tag, isDeep) { - var Ctor = object.constructor; - switch (tag) { - case arrayBufferTag: - return bufferClone(object); - - case boolTag: - case dateTag: - return new Ctor(+object); - - case float32Tag: case float64Tag: - case int8Tag: case int16Tag: case int32Tag: - case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag: - var buffer = object.buffer; - return new Ctor(isDeep ? bufferClone(buffer) : buffer, object.byteOffset, object.length); - - case numberTag: - case stringTag: - return new Ctor(object); - - case regexpTag: - var result = new Ctor(object.source, reFlags.exec(object)); - result.lastIndex = object.lastIndex; - } - return result; - } - - /** - * Checks if `func` is eligible for `this` binding. - * - * @private - * @param {Function} func The function to check. - * @returns {boolean} Returns `true` if `func` is eligible, else `false`. - */ - function isBindable(func) { - var support = lodash.support, - result = !(support.funcNames ? func.name : support.funcDecomp); - - if (!result) { - var source = fnToString.call(func); - if (!support.funcNames) { - result = !reFuncName.test(source); - } - if (!result) { - // Check if `func` references the `this` keyword and store the result. - result = reThis.test(source) || isNative(func); - baseSetData(func, result); - } - } - return result; - } - - /** - * Checks if `value` is a valid array-like index. - * - * @private - * @param {*} value The value to check. - * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. - * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. - */ - function isIndex(value, length) { - value = +value; - length = length == null ? MAX_SAFE_INTEGER : length; - return value > -1 && value % 1 == 0 && value < length; - } - - /** - * Checks if the provided arguments are from an iteratee call. - * - * @private - * @param {*} value The potential iteratee value argument. - * @param {*} index The potential iteratee index or key argument. - * @param {*} object The potential iteratee object argument. - * @returns {boolean} Returns `true` if the arguments are from an iteratee call, else `false`. - */ - function isIterateeCall(value, index, object) { - if (!isObject(object)) { - return false; - } - var type = typeof index; - if (type == 'number') { - var length = object.length, - prereq = isLength(length) && isIndex(index, length); - } else { - prereq = type == 'string' && index in object; - } - return prereq && object[index] === value; - } - - /** - * Checks if `value` is a valid array-like length. - * - * **Note:** This function is based on ES `ToLength`. See the - * [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength) - * for more details. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. - */ - function isLength(value) { - return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; - } - - /** - * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` if suitable for strict - * equality comparisons, else `false`. - */ - function isStrictComparable(value) { - return value === value && (value === 0 ? ((1 / value) > 0) : !isObject(value)); - } - - /** - * Merges the function metadata of `source` into `data`. - * - * Merging metadata reduces the number of wrappers required to invoke a function. - * This is possible because methods like `_.bind`, `_.curry`, and `_.partial` - * may be applied regardless of execution order. Methods like `_.ary` and `_.rearg` - * augment function arguments, making the order in which they are executed important, - * preventing the merging of metadata. However, we make an exception for a safe - * common case where curried functions have `_.ary` and or `_.rearg` applied. - * - * @private - * @param {Array} data The destination metadata. - * @param {Array} source The source metadata. - * @returns {Array} Returns `data`. - */ - function mergeData(data, source) { - var bitmask = data[1], - srcBitmask = source[1], - newBitmask = bitmask | srcBitmask; - - var arityFlags = ARY_FLAG | REARG_FLAG, - bindFlags = BIND_FLAG | BIND_KEY_FLAG, - comboFlags = arityFlags | bindFlags | CURRY_BOUND_FLAG | CURRY_RIGHT_FLAG; - - var isAry = bitmask & ARY_FLAG && !(srcBitmask & ARY_FLAG), - isRearg = bitmask & REARG_FLAG && !(srcBitmask & REARG_FLAG), - argPos = (isRearg ? data : source)[7], - ary = (isAry ? data : source)[8]; - - var isCommon = !(bitmask >= REARG_FLAG && srcBitmask > bindFlags) && - !(bitmask > bindFlags && srcBitmask >= REARG_FLAG); - - var isCombo = (newBitmask >= arityFlags && newBitmask <= comboFlags) && - (bitmask < REARG_FLAG || ((isRearg || isAry) && argPos.length <= ary)); - - // Exit early if metadata can't be merged. - if (!(isCommon || isCombo)) { - return data; - } - // Use source `thisArg` if available. - if (srcBitmask & BIND_FLAG) { - data[2] = source[2]; - // Set when currying a bound function. - newBitmask |= (bitmask & BIND_FLAG) ? 0 : CURRY_BOUND_FLAG; - } - // Compose partial arguments. - var value = source[3]; - if (value) { - var partials = data[3]; - data[3] = partials ? composeArgs(partials, value, source[4]) : arrayCopy(value); - data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : arrayCopy(source[4]); - } - // Compose partial right arguments. - value = source[5]; - if (value) { - partials = data[5]; - data[5] = partials ? composeArgsRight(partials, value, source[6]) : arrayCopy(value); - data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : arrayCopy(source[6]); - } - // Use source `argPos` if available. - value = source[7]; - if (value) { - data[7] = arrayCopy(value); - } - // Use source `ary` if it's smaller. - if (srcBitmask & ARY_FLAG) { - data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]); - } - // Use source `arity` if one is not provided. - if (data[9] == null) { - data[9] = source[9]; - } - // Use source `func` and merge bitmasks. - data[0] = source[0]; - data[1] = newBitmask; - - return data; - } - - /** - * A specialized version of `_.pick` that picks `object` properties specified - * by the `props` array. - * - * @private - * @param {Object} object The source object. - * @param {string[]} props The property names to pick. - * @returns {Object} Returns the new object. - */ - function pickByArray(object, props) { - object = toObject(object); - - var index = -1, - length = props.length, - result = {}; - - while (++index < length) { - var key = props[index]; - if (key in object) { - result[key] = object[key]; - } - } - return result; - } - - /** - * A specialized version of `_.pick` that picks `object` properties `predicate` - * returns truthy for. - * - * @private - * @param {Object} object The source object. - * @param {Function} predicate The function invoked per iteration. - * @returns {Object} Returns the new object. - */ - function pickByCallback(object, predicate) { - var result = {}; - baseForIn(object, function(value, key, object) { - if (predicate(value, key, object)) { - result[key] = value; - } - }); - return result; - } - - /** - * Reorder `array` according to the specified indexes where the element at - * the first index is assigned as the first element, the element at - * the second index is assigned as the second element, and so on. - * - * @private - * @param {Array} array The array to reorder. - * @param {Array} indexes The arranged array indexes. - * @returns {Array} Returns `array`. - */ - function reorder(array, indexes) { - var arrLength = array.length, - length = nativeMin(indexes.length, arrLength), - oldArray = arrayCopy(array); - - while (length--) { - var index = indexes[length]; - array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined; - } - return array; - } - - /** - * Sets metadata for `func`. - * - * **Note:** If this function becomes hot, i.e. is invoked a lot in a short - * period of time, it will trip its breaker and transition to an identity function - * to avoid garbage collection pauses in V8. See [V8 issue 2070](https://code.google.com/p/v8/issues/detail?id=2070) - * for more details. - * - * @private - * @param {Function} func The function to associate metadata with. - * @param {*} data The metadata. - * @returns {Function} Returns `func`. - */ - var setData = (function() { - var count = 0, - lastCalled = 0; - - return function(key, value) { - var stamp = now(), - remaining = HOT_SPAN - (stamp - lastCalled); - - lastCalled = stamp; - if (remaining > 0) { - if (++count >= HOT_COUNT) { - return key; - } - } else { - count = 0; - } - return baseSetData(key, value); - }; - }()); - - /** - * A fallback implementation of `_.isPlainObject` which checks if `value` - * is an object created by the `Object` constructor or has a `[[Prototype]]` - * of `null`. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. - */ - function shimIsPlainObject(value) { - var Ctor, - support = lodash.support; - - // Exit early for non `Object` objects. - if (!(isObjectLike(value) && objToString.call(value) == objectTag) || - (!hasOwnProperty.call(value, 'constructor') && - (Ctor = value.constructor, typeof Ctor == 'function' && !(Ctor instanceof Ctor)))) { - return false; - } - // IE < 9 iterates inherited properties before own properties. If the first - // iterated property is an object's own property then there are no inherited - // enumerable properties. - var result; - // In most environments an object's own properties are iterated before - // its inherited properties. If the last iterated property is an object's - // own property then there are no inherited enumerable properties. - baseForIn(value, function(subValue, key) { - result = key; - }); - return typeof result == 'undefined' || hasOwnProperty.call(value, result); - } - - /** - * A fallback implementation of `Object.keys` which creates an array of the - * own enumerable property names of `object`. - * - * @private - * @param {Object} object The object to inspect. - * @returns {Array} Returns the array of property names. - */ - function shimKeys(object) { - var props = keysIn(object), - propsLength = props.length, - length = propsLength && object.length, - support = lodash.support; - - var allowIndexes = length && isLength(length) && - (isArray(object) || (support.nonEnumArgs && isArguments(object))); - - var index = -1, - result = []; - - while (++index < propsLength) { - var key = props[index]; - if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) { - result.push(key); - } - } - return result; - } - - /** - * Converts `value` to an array-like object if it is not one. - * - * @private - * @param {*} value The value to process. - * @returns {Array|Object} Returns the array-like object. - */ - function toIterable(value) { - if (value == null) { - return []; - } - if (!isLength(value.length)) { - return values(value); - } - return isObject(value) ? value : Object(value); - } - - /** - * Converts `value` to an object if it is not one. - * - * @private - * @param {*} value The value to process. - * @returns {Object} Returns the object. - */ - function toObject(value) { - return isObject(value) ? value : Object(value); - } - - /*------------------------------------------------------------------------*/ - - /** - * Creates an array of elements split into groups the length of `size`. - * If `collection` can't be split evenly, the final chunk will be the remaining - * elements. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array to process. - * @param {numer} [size=1] The length of each chunk. - * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. - * @returns {Array} Returns the new array containing chunks. - * @example - * - * _.chunk(['a', 'b', 'c', 'd'], 2); - * // => [['a', 'b'], ['c', 'd']] - * - * _.chunk(['a', 'b', 'c', 'd'], 3); - * // => [['a', 'b', 'c'], ['d']] - */ - function chunk(array, size, guard) { - if (guard ? isIterateeCall(array, size, guard) : size == null) { - size = 1; - } else { - size = nativeMax(+size || 1, 1); - } - var index = 0, - length = array ? array.length : 0, - resIndex = -1, - result = Array(ceil(length / size)); - - while (index < length) { - result[++resIndex] = baseSlice(array, index, (index += size)); - } - return result; - } - - /** - * Creates an array with all falsey values removed. The values `false`, `null`, - * `0`, `""`, `undefined`, and `NaN` are falsey. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array to compact. - * @returns {Array} Returns the new array of filtered values. - * @example - * - * _.compact([0, 1, false, 2, '', 3]); - * // => [1, 2, 3] - */ - function compact(array) { - var index = -1, - length = array ? array.length : 0, - resIndex = -1, - result = []; - - while (++index < length) { - var value = array[index]; - if (value) { - result[++resIndex] = value; - } - } - return result; - } - - /** - * Creates an array excluding all values of the provided arrays using - * `SameValueZero` for equality comparisons. - * - * **Note:** `SameValueZero` comparisons are like strict equality comparisons, - * e.g. `===`, except that `NaN` matches `NaN`. See the - * [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) - * for more details. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array to inspect. - * @param {...Array} [values] The arrays of values to exclude. - * @returns {Array} Returns the new array of filtered values. - * @example - * - * _.difference([1, 2, 3], [5, 2, 10]); - * // => [1, 3] - */ - function difference() { - var index = -1, - length = arguments.length; - - while (++index < length) { - var value = arguments[index]; - if (isArray(value) || isArguments(value)) { - break; - } - } - return baseDifference(value, baseFlatten(arguments, false, true, ++index)); - } - - /** - * Creates a slice of `array` with `n` elements dropped from the beginning. - * - * @static - * @memberOf _ - * @type Function - * @category Array - * @param {Array} array The array to query. - * @param {number} [n=1] The number of elements to drop. - * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.drop([1, 2, 3]); - * // => [2, 3] - * - * _.drop([1, 2, 3], 2); - * // => [3] - * - * _.drop([1, 2, 3], 5); - * // => [] - * - * _.drop([1, 2, 3], 0); - * // => [1, 2, 3] - */ - function drop(array, n, guard) { - var length = array ? array.length : 0; - if (!length) { - return []; - } - if (guard ? isIterateeCall(array, n, guard) : n == null) { - n = 1; - } - return baseSlice(array, n < 0 ? 0 : n); - } - - /** - * Creates a slice of `array` with `n` elements dropped from the end. - * - * @static - * @memberOf _ - * @type Function - * @category Array - * @param {Array} array The array to query. - * @param {number} [n=1] The number of elements to drop. - * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.dropRight([1, 2, 3]); - * // => [1, 2] - * - * _.dropRight([1, 2, 3], 2); - * // => [1] - * - * _.dropRight([1, 2, 3], 5); - * // => [] - * - * _.dropRight([1, 2, 3], 0); - * // => [1, 2, 3] - */ - function dropRight(array, n, guard) { - var length = array ? array.length : 0; - if (!length) { - return []; - } - if (guard ? isIterateeCall(array, n, guard) : n == null) { - n = 1; - } - n = length - (+n || 0); - return baseSlice(array, 0, n < 0 ? 0 : n); - } - - /** - * Creates a slice of `array` excluding elements dropped from the end. - * Elements are dropped until `predicate` returns falsey. The predicate is - * bound to `thisArg` and invoked with three arguments; (value, index, array). - * - * If a property name is provided for `predicate` the created "_.property" - * style callback returns the property value of the given element. - * - * If an object is provided for `predicate` the created "_.matches" style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @type Function - * @category Array - * @param {Array} array The array to query. - * @param {Function|Object|string} [predicate=_.identity] The function invoked - * per element. - * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.dropRightWhile([1, 2, 3], function(n) { return n > 1; }); - * // => [1] - * - * var users = [ - * { 'user': 'barney', 'status': 'busy', 'active': false }, - * { 'user': 'fred', 'status': 'busy', 'active': true }, - * { 'user': 'pebbles', 'status': 'away', 'active': true } - * ]; - * - * // using the "_.property" callback shorthand - * _.pluck(_.dropRightWhile(users, 'active'), 'user'); - * // => ['barney'] - * - * // using the "_.matches" callback shorthand - * _.pluck(_.dropRightWhile(users, { 'status': 'away' }), 'user'); - * // => ['barney', 'fred'] - */ - function dropRightWhile(array, predicate, thisArg) { - var length = array ? array.length : 0; - if (!length) { - return []; - } - predicate = getCallback(predicate, thisArg, 3); - while (length-- && predicate(array[length], length, array)) {} - return baseSlice(array, 0, length + 1); - } - - /** - * Creates a slice of `array` excluding elements dropped from the beginning. - * Elements are dropped until `predicate` returns falsey. The predicate is - * bound to `thisArg` and invoked with three arguments; (value, index, array). - * - * If a property name is provided for `predicate` the created "_.property" - * style callback returns the property value of the given element. - * - * If an object is provided for `predicate` the created "_.matches" style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @type Function - * @category Array - * @param {Array} array The array to query. - * @param {Function|Object|string} [predicate=_.identity] The function invoked - * per element. - * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.dropWhile([1, 2, 3], function(n) { return n < 3; }); - * // => [3] - * - * var users = [ - * { 'user': 'barney', 'status': 'busy', 'active': true }, - * { 'user': 'fred', 'status': 'busy', 'active': false }, - * { 'user': 'pebbles', 'status': 'away', 'active': true } - * ]; - * - * // using the "_.property" callback shorthand - * _.pluck(_.dropWhile(users, 'active'), 'user'); - * // => ['fred', 'pebbles'] - * - * // using the "_.matches" callback shorthand - * _.pluck(_.dropWhile(users, { 'status': 'busy' }), 'user'); - * // => ['pebbles'] - */ - function dropWhile(array, predicate, thisArg) { - var length = array ? array.length : 0; - if (!length) { - return []; - } - var index = -1; - predicate = getCallback(predicate, thisArg, 3); - while (++index < length && predicate(array[index], index, array)) {} - return baseSlice(array, index); - } - - /** - * This method is like `_.find` except that it returns the index of the first - * element `predicate` returns truthy for, instead of the element itself. - * - * If a property name is provided for `predicate` the created "_.property" - * style callback returns the property value of the given element. - * - * If an object is provided for `predicate` the created "_.matches" style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array to search. - * @param {Function|Object|string} [predicate=_.identity] The function invoked - * per iteration. If a property name or object is provided it is used to - * create a "_.property" or "_.matches" style callback respectively. - * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {number} Returns the index of the found element, else `-1`. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': false }, - * { 'user': 'fred', 'age': 40, 'active': true }, - * { 'user': 'pebbles', 'age': 1, 'active': false } - * ]; - * - * _.findIndex(users, function(chr) { return chr.age < 40; }); - * // => 0 - * - * // using the "_.matches" callback shorthand - * _.findIndex(users, { 'age': 1 }); - * // => 2 - * - * // using the "_.property" callback shorthand - * _.findIndex(users, 'active'); - * // => 1 - */ - function findIndex(array, predicate, thisArg) { - var index = -1, - length = array ? array.length : 0; - - predicate = getCallback(predicate, thisArg, 3); - while (++index < length) { - if (predicate(array[index], index, array)) { - return index; - } - } - return -1; - } - - /** - * This method is like `_.findIndex` except that it iterates over elements - * of `collection` from right to left. - * - * If a property name is provided for `predicate` the created "_.property" - * style callback returns the property value of the given element. - * - * If an object is provided for `predicate` the created "_.matches" style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array to search. - * @param {Function|Object|string} [predicate=_.identity] The function invoked - * per iteration. If a property name or object is provided it is used to - * create a "_.property" or "_.matches" style callback respectively. - * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {number} Returns the index of the found element, else `-1`. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': true }, - * { 'user': 'fred', 'age': 40, 'active': false }, - * { 'user': 'pebbles', 'age': 1, 'active': false } - * ]; - * - * _.findLastIndex(users, function(chr) { return chr.age < 40; }); - * // => 2 - * - * // using the "_.matches" callback shorthand - * _.findLastIndex(users, { 'age': 40 }); - * // => 1 - * - * // using the "_.property" callback shorthand - * _.findLastIndex(users, 'active'); - * // => 0 - */ - function findLastIndex(array, predicate, thisArg) { - var length = array ? array.length : 0; - predicate = getCallback(predicate, thisArg, 3); - while (length--) { - if (predicate(array[length], length, array)) { - return length; - } - } - return -1; - } - - /** - * Gets the first element of `array`. - * - * @static - * @memberOf _ - * @alias head - * @category Array - * @param {Array} array The array to query. - * @returns {*} Returns the first element of `array`. - * @example - * - * _.first([1, 2, 3]); - * // => 1 - * - * _.first([]); - * // => undefined - */ - function first(array) { - return array ? array[0] : undefined; - } - - /** - * Flattens a nested array. If `isDeep` is `true` the array is recursively - * flattened, otherwise it is only flattened a single level. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array to flatten. - * @param {boolean} [isDeep] Specify a deep flatten. - * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. - * @returns {Array} Returns the new flattened array. - * @example - * - * _.flatten([1, [2], [3, [[4]]]]); - * // => [1, 2, 3, [[4]]]; - * - * // using `isDeep` - * _.flatten([1, [2], [3, [[4]]]], true); - * // => [1, 2, 3, 4]; - */ - function flatten(array, isDeep, guard) { - var length = array ? array.length : 0; - if (guard && isIterateeCall(array, isDeep, guard)) { - isDeep = false; - } - return length ? baseFlatten(array, isDeep) : []; - } - - /** - * Recursively flattens a nested array. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array to recursively flatten. - * @returns {Array} Returns the new flattened array. - * @example - * - * _.flattenDeep([1, [2], [3, [[4]]]]); - * // => [1, 2, 3, 4]; - */ - function flattenDeep(array) { - var length = array ? array.length : 0; - return length ? baseFlatten(array, true) : []; - } - - /** - * Gets the index at which the first occurrence of `value` is found in `array` - * using `SameValueZero` for equality comparisons. If `fromIndex` is negative, - * it is used as the offset from the end of `array`. If `array` is sorted - * providing `true` for `fromIndex` performs a faster binary search. - * - * **Note:** `SameValueZero` comparisons are like strict equality comparisons, - * e.g. `===`, except that `NaN` matches `NaN`. See the - * [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) - * for more details. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array to search. - * @param {*} value The value to search for. - * @param {boolean|number} [fromIndex=0] The index to search from or `true` - * to perform a binary search on a sorted array. - * @returns {number} Returns the index of the matched value, else `-1`. - * @example - * - * _.indexOf([1, 2, 3, 1, 2, 3], 2); - * // => 1 - * - * // using `fromIndex` - * _.indexOf([1, 2, 3, 1, 2, 3], 2, 3); - * // => 4 - * - * // performing a binary search - * _.indexOf([4, 4, 5, 5, 6, 6], 5, true); - * // => 2 - */ - function indexOf(array, value, fromIndex) { - var length = array ? array.length : 0; - if (!length) { - return -1; - } - if (typeof fromIndex == 'number') { - fromIndex = fromIndex < 0 ? nativeMax(length + fromIndex, 0) : (fromIndex || 0); - } else if (fromIndex) { - var index = binaryIndex(array, value), - other = array[index]; - - return (value === value ? value === other : other !== other) ? index : -1; - } - return baseIndexOf(array, value, fromIndex); - } - - /** - * Gets all but the last element of `array`. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array to query. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.initial([1, 2, 3]); - * // => [1, 2] - */ - function initial(array) { - return dropRight(array, 1); - } - - /** - * Creates an array of unique values in all provided arrays using `SameValueZero` - * for equality comparisons. - * - * **Note:** `SameValueZero` comparisons are like strict equality comparisons, - * e.g. `===`, except that `NaN` matches `NaN`. See the - * [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) - * for more details. - * - * @static - * @memberOf _ - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @returns {Array} Returns the new array of shared values. - * @example - * - * _.intersection([1, 2, 3], [5, 2, 1, 4], [2, 1]); - * // => [1, 2] - */ - function intersection() { - var args = [], - argsIndex = -1, - argsLength = arguments.length, - caches = [], - indexOf = getIndexOf(), - isCommon = indexOf == baseIndexOf; - - while (++argsIndex < argsLength) { - var value = arguments[argsIndex]; - if (isArray(value) || isArguments(value)) { - args.push(value); - caches.push(isCommon && value.length >= 120 && createCache(argsIndex && value)); - } - } - argsLength = args.length; - var array = args[0], - index = -1, - length = array ? array.length : 0, - result = [], - seen = caches[0]; - - outer: - while (++index < length) { - value = array[index]; - if ((seen ? cacheIndexOf(seen, value) : indexOf(result, value)) < 0) { - argsIndex = argsLength; - while (--argsIndex) { - var cache = caches[argsIndex]; - if ((cache ? cacheIndexOf(cache, value) : indexOf(args[argsIndex], value)) < 0) { - continue outer; - } - } - if (seen) { - seen.push(value); - } - result.push(value); - } - } - return result; - } - - /** - * Gets the last element of `array`. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array to query. - * @returns {*} Returns the last element of `array`. - * @example - * - * _.last([1, 2, 3]); - * // => 3 - */ - function last(array) { - var length = array ? array.length : 0; - return length ? array[length - 1] : undefined; - } - - /** - * This method is like `_.indexOf` except that it iterates over elements of - * `array` from right to left. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array to search. - * @param {*} value The value to search for. - * @param {boolean|number} [fromIndex=array.length-1] The index to search from - * or `true` to perform a binary search on a sorted array. - * @returns {number} Returns the index of the matched value, else `-1`. - * @example - * - * _.lastIndexOf([1, 2, 3, 1, 2, 3], 2); - * // => 4 - * - * // using `fromIndex` - * _.lastIndexOf([1, 2, 3, 1, 2, 3], 2, 3); - * // => 1 - * - * // performing a binary search - * _.lastIndexOf([4, 4, 5, 5, 6, 6], 5, true); - * // => 3 - */ - function lastIndexOf(array, value, fromIndex) { - var length = array ? array.length : 0; - if (!length) { - return -1; - } - var index = length; - if (typeof fromIndex == 'number') { - index = (fromIndex < 0 ? nativeMax(length + fromIndex, 0) : nativeMin(fromIndex || 0, length - 1)) + 1; - } else if (fromIndex) { - index = binaryIndex(array, value, true) - 1; - var other = array[index]; - return (value === value ? value === other : other !== other) ? index : -1; - } - if (value !== value) { - return indexOfNaN(array, index, true); - } - while (index--) { - if (array[index] === value) { - return index; - } - } - return -1; - } - - /** - * Removes all provided values from `array` using `SameValueZero` for equality - * comparisons. - * - * **Notes:** - * - Unlike `_.without`, this method mutates `array`. - * - `SameValueZero` comparisons are like strict equality comparisons, e.g. `===`, - * except that `NaN` matches `NaN`. See the [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) - * for more details. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array to modify. - * @param {...*} [values] The values to remove. - * @returns {Array} Returns `array`. - * @example - * - * var array = [1, 2, 3, 1, 2, 3]; - * _.pull(array, 2, 3); - * console.log(array); - * // => [1, 1] - */ - function pull() { - var array = arguments[0]; - if (!(array && array.length)) { - return array; - } - var index = 0, - indexOf = getIndexOf(), - length = arguments.length; - - while (++index < length) { - var fromIndex = 0, - value = arguments[index]; - - while ((fromIndex = indexOf(array, value, fromIndex)) > -1) { - splice.call(array, fromIndex, 1); - } - } - return array; - } - - /** - * Removes elements from `array` corresponding to the given indexes and returns - * an array of the removed elements. Indexes may be specified as an array of - * indexes or as individual arguments. - * - * **Note:** Unlike `_.at`, this method mutates `array`. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array to modify. - * @param {...(number|number[])} [indexes] The indexes of elements to remove, - * specified as individual indexes or arrays of indexes. - * @returns {Array} Returns the new array of removed elements. - * @example - * - * var array = [5, 10, 15, 20]; - * var evens = _.pullAt(array, [1, 3]); - * - * console.log(array); - * // => [5, 15] - * - * console.log(evens); - * // => [10, 20] - */ - function pullAt(array) { - return basePullAt(array || [], baseFlatten(arguments, false, false, 1)); - } - - /** - * Removes all elements from `array` that `predicate` returns truthy for - * and returns an array of the removed elements. The predicate is bound to - * `thisArg` and invoked with three arguments; (value, index, array). - * - * If a property name is provided for `predicate` the created "_.property" - * style callback returns the property value of the given element. - * - * If an object is provided for `predicate` the created "_.matches" style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * **Note:** Unlike `_.filter`, this method mutates `array`. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array to modify. - * @param {Function|Object|string} [predicate=_.identity] The function invoked - * per iteration. If a property name or object is provided it is used to - * create a "_.property" or "_.matches" style callback respectively. - * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {Array} Returns the new array of removed elements. - * @example - * - * var array = [1, 2, 3, 4]; - * var evens = _.remove(array, function(n) { return n % 2 == 0; }); - * - * console.log(array); - * // => [1, 3] - * - * console.log(evens); - * // => [2, 4] - */ - function remove(array, predicate, thisArg) { - var index = -1, - length = array ? array.length : 0, - result = []; - - predicate = getCallback(predicate, thisArg, 3); - while (++index < length) { - var value = array[index]; - if (predicate(value, index, array)) { - result.push(value); - splice.call(array, index--, 1); - length--; - } - } - return result; - } - - /** - * Gets all but the first element of `array`. - * - * @static - * @memberOf _ - * @alias tail - * @category Array - * @param {Array} array The array to query. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.rest([1, 2, 3]); - * // => [2, 3] - */ - function rest(array) { - return drop(array, 1); - } - - /** - * Creates a slice of `array` from `start` up to, but not including, `end`. - * - * **Note:** This function is used instead of `Array#slice` to support node - * lists in IE < 9 and to ensure dense arrays are returned. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array to slice. - * @param {number} [start=0] The start position. - * @param {number} [end=array.length] The end position. - * @returns {Array} Returns the slice of `array`. - */ - function slice(array, start, end) { - var length = array ? array.length : 0; - if (!length) { - return []; - } - if (end && typeof end != 'number' && isIterateeCall(array, start, end)) { - start = 0; - end = length; - } - return baseSlice(array, start, end); - } - - /** - * Uses a binary search to determine the lowest index at which `value` should - * be inserted into `array` in order to maintain its sort order. If an iteratee - * function is provided it is invoked for `value` and each element of `array` - * to compute their sort ranking. The iteratee is bound to `thisArg` and - * invoked with one argument; (value). - * - * If a property name is provided for `predicate` the created "_.property" - * style callback returns the property value of the given element. - * - * If an object is provided for `predicate` the created "_.matches" style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The sorted array to inspect. - * @param {*} value The value to evaluate. - * @param {Function|Object|string} [iteratee=_.identity] The function invoked - * per iteration. If a property name or object is provided it is used to - * create a "_.property" or "_.matches" style callback respectively. - * @param {*} [thisArg] The `this` binding of `iteratee`. - * @returns {number} Returns the index at which `value` should be inserted - * into `array`. - * @example - * - * _.sortedIndex([30, 50], 40); - * // => 1 - * - * _.sortedIndex([4, 4, 5, 5, 6, 6], 5); - * // => 2 - * - * var dict = { 'data': { 'thirty': 30, 'forty': 40, 'fifty': 50 } }; - * - * // using an iteratee function - * _.sortedIndex(['thirty', 'fifty'], 'forty', function(word) { - * return this.data[word]; - * }, dict); - * // => 1 - * - * // using the "_.property" callback shorthand - * _.sortedIndex([{ 'x': 30 }, { 'x': 50 }], { 'x': 40 }, 'x'); - * // => 1 - */ - function sortedIndex(array, value, iteratee, thisArg) { - var func = getCallback(iteratee); - return (func === baseCallback && iteratee == null) - ? binaryIndex(array, value) - : binaryIndexBy(array, value, func(iteratee, thisArg, 1)); - } - - /** - * This method is like `_.sortedIndex` except that it returns the highest - * index at which `value` should be inserted into `array` in order to - * maintain its sort order. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The sorted array to inspect. - * @param {*} value The value to evaluate. - * @param {Function|Object|string} [iteratee=_.identity] The function invoked - * per iteration. If a property name or object is provided it is used to - * create a "_.property" or "_.matches" style callback respectively. - * @param {*} [thisArg] The `this` binding of `iteratee`. - * @returns {number} Returns the index at which `value` should be inserted - * into `array`. - * @example - * - * _.sortedLastIndex([4, 4, 5, 5, 6, 6], 5); - * // => 4 - */ - function sortedLastIndex(array, value, iteratee, thisArg) { - var func = getCallback(iteratee); - return (func === baseCallback && iteratee == null) - ? binaryIndex(array, value, true) - : binaryIndexBy(array, value, func(iteratee, thisArg, 1), true); - } - - /** - * Creates a slice of `array` with `n` elements taken from the beginning. - * - * @static - * @memberOf _ - * @type Function - * @category Array - * @param {Array} array The array to query. - * @param {number} [n=1] The number of elements to take. - * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.take([1, 2, 3]); - * // => [1] - * - * _.take([1, 2, 3], 2); - * // => [1, 2] - * - * _.take([1, 2, 3], 5); - * // => [1, 2, 3] - * - * _.take([1, 2, 3], 0); - * // => [] - */ - function take(array, n, guard) { - var length = array ? array.length : 0; - if (!length) { - return []; - } - if (guard ? isIterateeCall(array, n, guard) : n == null) { - n = 1; - } - return baseSlice(array, 0, n < 0 ? 0 : n); - } - - /** - * Creates a slice of `array` with `n` elements taken from the end. - * - * @static - * @memberOf _ - * @type Function - * @category Array - * @param {Array} array The array to query. - * @param {number} [n=1] The number of elements to take. - * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.takeRight([1, 2, 3]); - * // => [3] - * - * _.takeRight([1, 2, 3], 2); - * // => [2, 3] - * - * _.takeRight([1, 2, 3], 5); - * // => [1, 2, 3] - * - * _.takeRight([1, 2, 3], 0); - * // => [] - */ - function takeRight(array, n, guard) { - var length = array ? array.length : 0; - if (!length) { - return []; - } - if (guard ? isIterateeCall(array, n, guard) : n == null) { - n = 1; - } - n = length - (+n || 0); - return baseSlice(array, n < 0 ? 0 : n); - } - - /** - * Creates a slice of `array` with elements taken from the end. Elements are - * taken until `predicate` returns falsey. The predicate is bound to `thisArg` - * and invoked with three arguments; (value, index, array). - * - * If a property name is provided for `predicate` the created "_.property" - * style callback returns the property value of the given element. - * - * If an object is provided for `predicate` the created "_.matches" style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @type Function - * @category Array - * @param {Array} array The array to query. - * @param {Function|Object|string} [predicate=_.identity] The function invoked - * per element. - * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.takeRightWhile([1, 2, 3], function(n) { return n > 1; }); - * // => [2, 3] - * - * var users = [ - * { 'user': 'barney', 'status': 'busy', 'active': false }, - * { 'user': 'fred', 'status': 'busy', 'active': true }, - * { 'user': 'pebbles', 'status': 'away', 'active': true } - * ]; - * - * // using the "_.property" callback shorthand - * _.pluck(_.takeRightWhile(users, 'active'), 'user'); - * // => ['fred', 'pebbles'] - * - * // using the "_.matches" callback shorthand - * _.pluck(_.takeRightWhile(users, { 'status': 'away' }), 'user'); - * // => ['pebbles'] - */ - function takeRightWhile(array, predicate, thisArg) { - var length = array ? array.length : 0; - if (!length) { - return []; - } - predicate = getCallback(predicate, thisArg, 3); - while (length-- && predicate(array[length], length, array)) {} - return baseSlice(array, length + 1); - } - - /** - * Creates a slice of `array` with elements taken from the beginning. Elements - * are taken until `predicate` returns falsey. The predicate is bound to - * `thisArg` and invoked with three arguments; (value, index, array). - * - * If a property name is provided for `predicate` the created "_.property" - * style callback returns the property value of the given element. - * - * If an object is provided for `predicate` the created "_.matches" style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @type Function - * @category Array - * @param {Array} array The array to query. - * @param {Function|Object|string} [predicate=_.identity] The function invoked - * per element. - * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.takeWhile([1, 2, 3], function(n) { return n < 3; }); - * // => [1, 2] - * - * var users = [ - * { 'user': 'barney', 'status': 'busy', 'active': true }, - * { 'user': 'fred', 'status': 'busy', 'active': false }, - * { 'user': 'pebbles', 'status': 'away', 'active': true } - * ]; - * - * // using the "_.property" callback shorthand - * _.pluck(_.takeWhile(users, 'active'), 'user'); - * // => ['barney'] - * - * // using the "_.matches" callback shorthand - * _.pluck(_.takeWhile(users, { 'status': 'busy' }), 'user'); - * // => ['barney', 'fred'] - */ - function takeWhile(array, predicate, thisArg) { - var length = array ? array.length : 0; - if (!length) { - return []; - } - var index = -1; - predicate = getCallback(predicate, thisArg, 3); - while (++index < length && predicate(array[index], index, array)) {} - return baseSlice(array, 0, index); - } - - /** - * Creates an array of unique values, in order, of the provided arrays using - * `SameValueZero` for equality comparisons. - * - * **Note:** `SameValueZero` comparisons are like strict equality comparisons, - * e.g. `===`, except that `NaN` matches `NaN`. See the - * [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) - * for more details. - * - * @static - * @memberOf _ - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @returns {Array} Returns the new array of combined values. - * @example - * - * _.union([1, 2, 3], [5, 2, 1, 4], [2, 1]); - * // => [1, 2, 3, 5, 4] - */ - function union() { - return baseUniq(baseFlatten(arguments, false, true)); - } - - /** - * Creates a duplicate-value-free version of an array using `SameValueZero` - * for equality comparisons. Providing `true` for `isSorted` performs a faster - * search algorithm for sorted arrays. If an iteratee function is provided it - * is invoked for each value in the array to generate the criterion by which - * uniqueness is computed. The `iteratee` is bound to `thisArg` and invoked - * with three arguments; (value, index, array). - * - * If a property name is provided for `predicate` the created "_.property" - * style callback returns the property value of the given element. - * - * If an object is provided for `predicate` the created "_.matches" style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * **Note:** `SameValueZero` comparisons are like strict equality comparisons, - * e.g. `===`, except that `NaN` matches `NaN`. See the - * [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) - * for more details. - * - * @static - * @memberOf _ - * @alias unique - * @category Array - * @param {Array} array The array to inspect. - * @param {boolean} [isSorted] Specify the array is sorted. - * @param {Function|Object|string} [iteratee] The function invoked per iteration. - * If a property name or object is provided it is used to create a "_.property" - * or "_.matches" style callback respectively. - * @param {*} [thisArg] The `this` binding of `iteratee`. - * @returns {Array} Returns the new duplicate-value-free array. - * @example - * - * _.uniq([1, 2, 1]); - * // => [1, 2] - * - * // using `isSorted` - * _.uniq([1, 1, 2], true); - * // => [1, 2] - * - * // using an iteratee function - * _.uniq([1, 2.5, 1.5, 2], function(n) { return this.floor(n); }, Math); - * // => [1, 2.5] - * - * // using the "_.property" callback shorthand - * _.uniq([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x'); - * // => [{ 'x': 1 }, { 'x': 2 }] - */ - function uniq(array, isSorted, iteratee, thisArg) { - var length = array ? array.length : 0; - if (!length) { - return []; - } - // Juggle arguments. - if (typeof isSorted != 'boolean' && isSorted != null) { - thisArg = iteratee; - iteratee = isIterateeCall(array, isSorted, thisArg) ? null : isSorted; - isSorted = false; - } - var func = getCallback(); - if (!(func === baseCallback && iteratee == null)) { - iteratee = func(iteratee, thisArg, 3); - } - return (isSorted && getIndexOf() == baseIndexOf) - ? sortedUniq(array, iteratee) - : baseUniq(array, iteratee); - } - - /** - * This method is like `_.zip` except that it accepts an array of grouped - * elements and creates an array regrouping the elements to their pre-`_.zip` - * configuration. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array of grouped elements to process. - * @returns {Array} Returns the new array of regrouped elements. - * @example - * - * var zipped = _.zip(['fred', 'barney'], [30, 40], [true, false]); - * // => [['fred', 30, true], ['barney', 40, false]] - * - * _.unzip(zipped); - * // => [['fred', 'barney'], [30, 40], [true, false]] - */ - function unzip(array) { - var index = -1, - length = (array && array.length && arrayMax(arrayMap(array, getLength))) >>> 0, - result = Array(length); - - while (++index < length) { - result[index] = arrayMap(array, baseProperty(index)); - } - return result; - } - - /** - * Creates an array excluding all provided values using `SameValueZero` for - * equality comparisons. - * - * **Note:** `SameValueZero` comparisons are like strict equality comparisons, - * e.g. `===`, except that `NaN` matches `NaN`. See the - * [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) - * for more details. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array to filter. - * @param {...*} [values] The values to exclude. - * @returns {Array} Returns the new array of filtered values. - * @example - * - * _.without([1, 2, 1, 0, 3, 1, 4], 0, 1); - * // => [2, 3, 4] - */ - function without(array) { - return baseDifference(array, baseSlice(arguments, 1)); - } - - /** - * Creates an array that is the symmetric difference of the provided arrays. - * See [Wikipedia](https://en.wikipedia.org/wiki/Symmetric_difference) for - * more details. - * - * @static - * @memberOf _ - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @returns {Array} Returns the new array of values. - * @example - * - * _.xor([1, 2, 3], [5, 2, 1, 4]); - * // => [3, 5, 4] - * - * _.xor([1, 2, 5], [2, 3, 5], [3, 4, 5]); - * // => [1, 4, 5] - */ - function xor() { - var index = -1, - length = arguments.length; - - while (++index < length) { - var array = arguments[index]; - if (isArray(array) || isArguments(array)) { - var result = result - ? baseDifference(result, array).concat(baseDifference(array, result)) - : array; - } - } - return result ? baseUniq(result) : []; - } - - /** - * Creates an array of grouped elements, the first of which contains the first - * elements of the given arrays, the second of which contains the second elements - * of the given arrays, and so on. - * - * @static - * @memberOf _ - * @category Array - * @param {...Array} [arrays] The arrays to process. - * @returns {Array} Returns the new array of grouped elements. - * @example - * - * _.zip(['fred', 'barney'], [30, 40], [true, false]); - * // => [['fred', 30, true], ['barney', 40, false]] - */ - function zip() { - var length = arguments.length, - array = Array(length); - - while (length--) { - array[length] = arguments[length]; - } - return unzip(array); - } - - /** - * Creates an object composed from arrays of property names and values. Provide - * either a single two dimensional array, e.g. `[[key1, value1], [key2, value2]]` - * or two arrays, one of property names and one of corresponding values. - * - * @static - * @memberOf _ - * @alias object - * @category Array - * @param {Array} props The property names. - * @param {Array} [values=[]] The property values. - * @returns {Object} Returns the new object. - * @example - * - * _.zipObject(['fred', 'barney'], [30, 40]); - * // => { 'fred': 30, 'barney': 40 } - */ - function zipObject(props, values) { - var index = -1, - length = props ? props.length : 0, - result = {}; - - if (length && !values && !isArray(props[0])) { - values = []; - } - while (++index < length) { - var key = props[index]; - if (values) { - result[key] = values[index]; - } else if (key) { - result[key[0]] = key[1]; - } - } - return result; - } - - /*------------------------------------------------------------------------*/ - - /** - * Creates a `lodash` object that wraps `value` with explicit method - * chaining enabled. - * - * @static - * @memberOf _ - * @category Chain - * @param {*} value The value to wrap. - * @returns {Object} Returns the new `lodash` object. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36 }, - * { 'user': 'fred', 'age': 40 }, - * { 'user': 'pebbles', 'age': 1 } - * ]; - * - * var youngest = _.chain(users) - * .sortBy('age') - * .map(function(chr) { return chr.user + ' is ' + chr.age; }) - * .first() - * .value(); - * // => 'pebbles is 1' - */ - function chain(value) { - var result = lodash(value); - result.__chain__ = true; - return result; - } - - /** - * This method invokes `interceptor` and returns `value`. The interceptor is - * bound to `thisArg` and invoked with one argument; (value). The purpose of - * this method is to "tap into" a method chain in order to perform operations - * on intermediate results within the chain. - * - * @static - * @memberOf _ - * @category Chain - * @param {*} value The value to provide to `interceptor`. - * @param {Function} interceptor The function to invoke. - * @param {*} [thisArg] The `this` binding of `interceptor`. - * @returns {*} Returns `value`. - * @example - * - * _([1, 2, 3]) - * .tap(function(array) { array.pop(); }) - * .reverse() - * .value(); - * // => [2, 1] - */ - function tap(value, interceptor, thisArg) { - interceptor.call(thisArg, value); - return value; - } - - /** - * This method is like `_.tap` except that it returns the result of `interceptor`. - * - * @static - * @memberOf _ - * @category Chain - * @param {*} value The value to provide to `interceptor`. - * @param {Function} interceptor The function to invoke. - * @param {*} [thisArg] The `this` binding of `interceptor`. - * @returns {*} Returns the result of `interceptor`. - * @example - * - * _([1, 2, 3]) - * .last() - * .thru(function(value) { return [value]; }) - * .value(); - * // => [3] - */ - function thru(value, interceptor, thisArg) { - return interceptor.call(thisArg, value); - } - - /** - * Enables explicit method chaining on the wrapper object. - * - * @name chain - * @memberOf _ - * @category Chain - * @returns {*} Returns the `lodash` object. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36 }, - * { 'user': 'fred', 'age': 40 } - * ]; - * - * // without explicit chaining - * _(users).first(); - * // => { 'user': 'barney', 'age': 36 } - * - * // with explicit chaining - * _(users).chain() - * .first() - * .pick('user') - * .value(); - * // => { 'user': 'barney' } - */ - function wrapperChain() { - return chain(this); - } - - /** - * Reverses the wrapped array so the first element becomes the last, the - * second element becomes the second to last, and so on. - * - * **Note:** This method mutates the wrapped array. - * - * @name reverse - * @memberOf _ - * @category Chain - * @returns {Object} Returns the new reversed `lodash` object. - * @example - * - * var array = [1, 2, 3]; - * - * _(array).reverse().value() - * // => [3, 2, 1] - * - * console.log(array); - * // => [3, 2, 1] - */ - function wrapperReverse() { - var value = this.__wrapped__; - if (value instanceof LazyWrapper) { - if (this.__actions__.length) { - value = new LazyWrapper(this); - } - return new LodashWrapper(value.reverse()); - } - return this.thru(function(value) { - return value.reverse(); - }); - } - - /** - * Produces the result of coercing the unwrapped value to a string. - * - * @name toString - * @memberOf _ - * @category Chain - * @returns {string} Returns the coerced string value. - * @example - * - * _([1, 2, 3]).toString(); - * // => '1,2,3' - */ - function wrapperToString() { - return (this.value() + ''); - } - - /** - * Executes the chained sequence to extract the unwrapped value. - * - * @name value - * @memberOf _ - * @alias toJSON, valueOf - * @category Chain - * @returns {*} Returns the resolved unwrapped value. - * @example - * - * _([1, 2, 3]).value(); - * // => [1, 2, 3] - */ - function wrapperValue() { - return baseWrapperValue(this.__wrapped__, this.__actions__); - } - - /*------------------------------------------------------------------------*/ - - /** - * Creates an array of elements corresponding to the given keys, or indexes, - * of `collection`. Keys may be specified as individual arguments or as arrays - * of keys. - * - * @static - * @memberOf _ - * @category Collection - * @param {Array|Object|string} collection The collection to iterate over. - * @param {...(number|number[]|string|string[])} [props] The property names - * or indexes of elements to pick, specified individually or in arrays. - * @returns {Array} Returns the new array of picked elements. - * @example - * - * _.at(['a', 'b', 'c', 'd', 'e'], [0, 2, 4]); - * // => ['a', 'c', 'e'] - * - * _.at(['fred', 'barney', 'pebbles'], 0, 2); - * // => ['fred', 'pebbles'] - */ - function at(collection) { - var length = collection ? collection.length : 0; - if (isLength(length)) { - collection = toIterable(collection); - } - return baseAt(collection, baseFlatten(arguments, false, false, 1)); - } - - /** - * Checks if `value` is in `collection` using `SameValueZero` for equality - * comparisons. If `fromIndex` is negative, it is used as the offset from - * the end of `collection`. - * - * **Note:** `SameValueZero` comparisons are like strict equality comparisons, - * e.g. `===`, except that `NaN` matches `NaN`. See the - * [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) - * for more details. - * - * @static - * @memberOf _ - * @alias contains, include - * @category Collection - * @param {Array|Object|string} collection The collection to search. - * @param {*} target The value to search for. - * @param {number} [fromIndex=0] The index to search from. - * @returns {boolean} Returns `true` if a matching element is found, else `false`. - * @example - * - * _.includes([1, 2, 3], 1); - * // => true - * - * _.includes([1, 2, 3], 1, 2); - * // => false - * - * _.includes({ 'user': 'fred', 'age': 40 }, 'fred'); - * // => true - * - * _.includes('pebbles', 'eb'); - * // => true - */ - function includes(collection, target, fromIndex) { - var length = collection ? collection.length : 0; - if (!isLength(length)) { - collection = values(collection); - length = collection.length; - } - if (!length) { - return false; - } - if (typeof fromIndex == 'number') { - fromIndex = fromIndex < 0 ? nativeMax(length + fromIndex, 0) : (fromIndex || 0); - } else { - fromIndex = 0; - } - return (typeof collection == 'string' || !isArray(collection) && isString(collection)) - ? (fromIndex < length && collection.indexOf(target, fromIndex) > -1) - : (getIndexOf(collection, target, fromIndex) > -1); - } - - /** - * Creates an object composed of keys generated from the results of running - * each element of `collection` through `iteratee`. The corresponding value - * of each key is the number of times the key was returned by `iteratee`. - * The `iteratee` is bound to `thisArg` and invoked with three arguments; - * (value, index|key, collection). - * - * If a property name is provided for `predicate` the created "_.property" - * style callback returns the property value of the given element. - * - * If an object is provided for `predicate` the created "_.matches" style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @category Collection - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function|Object|string} [iteratee=_.identity] The function invoked - * per iteration. If a property name or object is provided it is used to - * create a "_.property" or "_.matches" style callback respectively. - * @param {*} [thisArg] The `this` binding of `iteratee`. - * @returns {Object} Returns the composed aggregate object. - * @example - * - * _.countBy([4.3, 6.1, 6.4], function(n) { return Math.floor(n); }); - * // => { '4': 1, '6': 2 } - * - * _.countBy([4.3, 6.1, 6.4], function(n) { return this.floor(n); }, Math); - * // => { '4': 1, '6': 2 } - * - * _.countBy(['one', 'two', 'three'], 'length'); - * // => { '3': 2, '5': 1 } - */ - var countBy = createAggregator(function(result, value, key) { - hasOwnProperty.call(result, key) ? ++result[key] : (result[key] = 1); - }); - - /** - * Checks if `predicate` returns truthy for **all** elements of `collection`. - * The predicate is bound to `thisArg` and invoked with three arguments; - * (value, index|key, collection). - * - * If a property name is provided for `predicate` the created "_.property" - * style callback returns the property value of the given element. - * - * If an object is provided for `predicate` the created "_.matches" style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @alias all - * @category Collection - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function|Object|string} [predicate=_.identity] The function invoked - * per iteration. If a property name or object is provided it is used to - * create a "_.property" or "_.matches" style callback respectively. - * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {boolean} Returns `true` if all elements pass the predicate check, - * else `false`. - * @example - * - * _.every([true, 1, null, 'yes']); - * // => false - * - * var users = [ - * { 'user': 'barney', 'age': 36 }, - * { 'user': 'fred', 'age': 40 } - * ]; - * - * // using the "_.property" callback shorthand - * _.every(users, 'age'); - * // => true - * - * // using the "_.matches" callback shorthand - * _.every(users, { 'age': 36 }); - * // => false - */ - function every(collection, predicate, thisArg) { - var func = isArray(collection) ? arrayEvery : baseEvery; - if (typeof predicate != 'function' || typeof thisArg != 'undefined') { - predicate = getCallback(predicate, thisArg, 3); - } - return func(collection, predicate); - } - - /** - * Iterates over elements of `collection`, returning an array of all elements - * `predicate` returns truthy for. The predicate is bound to `thisArg` and - * invoked with three arguments; (value, index|key, collection). - * - * If a property name is provided for `predicate` the created "_.property" - * style callback returns the property value of the given element. - * - * If an object is provided for `predicate` the created "_.matches" style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @alias select - * @category Collection - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function|Object|string} [predicate=_.identity] The function invoked - * per iteration. If a property name or object is provided it is used to - * create a "_.property" or "_.matches" style callback respectively. - * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {Array} Returns the new filtered array. - * @example - * - * var evens = _.filter([1, 2, 3, 4], function(n) { return n % 2 == 0; }); - * // => [2, 4] - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': false }, - * { 'user': 'fred', 'age': 40, 'active': true } - * ]; - * - * // using the "_.property" callback shorthand - * _.pluck(_.filter(users, 'active'), 'user'); - * // => ['fred'] - * - * // using the "_.matches" callback shorthand - * _.pluck(_.filter(users, { 'age': 36 }), 'user'); - * // => ['barney'] - */ - function filter(collection, predicate, thisArg) { - var func = isArray(collection) ? arrayFilter : baseFilter; - predicate = getCallback(predicate, thisArg, 3); - return func(collection, predicate); - } - - /** - * Iterates over elements of `collection`, returning the first element - * `predicate` returns truthy for. The predicate is bound to `thisArg` and - * invoked with three arguments; (value, index|key, collection). - * - * If a property name is provided for `predicate` the created "_.property" - * style callback returns the property value of the given element. - * - * If an object is provided for `predicate` the created "_.matches" style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @alias detect - * @category Collection - * @param {Array|Object|string} collection The collection to search. - * @param {Function|Object|string} [predicate=_.identity] The function invoked - * per iteration. If a property name or object is provided it is used to - * create a "_.property" or "_.matches" style callback respectively. - * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {*} Returns the matched element, else `undefined`. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': false }, - * { 'user': 'fred', 'age': 40, 'active': true }, - * { 'user': 'pebbles', 'age': 1, 'active': false } - * ]; - * - * _.result(_.find(users, function(chr) { return chr.age < 40; }), 'user'); - * // => 'barney' - * - * // using the "_.matches" callback shorthand - * _.result(_.find(users, { 'age': 1 }), 'user'); - * // => 'pebbles' - * - * // using the "_.property" callback shorthand - * _.result(_.find(users, 'active'), 'user'); - * // => 'fred' - */ - function find(collection, predicate, thisArg) { - if (isArray(collection)) { - var index = findIndex(collection, predicate, thisArg); - return index > -1 ? collection[index] : undefined; - } - predicate = getCallback(predicate, thisArg, 3); - return baseFind(collection, predicate, baseEach); - } - - /** - * This method is like `_.find` except that it iterates over elements of - * `collection` from right to left. - * - * @static - * @memberOf _ - * @category Collection - * @param {Array|Object|string} collection The collection to search. - * @param {Function|Object|string} [predicate=_.identity] The function invoked - * per iteration. If a property name or object is provided it is used to - * create a "_.property" or "_.matches" style callback respectively. - * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {*} Returns the matched element, else `undefined`. - * @example - * - * _.findLast([1, 2, 3, 4], function(n) { return n % 2 == 1; }); - * // => 3 - */ - function findLast(collection, predicate, thisArg) { - predicate = getCallback(predicate, thisArg, 3); - return baseFind(collection, predicate, baseEachRight); - } - - /** - * Performs a deep comparison between each element in `collection` and the - * source object, returning the first element that has equivalent property - * values. - * - * @static - * @memberOf _ - * @category Collection - * @param {Array|Object|string} collection The collection to search. - * @param {Object} source The object of property values to match. - * @returns {*} Returns the matched element, else `undefined`. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'status': 'busy' }, - * { 'user': 'fred', 'age': 40, 'status': 'busy' } - * ]; - * - * _.result(_.findWhere(users, { 'status': 'busy' }), 'user'); - * // => 'barney' - * - * _.result(_.findWhere(users, { 'age': 40 }), 'user'); - * // => 'fred' - */ - function findWhere(collection, source) { - return find(collection, baseMatches(source)); - } - - /** - * Iterates over elements of `collection` invoking `iteratee` for each element. - * The `iteratee` is bound to `thisArg` and invoked with three arguments; - * (value, index|key, collection). Iterator functions may exit iteration early - * by explicitly returning `false`. - * - * **Note:** As with other "Collections" methods, objects with a `length` property - * are iterated like arrays. To avoid this behavior `_.forIn` or `_.forOwn` - * may be used for object iteration. - * - * @static - * @memberOf _ - * @alias each - * @category Collection - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @param {*} [thisArg] The `this` binding of `iteratee`. - * @returns {Array|Object|string} Returns `collection`. - * @example - * - * _([1, 2, 3]).forEach(function(n) { console.log(n); }).value(); - * // => logs each value from left to right and returns the array - * - * _.forEach({ 'one': 1, 'two': 2, 'three': 3 }, function(n, key) { console.log(n, key); }); - * // => logs each value-key pair and returns the object (iteration order is not guaranteed) - */ - function forEach(collection, iteratee, thisArg) { - return (typeof iteratee == 'function' && typeof thisArg == 'undefined' && isArray(collection)) - ? arrayEach(collection, iteratee) - : baseEach(collection, bindCallback(iteratee, thisArg, 3)); - } - - /** - * This method is like `_.forEach` except that it iterates over elements of - * `collection` from right to left. - * - * @static - * @memberOf _ - * @alias eachRight - * @category Collection - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @param {*} [thisArg] The `this` binding of `iteratee`. - * @returns {Array|Object|string} Returns `collection`. - * @example - * - * _([1, 2, 3]).forEachRight(function(n) { console.log(n); }).join(','); - * // => logs each value from right to left and returns the array - */ - function forEachRight(collection, iteratee, thisArg) { - return (typeof iteratee == 'function' && typeof thisArg == 'undefined' && isArray(collection)) - ? arrayEachRight(collection, iteratee) - : baseEachRight(collection, bindCallback(iteratee, thisArg, 3)); - } - - /** - * Creates an object composed of keys generated from the results of running - * each element of `collection` through `iteratee`. The corresponding value - * of each key is an array of the elements responsible for generating the key. - * The `iteratee` is bound to `thisArg` and invoked with three arguments; - * (value, index|key, collection). - * - * If a property name is provided for `predicate` the created "_.property" - * style callback returns the property value of the given element. - * - * If an object is provided for `predicate` the created "_.matches" style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @category Collection - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function|Object|string} [iteratee=_.identity] The function invoked - * per iteration. If a property name or object is provided it is used to - * create a "_.property" or "_.matches" style callback respectively. - * @param {*} [thisArg] The `this` binding of `iteratee`. - * @returns {Object} Returns the composed aggregate object. - * @example - * - * _.groupBy([4.2, 6.1, 6.4], function(n) { return Math.floor(n); }); - * // => { '4': [4.2], '6': [6.1, 6.4] } - * - * _.groupBy([4.2, 6.1, 6.4], function(n) { return this.floor(n); }, Math); - * // => { '4': [4.2], '6': [6.1, 6.4] } - * - * // using the "_.property" callback shorthand - * _.groupBy(['one', 'two', 'three'], 'length'); - * // => { '3': ['one', 'two'], '5': ['three'] } - */ - var groupBy = createAggregator(function(result, value, key) { - if (hasOwnProperty.call(result, key)) { - result[key].push(value); - } else { - result[key] = [value]; - } - }); - - /** - * Creates an object composed of keys generated from the results of running - * each element of `collection` through `iteratee`. The corresponding value - * of each key is the last element responsible for generating the key. The - * iteratee function is bound to `thisArg` and invoked with three arguments; - * (value, index|key, collection). - * - * If a property name is provided for `predicate` the created "_.property" - * style callback returns the property value of the given element. - * - * If an object is provided for `predicate` the created "_.matches" style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @category Collection - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function|Object|string} [iteratee=_.identity] The function invoked - * per iteration. If a property name or object is provided it is used to - * create a "_.property" or "_.matches" style callback respectively. - * @param {*} [thisArg] The `this` binding of `iteratee`. - * @returns {Object} Returns the composed aggregate object. - * @example - * - * var keyData = [ - * { 'dir': 'left', 'code': 97 }, - * { 'dir': 'right', 'code': 100 } - * ]; - * - * _.indexBy(keyData, 'dir'); - * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } } - * - * _.indexBy(keyData, function(object) { return String.fromCharCode(object.code); }); - * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } } - * - * _.indexBy(keyData, function(object) { return this.fromCharCode(object.code); }, String); - * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } } - */ - var indexBy = createAggregator(function(result, value, key) { - result[key] = value; - }); - - /** - * Invokes the method named by `methodName` on each element in `collection`, - * returning an array of the results of each invoked method. Any additional - * arguments are provided to each invoked method. If `methodName` is a function - * it is invoked for, and `this` bound to, each element in `collection`. - * - * @static - * @memberOf _ - * @category Collection - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function|string} methodName The name of the method to invoke or - * the function invoked per iteration. - * @param {...*} [args] The arguments to invoke the method with. - * @returns {Array} Returns the array of results. - * @example - * - * _.invoke([[5, 1, 7], [3, 2, 1]], 'sort'); - * // => [[1, 5, 7], [1, 2, 3]] - * - * _.invoke([123, 456], String.prototype.split, ''); - * // => [['1', '2', '3'], ['4', '5', '6']] - */ - function invoke(collection, methodName) { - return baseInvoke(collection, methodName, baseSlice(arguments, 2)); - } - - /** - * Creates an array of values by running each element in `collection` through - * `iteratee`. The `iteratee` is bound to `thisArg` and invoked with three - * arguments; (value, index|key, collection). - * - * If a property name is provided for `predicate` the created "_.property" - * style callback returns the property value of the given element. - * - * If an object is provided for `predicate` the created "_.matches" style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @alias collect - * @category Collection - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function|Object|string} [iteratee=_.identity] The function invoked - * per iteration. If a property name or object is provided it is used to - * create a "_.property" or "_.matches" style callback respectively. - * @param {*} [thisArg] The `this` binding of `iteratee`. - * @returns {Array} Returns the new mapped array. - * @example - * - * _.map([1, 2, 3], function(n) { return n * 3; }); - * // => [3, 6, 9] - * - * _.map({ 'one': 1, 'two': 2, 'three': 3 }, function(n) { return n * 3; }); - * // => [3, 6, 9] (iteration order is not guaranteed) - * - * var users = [ - * { 'user': 'barney' }, - * { 'user': 'fred' } - * ]; - * - * // using the "_.property" callback shorthand - * _.map(users, 'user'); - * // => ['barney', 'fred'] - */ - function map(collection, iteratee, thisArg) { - var func = isArray(collection) ? arrayMap : baseMap; - iteratee = getCallback(iteratee, thisArg, 3); - return func(collection, iteratee); - } - - /** - * Gets the maximum value of `collection`. If `collection` is empty or falsey - * `-Infinity` is returned. If an iteratee function is provided it is invoked - * for each value in `collection` to generate the criterion by which the value - * is ranked. The `iteratee` is bound to `thisArg` and invoked with three - * arguments; (value, index, collection). - * - * If a property name is provided for `predicate` the created "_.property" - * style callback returns the property value of the given element. - * - * If an object is provided for `predicate` the created "_.matches" style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @category Collection - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function|Object|string} [iteratee] The function invoked per iteration. - * If a property name or object is provided it is used to create a "_.property" - * or "_.matches" style callback respectively. - * @param {*} [thisArg] The `this` binding of `iteratee`. - * @returns {*} Returns the maximum value. - * @example - * - * _.max([4, 2, 8, 6]); - * // => 8 - * - * _.max([]); - * // => -Infinity - * - * var users = [ - * { 'user': 'barney', 'age': 36 }, - * { 'user': 'fred', 'age': 40 } - * ]; - * - * _.max(users, function(chr) { return chr.age; }); - * // => { 'user': 'fred', 'age': 40 }; - * - * // using the "_.property" callback shorthand - * _.max(users, 'age'); - * // => { 'user': 'fred', 'age': 40 }; - */ - var max = createExtremum(arrayMax); - - /** - * Gets the minimum value of `collection`. If `collection` is empty or falsey - * `Infinity` is returned. If an iteratee function is provided it is invoked - * for each value in `collection` to generate the criterion by which the value - * is ranked. The `iteratee` is bound to `thisArg` and invoked with three - * arguments; (value, index, collection). - * - * If a property name is provided for `predicate` the created "_.property" - * style callback returns the property value of the given element. - * - * If an object is provided for `predicate` the created "_.matches" style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @category Collection - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function|Object|string} [iteratee] The function invoked per iteration. - * If a property name or object is provided it is used to create a "_.property" - * or "_.matches" style callback respectively. - * @param {*} [thisArg] The `this` binding of `iteratee`. - * @returns {*} Returns the minimum value. - * @example - * - * _.min([4, 2, 8, 6]); - * // => 2 - * - * _.min([]); - * // => Infinity - * - * var users = [ - * { 'user': 'barney', 'age': 36 }, - * { 'user': 'fred', 'age': 40 } - * ]; - * - * _.min(users, function(chr) { return chr.age; }); - * // => { 'user': 'barney', 'age': 36 }; - * - * // using the "_.property" callback shorthand - * _.min(users, 'age'); - * // => { 'user': 'barney', 'age': 36 }; - */ - var min = createExtremum(arrayMin, true); - - /** - * Creates an array of elements split into two groups, the first of which - * contains elements `predicate` returns truthy for, while the second of which - * contains elements `predicate` returns falsey for. The predicate is bound - * to `thisArg` and invoked with three arguments; (value, index|key, collection). - * - * If a property name is provided for `predicate` the created "_.property" - * style callback returns the property value of the given element. - * - * If an object is provided for `predicate` the created "_.matches" style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @category Collection - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function|Object|string} [predicate=_.identity] The function invoked - * per iteration. If a property name or object is provided it is used to - * create a "_.property" or "_.matches" style callback respectively. - * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {Array} Returns the array of grouped elements. - * @example - * - * _.partition([1, 2, 3], function(n) { return n % 2; }); - * // => [[1, 3], [2]] - * - * _.partition([1.2, 2.3, 3.4], function(n) { return this.floor(n) % 2; }, Math); - * // => [[1, 3], [2]] - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': false }, - * { 'user': 'fred', 'age': 40, 'active': true }, - * { 'user': 'pebbles', 'age': 1, 'active': false } - * ]; - * - * // using the "_.matches" callback shorthand - * _.map(_.partition(users, { 'age': 1 }), function(array) { return _.pluck(array, 'user'); }); - * // => [['pebbles'], ['barney', 'fred']] - * - * // using the "_.property" callback shorthand - * _.map(_.partition(users, 'active'), function(array) { return _.pluck(array, 'user'); }); - * // => [['fred'], ['barney', 'pebbles']] - */ - var partition = createAggregator(function(result, value, key) { - result[key ? 0 : 1].push(value); - }, function() { return [[], []]; }); - - /** - * Gets the value of `key` from all elements in `collection`. - * - * @static - * @memberOf _ - * @category Collection - * @param {Array|Object|string} collection The collection to iterate over. - * @param {string} key The key of the property to pluck. - * @returns {Array} Returns the property values. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36 }, - * { 'user': 'fred', 'age': 40 } - * ]; - * - * _.pluck(users, 'user'); - * // => ['barney', 'fred'] - * - * var userIndex = _.indexBy(users, 'user'); - * _.pluck(userIndex, 'age'); - * // => [36, 40] (iteration order is not guaranteed) - */ - function pluck(collection, key) { - return map(collection, baseProperty(key + '')); - } - - /** - * Reduces `collection` to a value which is the accumulated result of running - * each element in `collection` through `iteratee`, where each successive - * invocation is supplied the return value of the previous. If `accumulator` - * is not provided the first element of `collection` is used as the initial - * value. The `iteratee` is bound to `thisArg`and invoked with four arguments; - * (accumulator, value, index|key, collection). - * - * @static - * @memberOf _ - * @alias foldl, inject - * @category Collection - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @param {*} [accumulator] The initial value. - * @param {*} [thisArg] The `this` binding of `iteratee`. - * @returns {*} Returns the accumulated value. - * @example - * - * var sum = _.reduce([1, 2, 3], function(sum, n) { return sum + n; }); - * // => 6 - * - * var mapped = _.reduce({ 'a': 1, 'b': 2, 'c': 3 }, function(result, n, key) { - * result[key] = n * 3; - * return result; - * }, {}); - * // => { 'a': 3, 'b': 6, 'c': 9 } (iteration order is not guaranteed) - */ - function reduce(collection, iteratee, accumulator, thisArg) { - var func = isArray(collection) ? arrayReduce : baseReduce; - return func(collection, getCallback(iteratee, thisArg, 4), accumulator, arguments.length < 3, baseEach); - } - - /** - * This method is like `_.reduce` except that it iterates over elements of - * `collection` from right to left. - * - * @static - * @memberOf _ - * @alias foldr - * @category Collection - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @param {*} [accumulator] The initial value. - * @param {*} [thisArg] The `this` binding of `iteratee`. - * @returns {*} Returns the accumulated value. - * @example - * - * var array = [[0, 1], [2, 3], [4, 5]]; - * _.reduceRight(array, function(flattened, other) { return flattened.concat(other); }, []); - * // => [4, 5, 2, 3, 0, 1] - */ - function reduceRight(collection, iteratee, accumulator, thisArg) { - var func = isArray(collection) ? arrayReduceRight : baseReduce; - return func(collection, getCallback(iteratee, thisArg, 4), accumulator, arguments.length < 3, baseEachRight); - } - - /** - * The opposite of `_.filter`; this method returns the elements of `collection` - * that `predicate` does **not** return truthy for. - * - * If a property name is provided for `predicate` the created "_.property" - * style callback returns the property value of the given element. - * - * If an object is provided for `predicate` the created "_.matches" style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @category Collection - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function|Object|string} [predicate=_.identity] The function invoked - * per iteration. If a property name or object is provided it is used to - * create a "_.property" or "_.matches" style callback respectively. - * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {Array} Returns the new filtered array. - * @example - * - * var odds = _.reject([1, 2, 3, 4], function(n) { return n % 2 == 0; }); - * // => [1, 3] - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': false }, - * { 'user': 'fred', 'age': 40, 'active': true } - * ]; - * - * // using the "_.property" callback shorthand - * _.pluck(_.reject(users, 'active'), 'user'); - * // => ['barney'] - * - * // using the "_.matches" callback shorthand - * _.pluck(_.reject(users, { 'age': 36 }), 'user'); - * // => ['fred'] - */ - function reject(collection, predicate, thisArg) { - var func = isArray(collection) ? arrayFilter : baseFilter; - predicate = getCallback(predicate, thisArg, 3); - return func(collection, function(value, index, collection) { - return !predicate(value, index, collection); - }); - } - - /** - * Gets a random element or `n` random elements from a collection. - * - * @static - * @memberOf _ - * @category Collection - * @param {Array|Object|string} collection The collection to sample. - * @param {number} [n] The number of elements to sample. - * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. - * @returns {*} Returns the random sample(s). - * @example - * - * _.sample([1, 2, 3, 4]); - * // => 2 - * - * _.sample([1, 2, 3, 4], 2); - * // => [3, 1] - */ - function sample(collection, n, guard) { - if (guard ? isIterateeCall(collection, n, guard) : n == null) { - collection = toIterable(collection); - var length = collection.length; - return length > 0 ? collection[baseRandom(0, length - 1)] : undefined; - } - var result = shuffle(collection); - result.length = nativeMin(n < 0 ? 0 : (+n || 0), result.length); - return result; - } - - /** - * Creates an array of shuffled values, using a version of the Fisher-Yates - * shuffle. See [Wikipedia](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle) - * for more details. - * - * @static - * @memberOf _ - * @category Collection - * @param {Array|Object|string} collection The collection to shuffle. - * @returns {Array} Returns the new shuffled array. - * @example - * - * _.shuffle([1, 2, 3, 4]); - * // => [4, 1, 3, 2] - */ - function shuffle(collection) { - collection = toIterable(collection); - - var index = -1, - length = collection.length, - result = Array(length); - - while (++index < length) { - var rand = baseRandom(0, index); - if (index != rand) { - result[index] = result[rand]; - } - result[rand] = collection[index]; - } - return result; - } - - /** - * Gets the size of `collection` by returning `collection.length` for - * array-like values or the number of own enumerable properties for objects. - * - * @static - * @memberOf _ - * @category Collection - * @param {Array|Object|string} collection The collection to inspect. - * @returns {number} Returns the size of `collection`. - * @example - * - * _.size([1, 2]); - * // => 2 - * - * _.size({ 'one': 1, 'two': 2, 'three': 3 }); - * // => 3 - * - * _.size('pebbles'); - * // => 7 - */ - function size(collection) { - var length = collection ? collection.length : 0; - return isLength(length) ? length : keys(collection).length; - } - - /** - * Checks if `predicate` returns truthy for **any** element of `collection`. - * The function returns as soon as it finds a passing value and does not iterate - * over the entire collection. The predicate is bound to `thisArg` and invoked - * with three arguments; (value, index|key, collection). - * - * If a property name is provided for `predicate` the created "_.property" - * style callback returns the property value of the given element. - * - * If an object is provided for `predicate` the created "_.matches" style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @alias any - * @category Collection - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function|Object|string} [predicate=_.identity] The function invoked - * per iteration. If a property name or object is provided it is used to - * create a "_.property" or "_.matches" style callback respectively. - * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {boolean} Returns `true` if any element passes the predicate check, - * else `false`. - * @example - * - * _.some([null, 0, 'yes', false], Boolean); - * // => true - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': false }, - * { 'user': 'fred', 'age': 40, 'active': true } - * ]; - * - * // using the "_.property" callback shorthand - * _.some(users, 'active'); - * // => true - * - * // using the "_.matches" callback shorthand - * _.some(users, { 'age': 1 }); - * // => false - */ - function some(collection, predicate, thisArg) { - var func = isArray(collection) ? arraySome : baseSome; - if (typeof predicate != 'function' || typeof thisArg != 'undefined') { - predicate = getCallback(predicate, thisArg, 3); - } - return func(collection, predicate); - } - - /** - * Creates an array of elements, sorted in ascending order by the results of - * running each element in a collection through `iteratee`. This method performs - * a stable sort, that is, it preserves the original sort order of equal elements. - * The `iteratee` is bound to `thisArg` and invoked with three arguments; - * (value, index|key, collection). - * - * If a property name is provided for `predicate` the created "_.property" - * style callback returns the property value of the given element. - * - * If an object is provided for `predicate` the created "_.matches" style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @category Collection - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Array|Function|Object|string} [iteratee=_.identity] The function - * invoked per iteration. If a property name or an object is provided it is - * used to create a "_.property" or "_.matches" style callback respectively. - * @param {*} [thisArg] The `this` binding of `iteratee`. - * @returns {Array} Returns the new sorted array. - * @example - * - * _.sortBy([1, 2, 3], function(n) { return Math.sin(n); }); - * // => [3, 1, 2] - * - * _.sortBy([1, 2, 3], function(n) { return this.sin(n); }, Math); - * // => [3, 1, 2] - * - * var users = [ - * { 'user': 'fred' }, - * { 'user': 'pebbles' }, - * { 'user': 'barney' } - * ]; - * - * // using the "_.property" callback shorthand - * _.pluck(_.sortBy(users, 'user'), 'user'); - * // => ['barney', 'fred', 'pebbles'] - */ - function sortBy(collection, iteratee, thisArg) { - var index = -1, - length = collection ? collection.length : 0, - result = isLength(length) ? Array(length) : []; - - if (thisArg && isIterateeCall(collection, iteratee, thisArg)) { - iteratee = null; - } - iteratee = getCallback(iteratee, thisArg, 3); - baseEach(collection, function(value, key, collection) { - result[++index] = { 'criteria': iteratee(value, key, collection), 'index': index, 'value': value }; - }); - return baseSortBy(result, compareAscending); - } - - /** - * This method is like `_.sortBy` except that it sorts by property names - * instead of an iteratee function. - * - * @static - * @memberOf _ - * @category Collection - * @param {Array|Object|string} collection The collection to iterate over. - * @param {...(string|string[])} props The property names to sort by, - * specified as individual property names or arrays of property names. - * @returns {Array} Returns the new sorted array. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36 }, - * { 'user': 'fred', 'age': 40 }, - * { 'user': 'barney', 'age': 26 }, - * { 'user': 'fred', 'age': 30 } - * ]; - * - * _.map(_.sortByAll(users, ['user', 'age']), _.values); - * // => [['barney', 26], ['barney', 36], ['fred', 30], ['fred', 40]] - */ - function sortByAll(collection) { - var args = arguments; - if (args.length > 3 && isIterateeCall(args[1], args[2], args[3])) { - args = [collection, args[1]]; - } - var index = -1, - length = collection ? collection.length : 0, - props = baseFlatten(args, false, false, 1), - result = isLength(length) ? Array(length) : []; - - baseEach(collection, function(value, key, collection) { - var length = props.length, - criteria = Array(length); - - while (length--) { - criteria[length] = value == null ? undefined : value[props[length]]; - } - result[++index] = { 'criteria': criteria, 'index': index, 'value': value }; - }); - return baseSortBy(result, compareMultipleAscending); - } - - /** - * Performs a deep comparison between each element in `collection` and the - * source object, returning an array of all elements that have equivalent - * property values. - * - * @static - * @memberOf _ - * @category Collection - * @param {Array|Object|string} collection The collection to search. - * @param {Object} source The object of property values to match. - * @returns {Array} Returns the new filtered array. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'status': 'busy', 'pets': ['hoppy'] }, - * { 'user': 'fred', 'age': 40, 'status': 'busy', 'pets': ['baby puss', 'dino'] } - * ]; - * - * _.pluck(_.where(users, { 'age': 36 }), 'user'); - * // => ['barney'] - * - * _.pluck(_.where(users, { 'pets': ['dino'] }), 'user'); - * // => ['fred'] - * - * _.pluck(_.where(users, { 'status': 'busy' }), 'user'); - * // => ['barney', 'fred'] - */ - function where(collection, source) { - return filter(collection, baseMatches(source)); - } - - /*------------------------------------------------------------------------*/ - - /** - * Gets the number of milliseconds that have elapsed since the Unix epoch - * (1 January 1970 00:00:00 UTC). - * - * @static - * @memberOf _ - * @category Date - * @example - * - * _.defer(function(stamp) { console.log(_.now() - stamp); }, _.now()); - * // => logs the number of milliseconds it took for the deferred function to be invoked - */ - var now = nativeNow || function() { - return new Date().getTime(); - }; - - /*------------------------------------------------------------------------*/ - - /** - * The opposite of `_.before`; this method creates a function that invokes - * `func` once it is called `n` or more times. - * - * @static - * @memberOf _ - * @category Function - * @param {number} n The number of calls before `func` is invoked. - * @param {Function} func The function to restrict. - * @returns {Function} Returns the new restricted function. - * @example - * - * var saves = ['profile', 'settings']; - * - * var done = _.after(saves.length, function() { - * console.log('done saving!'); - * }); - * - * _.forEach(saves, function(type) { - * asyncSave({ 'type': type, 'complete': done }); - * }); - * // => logs 'done saving!' after the two async saves have completed - */ - function after(n, func) { - if (!isFunction(func)) { - if (isFunction(n)) { - var temp = n; - n = func; - func = temp; - } else { - throw new TypeError(FUNC_ERROR_TEXT); - } - } - n = nativeIsFinite(n = +n) ? n : 0; - return function() { - if (--n < 1) { - return func.apply(this, arguments); - } - }; - } - - /** - * Creates a function that accepts up to `n` arguments ignoring any - * additional arguments. - * - * @static - * @memberOf _ - * @category Function - * @param {Function} func The function to cap arguments for. - * @param {number} [n=func.length] The arity cap. - * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. - * @returns {Function} Returns the new function. - * @example - * - * _.map(['6', '8', '10'], _.ary(parseInt, 1)); - * // => [6, 8, 10] - */ - function ary(func, n, guard) { - if (guard && isIterateeCall(func, n, guard)) { - n = null; - } - n = (func && n == null) ? func.length : nativeMax(+n || 0, 0); - return createWrapper(func, ARY_FLAG, null, null, null, null, n); - } - - /** - * Creates a function that invokes `func`, with the `this` binding and arguments - * of the created function, while it is called less than `n` times. Subsequent - * calls to the created function return the result of the last `func` invocation. - * - * @static - * @memberOf _ - * @category Function - * @param {number} n The number of calls at which `func` is no longer invoked. - * @param {Function} func The function to restrict. - * @returns {Function} Returns the new restricted function. - * @example - * - * jQuery('#add').on('click', _.before(5, addContactToList)); - * // => allows adding up to 4 contacts to the list - */ - function before(n, func) { - var result; - if (!isFunction(func)) { - if (isFunction(n)) { - var temp = n; - n = func; - func = temp; - } else { - throw new TypeError(FUNC_ERROR_TEXT); - } - } - return function() { - if (--n > 0) { - result = func.apply(this, arguments); - } else { - func = null; - } - return result; - }; - } - - /** - * Creates a function that invokes `func` with the `this` binding of `thisArg` - * and prepends any additional `_.bind` arguments to those provided to the - * bound function. - * - * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds, - * may be used as a placeholder for partially applied arguments. - * - * **Note:** Unlike native `Function#bind` this method does not set the `length` - * property of bound functions. - * - * @static - * @memberOf _ - * @category Function - * @param {Function} func The function to bind. - * @param {*} thisArg The `this` binding of `func`. - * @param {...*} [args] The arguments to be partially applied. - * @returns {Function} Returns the new bound function. - * @example - * - * var greet = function(greeting, punctuation) { - * return greeting + ' ' + this.user + punctuation; - * }; - * - * var object = { 'user': 'fred' }; - * - * var bound = _.bind(greet, object, 'hi'); - * bound('!'); - * // => 'hi fred!' - * - * // using placeholders - * var bound = _.bind(greet, object, _, '!'); - * bound('hi'); - * // => 'hi fred!' - */ - function bind(func, thisArg) { - var bitmask = BIND_FLAG; - if (arguments.length > 2) { - var partials = baseSlice(arguments, 2), - holders = replaceHolders(partials, bind.placeholder); - - bitmask |= PARTIAL_FLAG; - } - return createWrapper(func, bitmask, thisArg, partials, holders); - } - - /** - * Binds methods of an object to the object itself, overwriting the existing - * method. Method names may be specified as individual arguments or as arrays - * of method names. If no method names are provided all enumerable function - * properties, own and inherited, of `object` are bound. - * - * **Note:** This method does not set the `length` property of bound functions. - * - * @static - * @memberOf _ - * @category Function - * @param {Object} object The object to bind and assign the bound methods to. - * @param {...(string|string[])} [methodNames] The object method names to bind, - * specified as individual method names or arrays of method names. - * @returns {Object} Returns `object`. - * @example - * - * var view = { - * 'label': 'docs', - * 'onClick': function() { console.log('clicked ' + this.label); } - * }; - * - * _.bindAll(view); - * jQuery('#docs').on('click', view.onClick); - * // => logs 'clicked docs' when the element is clicked - */ - function bindAll(object) { - return baseBindAll(object, - arguments.length > 1 - ? baseFlatten(arguments, false, false, 1) - : functions(object) - ); - } - - /** - * Creates a function that invokes the method at `object[key]` and prepends - * any additional `_.bindKey` arguments to those provided to the bound function. - * - * This method differs from `_.bind` by allowing bound functions to reference - * methods that may be redefined or don't yet exist. - * See [Peter Michaux's article](http://michaux.ca/articles/lazy-function-definition-pattern) - * for more details. - * - * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic - * builds, may be used as a placeholder for partially applied arguments. - * - * @static - * @memberOf _ - * @category Function - * @param {Object} object The object the method belongs to. - * @param {string} key The key of the method. - * @param {...*} [args] The arguments to be partially applied. - * @returns {Function} Returns the new bound function. - * @example - * - * var object = { - * 'user': 'fred', - * 'greet': function(greeting, punctuation) { - * return greeting + ' ' + this.user + punctuation; - * } - * }; - * - * var bound = _.bindKey(object, 'greet', 'hi'); - * bound('!'); - * // => 'hi fred!' - * - * object.greet = function(greeting, punctuation) { - * return greeting + 'ya ' + this.user + punctuation; - * }; - * - * bound('!'); - * // => 'hiya fred!' - * - * // using placeholders - * var bound = _.bindKey(object, 'greet', _, '!'); - * bound('hi'); - * // => 'hiya fred!' - */ - function bindKey(object, key) { - var bitmask = BIND_FLAG | BIND_KEY_FLAG; - if (arguments.length > 2) { - var partials = baseSlice(arguments, 2), - holders = replaceHolders(partials, bindKey.placeholder); - - bitmask |= PARTIAL_FLAG; - } - return createWrapper(key, bitmask, object, partials, holders); - } - - /** - * Creates a function that accepts one or more arguments of `func` that when - * called either invokes `func` returning its result, if all `func` arguments - * have been provided, or returns a function that accepts one or more of the - * remaining `func` arguments, and so on. The arity of `func` may be specified - * if `func.length` is not sufficient. - * - * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds, - * may be used as a placeholder for provided arguments. - * - * **Note:** This method does not set the `length` property of curried functions. - * - * @static - * @memberOf _ - * @category Function - * @param {Function} func The function to curry. - * @param {number} [arity=func.length] The arity of `func`. - * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. - * @returns {Function} Returns the new curried function. - * @example - * - * var abc = function(a, b, c) { - * return [a, b, c]; - * }; - * - * var curried = _.curry(abc); - * - * curried(1)(2)(3); - * // => [1, 2, 3] - * - * curried(1, 2)(3); - * // => [1, 2, 3] - * - * curried(1, 2, 3); - * // => [1, 2, 3] - * - * // using placeholders - * curried(1)(_, 3)(2); - * // => [1, 2, 3] - */ - function curry(func, arity, guard) { - if (guard && isIterateeCall(func, arity, guard)) { - arity = null; - } - var result = createWrapper(func, CURRY_FLAG, null, null, null, null, null, arity); - result.placeholder = curry.placeholder; - return result; - } - - /** - * This method is like `_.curry` except that arguments are applied to `func` - * in the manner of `_.partialRight` instead of `_.partial`. - * - * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic - * builds, may be used as a placeholder for provided arguments. - * - * **Note:** This method does not set the `length` property of curried functions. - * - * @static - * @memberOf _ - * @category Function - * @param {Function} func The function to curry. - * @param {number} [arity=func.length] The arity of `func`. - * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. - * @returns {Function} Returns the new curried function. - * @example - * - * var abc = function(a, b, c) { - * return [a, b, c]; - * }; - * - * var curried = _.curryRight(abc); - * - * curried(3)(2)(1); - * // => [1, 2, 3] - * - * curried(2, 3)(1); - * // => [1, 2, 3] - * - * curried(1, 2, 3); - * // => [1, 2, 3] - * - * // using placeholders - * curried(3)(1, _)(2); - * // => [1, 2, 3] - */ - function curryRight(func, arity, guard) { - if (guard && isIterateeCall(func, arity, guard)) { - arity = null; - } - var result = createWrapper(func, CURRY_RIGHT_FLAG, null, null, null, null, null, arity); - result.placeholder = curryRight.placeholder; - return result; - } - - /** - * Creates a function that delays invoking `func` until after `wait` milliseconds - * have elapsed since the last time it was invoked. The created function comes - * with a `cancel` method to cancel delayed invocations. Provide an options - * object to indicate that `func` should be invoked on the leading and/or - * trailing edge of the `wait` timeout. Subsequent calls to the debounced - * function return the result of the last `func` invocation. - * - * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked - * on the trailing edge of the timeout only if the the debounced function is - * invoked more than once during the `wait` timeout. - * - * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation) - * for details over the differences between `_.debounce` and `_.throttle`. - * - * @static - * @memberOf _ - * @category Function - * @param {Function} func The function to debounce. - * @param {number} wait The number of milliseconds to delay. - * @param {Object} [options] The options object. - * @param {boolean} [options.leading=false] Specify invoking on the leading - * edge of the timeout. - * @param {number} [options.maxWait] The maximum time `func` is allowed to be - * delayed before it is invoked. - * @param {boolean} [options.trailing=true] Specify invoking on the trailing - * edge of the timeout. - * @returns {Function} Returns the new debounced function. - * @example - * - * // avoid costly calculations while the window size is in flux - * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); - * - * // invoke `sendMail` when the click event is fired, debouncing subsequent calls - * jQuery('#postbox').on('click', _.debounce(sendMail, 300, { - * 'leading': true, - * 'trailing': false - * })); - * - * // ensure `batchLog` is invoked once after 1 second of debounced calls - * var source = new EventSource('/stream'); - * jQuery(source).on('message', _.debounce(batchLog, 250, { - * 'maxWait': 1000 - * })); - * - * // cancel a debounced call - * var todoChanges = _.debounce(batchLog, 1000); - * Object.observe(models.todo, todoChanges); - * - * Object.observe(models, function(changes) { - * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) { - * todoChanges.cancel(); - * } - * }, ['delete']); - * - * // ...at some point `models.todo` is changed - * models.todo.completed = true; - * - * // ...before 1 second has passed `models.todo` is deleted - * // which cancels the debounced `todoChanges` call - * delete models.todo; - */ - function debounce(func, wait, options) { - var args, - maxTimeoutId, - result, - stamp, - thisArg, - timeoutId, - trailingCall, - lastCalled = 0, - maxWait = false, - trailing = true; - - if (!isFunction(func)) { - throw new TypeError(FUNC_ERROR_TEXT); - } - wait = wait < 0 ? 0 : wait; - if (options === true) { - var leading = true; - trailing = false; - } else if (isObject(options)) { - leading = options.leading; - maxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait); - trailing = 'trailing' in options ? options.trailing : trailing; - } - - function cancel() { - if (timeoutId) { - clearTimeout(timeoutId); - } - if (maxTimeoutId) { - clearTimeout(maxTimeoutId); - } - maxTimeoutId = timeoutId = trailingCall = undefined; - } - - function delayed() { - var remaining = wait - (now() - stamp); - if (remaining <= 0 || remaining > wait) { - if (maxTimeoutId) { - clearTimeout(maxTimeoutId); - } - var isCalled = trailingCall; - maxTimeoutId = timeoutId = trailingCall = undefined; - if (isCalled) { - lastCalled = now(); - result = func.apply(thisArg, args); - if (!timeoutId && !maxTimeoutId) { - args = thisArg = null; - } - } - } else { - timeoutId = setTimeout(delayed, remaining); - } - } - - function maxDelayed() { - if (timeoutId) { - clearTimeout(timeoutId); - } - maxTimeoutId = timeoutId = trailingCall = undefined; - if (trailing || (maxWait !== wait)) { - lastCalled = now(); - result = func.apply(thisArg, args); - if (!timeoutId && !maxTimeoutId) { - args = thisArg = null; - } - } - } - - function debounced() { - args = arguments; - stamp = now(); - thisArg = this; - trailingCall = trailing && (timeoutId || !leading); - - if (maxWait === false) { - var leadingCall = leading && !timeoutId; - } else { - if (!maxTimeoutId && !leading) { - lastCalled = stamp; - } - var remaining = maxWait - (stamp - lastCalled), - isCalled = remaining <= 0 || remaining > maxWait; - - if (isCalled) { - if (maxTimeoutId) { - maxTimeoutId = clearTimeout(maxTimeoutId); - } - lastCalled = stamp; - result = func.apply(thisArg, args); - } - else if (!maxTimeoutId) { - maxTimeoutId = setTimeout(maxDelayed, remaining); - } - } - if (isCalled && timeoutId) { - timeoutId = clearTimeout(timeoutId); - } - else if (!timeoutId && wait !== maxWait) { - timeoutId = setTimeout(delayed, wait); - } - if (leadingCall) { - isCalled = true; - result = func.apply(thisArg, args); - } - if (isCalled && !timeoutId && !maxTimeoutId) { - args = thisArg = null; - } - return result; - } - debounced.cancel = cancel; - return debounced; - } - - /** - * Defers invoking the `func` until the current call stack has cleared. Any - * additional arguments are provided to `func` when it is invoked. - * - * @static - * @memberOf _ - * @category Function - * @param {Function} func The function to defer. - * @param {...*} [args] The arguments to invoke the function with. - * @returns {number} Returns the timer id. - * @example - * - * _.defer(function(text) { console.log(text); }, 'deferred'); - * // logs 'deferred' after one or more milliseconds - */ - function defer(func) { - return baseDelay(func, 1, arguments, 1); - } - - /** - * Invokes `func` after `wait` milliseconds. Any additional arguments are - * provided to `func` when it is invoked. - * - * @static - * @memberOf _ - * @category Function - * @param {Function} func The function to delay. - * @param {number} wait The number of milliseconds to delay invocation. - * @param {...*} [args] The arguments to invoke the function with. - * @returns {number} Returns the timer id. - * @example - * - * _.delay(function(text) { console.log(text); }, 1000, 'later'); - * // => logs 'later' after one second - */ - function delay(func, wait) { - return baseDelay(func, wait, arguments, 2); - } - - /** - * Creates a function that returns the result of invoking the provided - * functions with the `this` binding of the created function, where each - * successive invocation is supplied the return value of the previous. - * - * @static - * @memberOf _ - * @category Function - * @param {...Function} [funcs] Functions to invoke. - * @returns {Function} Returns the new function. - * @example - * - * function add(x, y) { - * return x + y; - * } - * - * function square(n) { - * return n * n; - * } - * - * var addSquare = _.flow(add, square); - * addSquare(1, 2); - * // => 9 - */ - function flow() { - var funcs = arguments, - length = funcs.length; - - if (!length) { - return function() {}; - } - if (!arrayEvery(funcs, isFunction)) { - throw new TypeError(FUNC_ERROR_TEXT); - } - return function() { - var index = 0, - result = funcs[index].apply(this, arguments); - - while (++index < length) { - result = funcs[index].call(this, result); - } - return result; - }; - } - - /** - * This method is like `_.flow` except that it creates a function that - * invokes the provided functions from right to left. - * - * @static - * @memberOf _ - * @alias backflow, compose - * @category Function - * @param {...Function} [funcs] Functions to invoke. - * @returns {Function} Returns the new function. - * @example - * - * function add(x, y) { - * return x + y; - * } - * - * function square(n) { - * return n * n; - * } - * - * var addSquare = _.flowRight(square, add); - * addSquare(1, 2); - * // => 9 - */ - function flowRight() { - var funcs = arguments, - fromIndex = funcs.length - 1; - - if (fromIndex < 0) { - return function() {}; - } - if (!arrayEvery(funcs, isFunction)) { - throw new TypeError(FUNC_ERROR_TEXT); - } - return function() { - var index = fromIndex, - result = funcs[index].apply(this, arguments); - - while (index--) { - result = funcs[index].call(this, result); - } - return result; - }; - } - - /** - * Creates a function that memoizes the result of `func`. If `resolver` is - * provided it determines the cache key for storing the result based on the - * arguments provided to the memoized function. By default, the first argument - * provided to the memoized function is coerced to a string and used as the - * cache key. The `func` is invoked with the `this` binding of the memoized - * function. - * - * **Note:** The cache is exposed as the `cache` property on the memoized - * function. Its creation may be customized by replacing the `_.memoize.Cache` - * constructor with one whose instances implement the ES `Map` method interface - * of `get`, `has`, and `set`. See the - * [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-properties-of-the-map-prototype-object) - * for more details. - * - * @static - * @memberOf _ - * @category Function - * @param {Function} func The function to have its output memoized. - * @param {Function} [resolver] The function to resolve the cache key. - * @returns {Function} Returns the new memoizing function. - * @example - * - * var upperCase = _.memoize(function(string) { - * return string.toUpperCase(); - * }); - * - * upperCase('fred'); - * // => 'FRED' - * - * // modifying the result cache - * upperCase.cache.set('fred', 'BARNEY'); - * upperCase('fred'); - * // => 'BARNEY' - * - * // replacing `_.memoize.Cache` - * var object = { 'user': 'fred' }; - * var other = { 'user': 'barney' }; - * var identity = _.memoize(_.identity); - * - * identity(object); - * // => { 'user': 'fred' } - * identity(other); - * // => { 'user': 'fred' } - * - * _.memoize.Cache = WeakMap; - * var identity = _.memoize(_.identity); - * - * identity(object); - * // => { 'user': 'fred' } - * identity(other); - * // => { 'user': 'barney' } - */ - function memoize(func, resolver) { - if (!isFunction(func) || (resolver && !isFunction(resolver))) { - throw new TypeError(FUNC_ERROR_TEXT); - } - var memoized = function() { - var cache = memoized.cache, - key = resolver ? resolver.apply(this, arguments) : arguments[0]; - - if (cache.has(key)) { - return cache.get(key); - } - var result = func.apply(this, arguments); - cache.set(key, result); - return result; - }; - memoized.cache = new memoize.Cache; - return memoized; - } - - /** - * Creates a function that negates the result of the predicate `func`. The - * `func` predicate is invoked with the `this` binding and arguments of the - * created function. - * - * @static - * @memberOf _ - * @category Function - * @param {Function} predicate The predicate to negate. - * @returns {Function} Returns the new function. - * @example - * - * function isEven(n) { - * return n % 2 == 0; - * } - * - * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven)); - * // => [1, 3, 5] - */ - function negate(predicate) { - if (!isFunction(predicate)) { - throw new TypeError(FUNC_ERROR_TEXT); - } - return function() { - return !predicate.apply(this, arguments); - }; - } - - /** - * Creates a function that is restricted to invoking `func` once. Repeat calls - * to the function return the value of the first call. The `func` is invoked - * with the `this` binding of the created function. - * - * @static - * @memberOf _ - * @type Function - * @category Function - * @param {Function} func The function to restrict. - * @returns {Function} Returns the new restricted function. - * @example - * - * var initialize = _.once(createApplication); - * initialize(); - * initialize(); - * // `initialize` invokes `createApplication` once - */ - function once(func) { - return before(func, 2); - } - - /** - * Creates a function that invokes `func` with `partial` arguments prepended - * to those provided to the new function. This method is like `_.bind` except - * it does **not** alter the `this` binding. - * - * The `_.partial.placeholder` value, which defaults to `_` in monolithic - * builds, may be used as a placeholder for partially applied arguments. - * - * **Note:** This method does not set the `length` property of partially - * applied functions. - * - * @static - * @memberOf _ - * @category Function - * @param {Function} func The function to partially apply arguments to. - * @param {...*} [args] The arguments to be partially applied. - * @returns {Function} Returns the new partially applied function. - * @example - * - * var greet = function(greeting, name) { - * return greeting + ' ' + name; - * }; - * - * var sayHelloTo = _.partial(greet, 'hello'); - * sayHelloTo('fred'); - * // => 'hello fred' - * - * // using placeholders - * var greetFred = _.partial(greet, _, 'fred'); - * greetFred('hi'); - * // => 'hi fred' - */ - function partial(func) { - var partials = baseSlice(arguments, 1), - holders = replaceHolders(partials, partial.placeholder); - - return createWrapper(func, PARTIAL_FLAG, null, partials, holders); - } - - /** - * This method is like `_.partial` except that partially applied arguments - * are appended to those provided to the new function. - * - * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic - * builds, may be used as a placeholder for partially applied arguments. - * - * **Note:** This method does not set the `length` property of partially - * applied functions. - * - * @static - * @memberOf _ - * @category Function - * @param {Function} func The function to partially apply arguments to. - * @param {...*} [args] The arguments to be partially applied. - * @returns {Function} Returns the new partially applied function. - * @example - * - * var greet = function(greeting, name) { - * return greeting + ' ' + name; - * }; - * - * var greetFred = _.partialRight(greet, 'fred'); - * greetFred('hi'); - * // => 'hi fred' - * - * // using placeholders - * var sayHelloTo = _.partialRight(greet, 'hello', _); - * sayHelloTo('fred'); - * // => 'hello fred' - */ - function partialRight(func) { - var partials = baseSlice(arguments, 1), - holders = replaceHolders(partials, partialRight.placeholder); - - return createWrapper(func, PARTIAL_RIGHT_FLAG, null, partials, holders); - } - - /** - * Creates a function that invokes `func` with arguments arranged according - * to the specified indexes where the argument value at the first index is - * provided as the first argument, the argument value at the second index is - * provided as the second argument, and so on. - * - * @static - * @memberOf _ - * @category Function - * @param {Function} func The function to rearrange arguments for. - * @param {...(number|number[])} indexes The arranged argument indexes, - * specified as individual indexes or arrays of indexes. - * @returns {Function} Returns the new function. - * @example - * - * var rearged = _.rearg(function(a, b, c) { - * return [a, b, c]; - * }, 2, 0, 1); - * - * rearged('b', 'c', 'a') - * // => ['a', 'b', 'c'] - * - * var map = _.rearg(_.map, [1, 0]); - * map(function(n) { return n * 3; }, [1, 2, 3]); - * // => [3, 6, 9] - */ - function rearg(func) { - var indexes = baseFlatten(arguments, false, false, 1); - return createWrapper(func, REARG_FLAG, null, null, null, indexes); - } - - /** - * Creates a function that only invokes `func` at most once per every `wait` - * milliseconds. The created function comes with a `cancel` method to cancel - * delayed invocations. Provide an options object to indicate that `func` - * should be invoked on the leading and/or trailing edge of the `wait` timeout. - * Subsequent calls to the throttled function return the result of the last - * `func` call. - * - * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked - * on the trailing edge of the timeout only if the the throttled function is - * invoked more than once during the `wait` timeout. - * - * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation) - * for details over the differences between `_.throttle` and `_.debounce`. - * - * @static - * @memberOf _ - * @category Function - * @param {Function} func The function to throttle. - * @param {number} wait The number of milliseconds to throttle invocations to. - * @param {Object} [options] The options object. - * @param {boolean} [options.leading=true] Specify invoking on the leading - * edge of the timeout. - * @param {boolean} [options.trailing=true] Specify invoking on the trailing - * edge of the timeout. - * @returns {Function} Returns the new throttled function. - * @example - * - * // avoid excessively updating the position while scrolling - * jQuery(window).on('scroll', _.throttle(updatePosition, 100)); - * - * // invoke `renewToken` when the click event is fired, but not more than once every 5 minutes - * var throttled = _.throttle(renewToken, 300000, { 'trailing': false }) - * jQuery('.interactive').on('click', throttled); - * - * // cancel a trailing throttled call - * jQuery(window).on('popstate', throttled.cancel); - */ - function throttle(func, wait, options) { - var leading = true, - trailing = true; - - if (!isFunction(func)) { - throw new TypeError(FUNC_ERROR_TEXT); - } - if (options === false) { - leading = false; - } else if (isObject(options)) { - leading = 'leading' in options ? !!options.leading : leading; - trailing = 'trailing' in options ? !!options.trailing : trailing; - } - debounceOptions.leading = leading; - debounceOptions.maxWait = +wait; - debounceOptions.trailing = trailing; - return debounce(func, wait, debounceOptions); - } - - /** - * Creates a function that provides `value` to the wrapper function as its - * first argument. Any additional arguments provided to the function are - * appended to those provided to the wrapper function. The wrapper is invoked - * with the `this` binding of the created function. - * - * @static - * @memberOf _ - * @category Function - * @param {*} value The value to wrap. - * @param {Function} wrapper The wrapper function. - * @returns {Function} Returns the new function. - * @example - * - * var p = _.wrap(_.escape, function(func, text) { - * return '

' + func(text) + '

'; - * }); - * - * p('fred, barney, & pebbles'); - * // => '

fred, barney, & pebbles

' - */ - function wrap(value, wrapper) { - wrapper = wrapper == null ? identity : wrapper; - return createWrapper(wrapper, PARTIAL_FLAG, null, [value], []); - } - - /*------------------------------------------------------------------------*/ - - /** - * Creates a clone of `value`. If `isDeep` is `true` nested objects are cloned, - * otherwise they are assigned by reference. If `customizer` is provided it is - * invoked to produce the cloned values. If `customizer` returns `undefined` - * cloning is handled by the method instead. The `customizer` is bound to - * `thisArg` and invoked with two argument; (value [, index|key, object]). - * - * **Note:** This method is loosely based on the structured clone algorithm. - * The enumerable properties of `arguments` objects and objects created by - * constructors other than `Object` are cloned to plain `Object` objects. An - * empty object is returned for uncloneable values such as functions, DOM nodes, - * Maps, Sets, and WeakMaps. See the [HTML5 specification](http://www.w3.org/TR/html5/infrastructure.html#internal-structured-cloning-algorithm) - * for more details. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to clone. - * @param {boolean} [isDeep] Specify a deep clone. - * @param {Function} [customizer] The function to customize cloning values. - * @param {*} [thisArg] The `this` binding of `customizer`. - * @returns {*} Returns the cloned value. - * @example - * - * var users = [ - * { 'user': 'barney' }, - * { 'user': 'fred' } - * ]; - * - * var shallow = _.clone(users); - * shallow[0] === users[0]; - * // => true - * - * var deep = _.clone(users, true); - * deep[0] === users[0]; - * // => false - * - * // using a customizer callback - * var body = _.clone(document.body, function(value) { - * return _.isElement(value) ? value.cloneNode(false) : undefined; - * }); - * - * body === document.body - * // => false - * body.nodeName - * // => BODY - * body.childNodes.length; - * // => 0 - */ - function clone(value, isDeep, customizer, thisArg) { - // Juggle arguments. - if (typeof isDeep != 'boolean' && isDeep != null) { - thisArg = customizer; - customizer = isIterateeCall(value, isDeep, thisArg) ? null : isDeep; - isDeep = false; - } - customizer = typeof customizer == 'function' && bindCallback(customizer, thisArg, 1); - return baseClone(value, isDeep, customizer); - } - - /** - * Creates a deep clone of `value`. If `customizer` is provided it is invoked - * to produce the cloned values. If `customizer` returns `undefined` cloning - * is handled by the method instead. The `customizer` is bound to `thisArg` - * and invoked with two argument; (value [, index|key, object]). - * - * **Note:** This method is loosely based on the structured clone algorithm. - * The enumerable properties of `arguments` objects and objects created by - * constructors other than `Object` are cloned to plain `Object` objects. An - * empty object is returned for uncloneable values such as functions, DOM nodes, - * Maps, Sets, and WeakMaps. See the [HTML5 specification](http://www.w3.org/TR/html5/infrastructure.html#internal-structured-cloning-algorithm) - * for more details. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to deep clone. - * @param {Function} [customizer] The function to customize cloning values. - * @param {*} [thisArg] The `this` binding of `customizer`. - * @returns {*} Returns the deep cloned value. - * @example - * - * var users = [ - * { 'user': 'barney' }, - * { 'user': 'fred' } - * ]; - * - * var deep = _.cloneDeep(users); - * deep[0] === users[0]; - * // => false - * - * // using a customizer callback - * var el = _.cloneDeep(document.body, function(value) { - * return _.isElement(value) ? value.cloneNode(true) : undefined; - * }); - * - * body === document.body - * // => false - * body.nodeName - * // => BODY - * body.childNodes.length; - * // => 20 - */ - function cloneDeep(value, customizer, thisArg) { - customizer = typeof customizer == 'function' && bindCallback(customizer, thisArg, 1); - return baseClone(value, true, customizer); - } - - /** - * Checks if `value` is classified as an `arguments` object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * (function() { return _.isArguments(arguments); })(); - * // => true - * - * _.isArguments([1, 2, 3]); - * // => false - */ - function isArguments(value) { - var length = isObjectLike(value) ? value.length : undefined; - return (isLength(length) && objToString.call(value) == argsTag) || false; - } - - /** - * Checks if `value` is classified as an `Array` object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isArray([1, 2, 3]); - * // => true - * - * (function() { return _.isArray(arguments); })(); - * // => false - */ - var isArray = nativeIsArray || function(value) { - return (isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag) || false; - }; - - /** - * Checks if `value` is classified as a boolean primitive or object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isBoolean(false); - * // => true - * - * _.isBoolean(null); - * // => false - */ - function isBoolean(value) { - return (value === true || value === false || isObjectLike(value) && objToString.call(value) == boolTag) || false; - } - - /** - * Checks if `value` is classified as a `Date` object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isDate(new Date); - * // => true - * - * _.isDate('Mon April 23 2012'); - * // => false - */ - function isDate(value) { - return (isObjectLike(value) && objToString.call(value) == dateTag) || false; - } - - /** - * Checks if `value` is a DOM element. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`. - * @example - * - * _.isElement(document.body); - * // => true - * - * _.isElement(''); - * // => false - */ - function isElement(value) { - return (value && value.nodeType === 1 && isObjectLike(value) && - objToString.call(value).indexOf('Element') > -1) || false; - } - // Fallback for environments without DOM support. - if (!support.dom) { - isElement = function(value) { - return (value && value.nodeType === 1 && isObjectLike(value) && !isPlainObject(value)) || false; - }; - } - - /** - * Checks if a value is empty. A value is considered empty unless it is an - * `arguments` object, array, string, or jQuery-like collection with a length - * greater than `0` or an object with own enumerable properties. - * - * @static - * @memberOf _ - * @category Lang - * @param {Array|Object|string} value The value to inspect. - * @returns {boolean} Returns `true` if `value` is empty, else `false`. - * @example - * - * _.isEmpty(null); - * // => true - * - * _.isEmpty(true); - * // => true - * - * _.isEmpty(1); - * // => true - * - * _.isEmpty([1, 2, 3]); - * // => false - * - * _.isEmpty({ 'a': 1 }); - * // => false - */ - function isEmpty(value) { - if (value == null) { - return true; - } - var length = value.length; - if (isLength(length) && (isArray(value) || isString(value) || isArguments(value) || - (isObjectLike(value) && isFunction(value.splice)))) { - return !length; - } - return !keys(value).length; - } - - /** - * Performs a deep comparison between two values to determine if they are - * equivalent. If `customizer` is provided it is invoked to compare values. - * If `customizer` returns `undefined` comparisons are handled by the method - * instead. The `customizer` is bound to `thisArg` and invoked with three - * arguments; (value, other [, index|key]). - * - * **Note:** This method supports comparing arrays, booleans, `Date` objects, - * numbers, `Object` objects, regexes, and strings. Functions and DOM nodes - * are **not** supported. Provide a customizer function to extend support - * for comparing other values. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @param {Function} [customizer] The function to customize comparing values. - * @param {*} [thisArg] The `this` binding of `customizer`. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. - * @example - * - * var object = { 'user': 'fred' }; - * var other = { 'user': 'fred' }; - * - * object == other; - * // => false - * - * _.isEqual(object, other); - * // => true - * - * // using a customizer callback - * var array = ['hello', 'goodbye']; - * var other = ['hi', 'goodbye']; - * - * _.isEqual(array, other, function(value, other) { - * return _.every([value, other], RegExp.prototype.test, /^h(?:i|ello)$/) || undefined; - * }); - * // => true - */ - function isEqual(value, other, customizer, thisArg) { - customizer = typeof customizer == 'function' && bindCallback(customizer, thisArg, 3); - if (!customizer && isStrictComparable(value) && isStrictComparable(other)) { - return value === other; - } - var result = customizer ? customizer(value, other) : undefined; - return typeof result == 'undefined' ? baseIsEqual(value, other, customizer) : !!result; - } - - /** - * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`, - * `SyntaxError`, `TypeError`, or `URIError` object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an error object, else `false`. - * @example - * - * _.isError(new Error); - * // => true - * - * _.isError(Error); - * // => false - */ - function isError(value) { - return (isObjectLike(value) && typeof value.message == 'string' && objToString.call(value) == errorTag) || false; - } - - /** - * Checks if `value` is a finite primitive number. - * - * **Note:** This method is based on ES `Number.isFinite`. See the - * [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.isfinite) - * for more details. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a finite number, else `false`. - * @example - * - * _.isFinite(10); - * // => true - * - * _.isFinite('10'); - * // => false - * - * _.isFinite(true); - * // => false - * - * _.isFinite(Object(10)); - * // => false - * - * _.isFinite(Infinity); - * // => false - */ - var isFinite = nativeNumIsFinite || function(value) { - return typeof value == 'number' && nativeIsFinite(value); - }; - - /** - * Checks if `value` is classified as a `Function` object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isFunction(_); - * // => true - * - * _.isFunction(/abc/); - * // => false - */ - function isFunction(value) { - // Avoid a Chakra JIT bug in compatibility modes of IE 11. - // See https://github.com/jashkenas/underscore/issues/1621 for more details. - return typeof value == 'function' || false; - } - // Fallback for environments that return incorrect `typeof` operator results. - if (isFunction(/x/) || (Uint8Array && !isFunction(Uint8Array))) { - isFunction = function(value) { - // The use of `Object#toString` avoids issues with the `typeof` operator - // in older versions of Chrome and Safari which return 'function' for regexes - // and Safari 8 equivalents which return 'object' for typed array constructors. - return objToString.call(value) == funcTag; - }; - } - - /** - * Checks if `value` is the language type of `Object`. - * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * **Note:** See the [ES5 spec](https://es5.github.io/#x8) for more details. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(1); - * // => false - */ - function isObject(value) { - // Avoid a V8 JIT bug in Chrome 19-20. - // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. - var type = typeof value; - return type == 'function' || (value && type == 'object') || false; - } - - /** - * Performs a deep comparison between `object` and `source` to determine if - * `object` contains equivalent property values. If `customizer` is provided - * it is invoked to compare values. If `customizer` returns `undefined` - * comparisons are handled by the method instead. The `customizer` is bound - * to `thisArg` and invoked with three arguments; (value, other, index|key). - * - * **Note:** This method supports comparing properties of arrays, booleans, - * `Date` objects, numbers, `Object` objects, regexes, and strings. Functions - * and DOM nodes are **not** supported. Provide a customizer function to extend - * support for comparing other values. - * - * @static - * @memberOf _ - * @category Lang - * @param {Object} source The object to inspect. - * @param {Object} source The object of property values to match. - * @param {Function} [customizer] The function to customize comparing values. - * @param {*} [thisArg] The `this` binding of `customizer`. - * @returns {boolean} Returns `true` if `object` is a match, else `false`. - * @example - * - * var object = { 'user': 'fred', 'age': 40 }; - * - * _.isMatch(object, { 'age': 40 }); - * // => true - * - * _.isMatch(object, { 'age': 36 }); - * // => false - * - * // using a customizer callback - * var object = { 'greeting': 'hello' }; - * var source = { 'greeting': 'hi' }; - * - * _.isMatch(object, source, function(value, other) { - * return _.every([value, other], RegExp.prototype.test, /^h(?:i|ello)$/) || undefined; - * }); - * // => true - */ - function isMatch(object, source, customizer, thisArg) { - var props = keys(source), - length = props.length; - - customizer = typeof customizer == 'function' && bindCallback(customizer, thisArg, 3); - if (!customizer && length == 1) { - var key = props[0], - value = source[key]; - - if (isStrictComparable(value)) { - return object != null && value === object[key] && hasOwnProperty.call(object, key); - } - } - var values = Array(length), - strictCompareFlags = Array(length); - - while (length--) { - value = values[length] = source[props[length]]; - strictCompareFlags[length] = isStrictComparable(value); - } - return baseIsMatch(object, props, values, strictCompareFlags, customizer); - } - - /** - * Checks if `value` is `NaN`. - * - * **Note:** This method is not the same as native `isNaN` which returns `true` - * for `undefined` and other non-numeric values. See the [ES5 spec](https://es5.github.io/#x15.1.2.4) - * for more details. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. - * @example - * - * _.isNaN(NaN); - * // => true - * - * _.isNaN(new Number(NaN)); - * // => true - * - * isNaN(undefined); - * // => true - * - * _.isNaN(undefined); - * // => false - */ - function isNaN(value) { - // An `NaN` primitive is the only value that is not equal to itself. - // Perform the `toStringTag` check first to avoid errors with some host objects in IE. - return isNumber(value) && value != +value; - } - - /** - * Checks if `value` is a native function. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a native function, else `false`. - * @example - * - * _.isNative(Array.prototype.push); - * // => true - * - * _.isNative(_); - * // => false - */ - function isNative(value) { - if (value == null) { - return false; - } - if (objToString.call(value) == funcTag) { - return reNative.test(fnToString.call(value)); - } - return (isObjectLike(value) && reHostCtor.test(value)) || false; - } - - /** - * Checks if `value` is `null`. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is `null`, else `false`. - * @example - * - * _.isNull(null); - * // => true - * - * _.isNull(void 0); - * // => false - */ - function isNull(value) { - return value === null; - } - - /** - * Checks if `value` is classified as a `Number` primitive or object. - * - * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are classified - * as numbers, use the `_.isFinite` method. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isNumber(8.4); - * // => true - * - * _.isNumber(NaN); - * // => true - * - * _.isNumber('8.4'); - * // => false - */ - function isNumber(value) { - return typeof value == 'number' || (isObjectLike(value) && objToString.call(value) == numberTag) || false; - } - - /** - * Checks if `value` is a plain object, that is, an object created by the - * `Object` constructor or one with a `[[Prototype]]` of `null`. - * - * **Note:** This method assumes objects created by the `Object` constructor - * have no inherited enumerable properties. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. - * @example - * - * function Foo() { - * this.a = 1; - * } - * - * _.isPlainObject(new Foo); - * // => false - * - * _.isPlainObject([1, 2, 3]); - * // => false - * - * _.isPlainObject({ 'x': 0, 'y': 0 }); - * // => true - * - * _.isPlainObject(Object.create(null)); - * // => true - */ - var isPlainObject = !getPrototypeOf ? shimIsPlainObject : function(value) { - if (!(value && objToString.call(value) == objectTag)) { - return false; - } - var valueOf = value.valueOf, - objProto = isNative(valueOf) && (objProto = getPrototypeOf(valueOf)) && getPrototypeOf(objProto); - - return objProto - ? (value == objProto || getPrototypeOf(value) == objProto) - : shimIsPlainObject(value); - }; - - /** - * Checks if `value` is classified as a `RegExp` object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isRegExp(/abc/); - * // => true - * - * _.isRegExp('/abc/'); - * // => false - */ - function isRegExp(value) { - return (isObjectLike(value) && objToString.call(value) == regexpTag) || false; - } - - /** - * Checks if `value` is classified as a `String` primitive or object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isString('abc'); - * // => true - * - * _.isString(1); - * // => false - */ - function isString(value) { - return typeof value == 'string' || (isObjectLike(value) && objToString.call(value) == stringTag) || false; - } - - /** - * Checks if `value` is classified as a typed array. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isTypedArray(new Uint8Array); - * // => true - * - * _.isTypedArray([]); - * // => false - */ - function isTypedArray(value) { - return (isObjectLike(value) && isLength(value.length) && typedArrayTags[objToString.call(value)]) || false; - } - - /** - * Checks if `value` is `undefined`. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`. - * @example - * - * _.isUndefined(void 0); - * // => true - * - * _.isUndefined(null); - * // => false - */ - function isUndefined(value) { - return typeof value == 'undefined'; - } - - /** - * Converts `value` to an array. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to convert. - * @returns {Array} Returns the converted array. - * @example - * - * (function() { return _.toArray(arguments).slice(1); })(1, 2, 3); - * // => [2, 3] - */ - function toArray(value) { - var length = value ? value.length : 0; - if (!isLength(length)) { - return values(value); - } - if (!length) { - return []; - } - return arrayCopy(value); - } - - /** - * Converts `value` to a plain object flattening inherited enumerable - * properties of `value` to own properties of the plain object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to convert. - * @returns {Object} Returns the converted plain object. - * @example - * - * function Foo() { - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.assign({ 'a': 1 }, new Foo); - * // => { 'a': 1, 'b': 2 } - * - * _.assign({ 'a': 1 }, _.toPlainObject(new Foo)); - * // => { 'a': 1, 'b': 2, 'c': 3 } - */ - function toPlainObject(value) { - return baseCopy(value, keysIn(value)); - } - - /*------------------------------------------------------------------------*/ - - /** - * Assigns own enumerable properties of source object(s) to the destination - * object. Subsequent sources overwrite property assignments of previous sources. - * If `customizer` is provided it is invoked to produce the assigned values. - * The `customizer` is bound to `thisArg` and invoked with five arguments; - * (objectValue, sourceValue, key, object, source). - * - * @static - * @memberOf _ - * @alias extend - * @category Object - * @param {Object} object The destination object. - * @param {...Object} [sources] The source objects. - * @param {Function} [customizer] The function to customize assigning values. - * @param {*} [thisArg] The `this` binding of `customizer`. - * @returns {Object} Returns `object`. - * @example - * - * _.assign({ 'user': 'barney' }, { 'age': 40 }, { 'user': 'fred' }); - * // => { 'user': 'fred', 'age': 40 } - * - * // using a customizer callback - * var defaults = _.partialRight(_.assign, function(value, other) { - * return typeof value == 'undefined' ? other : value; - * }); - * - * defaults({ 'user': 'barney' }, { 'age': 36 }, { 'user': 'fred' }); - * // => { 'user': 'barney', 'age': 36 } - */ - var assign = createAssigner(baseAssign); - - /** - * Creates an object that inherits from the given `prototype` object. If a - * `properties` object is provided its own enumerable properties are assigned - * to the created object. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} prototype The object to inherit from. - * @param {Object} [properties] The properties to assign to the object. - * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. - * @returns {Object} Returns the new object. - * @example - * - * function Shape() { - * this.x = 0; - * this.y = 0; - * } - * - * function Circle() { - * Shape.call(this); - * } - * - * Circle.prototype = _.create(Shape.prototype, { 'constructor': Circle }); - * - * var circle = new Circle; - * circle instanceof Circle; - * // => true - * - * circle instanceof Shape; - * // => true - */ - function create(prototype, properties, guard) { - var result = baseCreate(prototype); - if (guard && isIterateeCall(prototype, properties, guard)) { - properties = null; - } - return properties ? baseCopy(properties, result, keys(properties)) : result; - } - - /** - * Assigns own enumerable properties of source object(s) to the destination - * object for all destination properties that resolve to `undefined`. Once a - * property is set, additional defaults of the same property are ignored. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The destination object. - * @param {...Object} [sources] The source objects. - * @returns {Object} Returns `object`. - * @example - * - * _.defaults({ 'user': 'barney' }, { 'age': 36 }, { 'user': 'fred' }); - * // => { 'user': 'barney', 'age': 36 } - */ - function defaults(object) { - if (object == null) { - return object; - } - var args = arrayCopy(arguments); - args.push(assignDefaults); - return assign.apply(undefined, args); - } - - /** - * This method is like `_.findIndex` except that it returns the key of the - * first element `predicate` returns truthy for, instead of the element itself. - * - * If a property name is provided for `predicate` the created "_.property" - * style callback returns the property value of the given element. - * - * If an object is provided for `predicate` the created "_.matches" style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to search. - * @param {Function|Object|string} [predicate=_.identity] The function invoked - * per iteration. If a property name or object is provided it is used to - * create a "_.property" or "_.matches" style callback respectively. - * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {string|undefined} Returns the key of the matched element, else `undefined`. - * @example - * - * var users = { - * 'barney': { 'age': 36, 'active': true }, - * 'fred': { 'age': 40, 'active': false }, - * 'pebbles': { 'age': 1, 'active': true } - * }; - * - * _.findKey(users, function(chr) { return chr.age < 40; }); - * // => 'barney' (iteration order is not guaranteed) - * - * // using the "_.matches" callback shorthand - * _.findKey(users, { 'age': 1 }); - * // => 'pebbles' - * - * // using the "_.property" callback shorthand - * _.findKey(users, 'active'); - * // => 'barney' - */ - function findKey(object, predicate, thisArg) { - predicate = getCallback(predicate, thisArg, 3); - return baseFind(object, predicate, baseForOwn, true); - } - - /** - * This method is like `_.findKey` except that it iterates over elements of - * a collection in the opposite order. - * - * If a property name is provided for `predicate` the created "_.property" - * style callback returns the property value of the given element. - * - * If an object is provided for `predicate` the created "_.matches" style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to search. - * @param {Function|Object|string} [predicate=_.identity] The function invoked - * per iteration. If a property name or object is provided it is used to - * create a "_.property" or "_.matches" style callback respectively. - * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {string|undefined} Returns the key of the matched element, else `undefined`. - * @example - * - * var users = { - * 'barney': { 'age': 36, 'active': true }, - * 'fred': { 'age': 40, 'active': false }, - * 'pebbles': { 'age': 1, 'active': true } - * }; - * - * _.findLastKey(users, function(chr) { return chr.age < 40; }); - * // => returns `pebbles` assuming `_.findKey` returns `barney` - * - * // using the "_.matches" callback shorthand - * _.findLastKey(users, { 'age': 36 }); - * // => 'barney' - * - * // using the "_.property" callback shorthand - * _.findLastKey(users, 'active'); - * // => 'pebbles' - */ - function findLastKey(object, predicate, thisArg) { - predicate = getCallback(predicate, thisArg, 3); - return baseFind(object, predicate, baseForOwnRight, true); - } - - /** - * Iterates over own and inherited enumerable properties of an object invoking - * `iteratee` for each property. The `iteratee` is bound to `thisArg` and invoked - * with three arguments; (value, key, object). Iterator functions may exit - * iteration early by explicitly returning `false`. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @param {*} [thisArg] The `this` binding of `iteratee`. - * @returns {Object} Returns `object`. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.forIn(new Foo, function(value, key) { - * console.log(key); - * }); - * // => logs 'a', 'b', and 'c' (iteration order is not guaranteed) - */ - function forIn(object, iteratee, thisArg) { - if (typeof iteratee != 'function' || typeof thisArg != 'undefined') { - iteratee = bindCallback(iteratee, thisArg, 3); - } - return baseFor(object, iteratee, keysIn); - } - - /** - * This method is like `_.forIn` except that it iterates over properties of - * `object` in the opposite order. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @param {*} [thisArg] The `this` binding of `iteratee`. - * @returns {Object} Returns `object`. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.forInRight(new Foo, function(value, key) { - * console.log(key); - * }); - * // => logs 'c', 'b', and 'a' assuming `_.forIn ` logs 'a', 'b', and 'c' - */ - function forInRight(object, iteratee, thisArg) { - iteratee = bindCallback(iteratee, thisArg, 3); - return baseForRight(object, iteratee, keysIn); - } - - /** - * Iterates over own enumerable properties of an object invoking `iteratee` - * for each property. The `iteratee` is bound to `thisArg` and invoked with - * three arguments; (value, key, object). Iterator functions may exit iteration - * early by explicitly returning `false`. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @param {*} [thisArg] The `this` binding of `iteratee`. - * @returns {Object} Returns `object`. - * @example - * - * _.forOwn({ '0': 'zero', '1': 'one', 'length': 2 }, function(n, key) { - * console.log(key); - * }); - * // => logs '0', '1', and 'length' (iteration order is not guaranteed) - */ - function forOwn(object, iteratee, thisArg) { - if (typeof iteratee != 'function' || typeof thisArg != 'undefined') { - iteratee = bindCallback(iteratee, thisArg, 3); - } - return baseForOwn(object, iteratee); - } - - /** - * This method is like `_.forOwn` except that it iterates over properties of - * `object` in the opposite order. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @param {*} [thisArg] The `this` binding of `iteratee`. - * @returns {Object} Returns `object`. - * @example - * - * _.forOwnRight({ '0': 'zero', '1': 'one', 'length': 2 }, function(n, key) { - * console.log(key); - * }); - * // => logs 'length', '1', and '0' assuming `_.forOwn` logs '0', '1', and 'length' - */ - function forOwnRight(object, iteratee, thisArg) { - iteratee = bindCallback(iteratee, thisArg, 3); - return baseForRight(object, iteratee, keys); - } - - /** - * Creates an array of function property names from all enumerable properties, - * own and inherited, of `object`. - * - * @static - * @memberOf _ - * @alias methods - * @category Object - * @param {Object} object The object to inspect. - * @returns {Array} Returns the new array of property names. - * @example - * - * _.functions(_); - * // => ['all', 'any', 'bind', ...] - */ - function functions(object) { - return baseFunctions(object, keysIn(object)); - } - - /** - * Checks if `key` exists as a direct property of `object` instead of an - * inherited property. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to inspect. - * @param {string} key The key to check. - * @returns {boolean} Returns `true` if `key` is a direct property, else `false`. - * @example - * - * _.has({ 'a': 1, 'b': 2, 'c': 3 }, 'b'); - * // => true - */ - function has(object, key) { - return object ? hasOwnProperty.call(object, key) : false; - } - - /** - * Creates an object composed of the inverted keys and values of `object`. - * If `object` contains duplicate values, subsequent values overwrite property - * assignments of previous values unless `multiValue` is `true`. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to invert. - * @param {boolean} [multiValue] Allow multiple values per key. - * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. - * @returns {Object} Returns the new inverted object. - * @example - * - * _.invert({ 'first': 'fred', 'second': 'barney' }); - * // => { 'fred': 'first', 'barney': 'second' } - * - * // without `multiValue` - * _.invert({ 'first': 'fred', 'second': 'barney', 'third': 'fred' }); - * // => { 'fred': 'third', 'barney': 'second' } - * - * // with `multiValue` - * _.invert({ 'first': 'fred', 'second': 'barney', 'third': 'fred' }, true); - * // => { 'fred': ['first', 'third'], 'barney': ['second'] } - */ - function invert(object, multiValue, guard) { - if (guard && isIterateeCall(object, multiValue, guard)) { - multiValue = null; - } - var index = -1, - props = keys(object), - length = props.length, - result = {}; - - while (++index < length) { - var key = props[index], - value = object[key]; - - if (multiValue) { - if (hasOwnProperty.call(result, value)) { - result[value].push(key); - } else { - result[value] = [key]; - } - } - else { - result[value] = key; - } - } - return result; - } - - /** - * Creates an array of the own enumerable property names of `object`. - * - * **Note:** Non-object values are coerced to objects. See the - * [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.keys) - * for more details. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to inspect. - * @returns {Array} Returns the array of property names. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.keys(new Foo); - * // => ['a', 'b'] (iteration order is not guaranteed) - * - * _.keys('hi'); - * // => ['0', '1'] - */ - var keys = !nativeKeys ? shimKeys : function(object) { - if (object) { - var Ctor = object.constructor, - length = object.length; - } - if ((typeof Ctor == 'function' && Ctor.prototype === object) || - (typeof object != 'function' && (length && isLength(length)))) { - return shimKeys(object); - } - return isObject(object) ? nativeKeys(object) : []; - }; - - /** - * Creates an array of the own and inherited enumerable property names of `object`. - * - * **Note:** Non-object values are coerced to objects. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to inspect. - * @returns {Array} Returns the array of property names. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.keysIn(new Foo); - * // => ['a', 'b', 'c'] (iteration order is not guaranteed) - */ - function keysIn(object) { - if (object == null) { - return []; - } - if (!isObject(object)) { - object = Object(object); - } - var length = object.length; - length = (length && isLength(length) && - (isArray(object) || (support.nonEnumArgs && isArguments(object))) && length) || 0; - - var Ctor = object.constructor, - index = -1, - isProto = typeof Ctor == 'function' && Ctor.prototype == object, - result = Array(length), - skipIndexes = length > 0; - - while (++index < length) { - result[index] = (index + ''); - } - for (var key in object) { - if (!(skipIndexes && isIndex(key, length)) && - !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { - result.push(key); - } - } - return result; - } - - /** - * Creates an object with the same keys as `object` and values generated by - * running each own enumerable property of `object` through `iteratee`. The - * iteratee function is bound to `thisArg` and invoked with three arguments; - * (value, key, object). - * - * If a property name is provided for `iteratee` the created "_.property" - * style callback returns the property value of the given element. - * - * If an object is provided for `iteratee` the created "_.matches" style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function|Object|string} [iteratee=_.identity] The function invoked - * per iteration. If a property name or object is provided it is used to - * create a "_.property" or "_.matches" style callback respectively. - * @param {*} [thisArg] The `this` binding of `iteratee`. - * @returns {Object} Returns the new mapped object. - * @example - * - * _.mapValues({ 'a': 1, 'b': 2, 'c': 3} , function(n) { return n * 3; }); - * // => { 'a': 3, 'b': 6, 'c': 9 } - * - * var users = { - * 'fred': { 'user': 'fred', 'age': 40 }, - * 'pebbles': { 'user': 'pebbles', 'age': 1 } - * }; - * - * // using the "_.property" callback shorthand - * _.mapValues(users, 'age'); - * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) - */ - function mapValues(object, iteratee, thisArg) { - var result = {}; - iteratee = getCallback(iteratee, thisArg, 3); - - baseForOwn(object, function(value, key, object) { - result[key] = iteratee(value, key, object); - }); - return result; - } - - /** - * Recursively merges own enumerable properties of the source object(s), that - * don't resolve to `undefined` into the destination object. Subsequent sources - * overwrite property assignments of previous sources. If `customizer` is - * provided it is invoked to produce the merged values of the destination and - * source properties. If `customizer` returns `undefined` merging is handled - * by the method instead. The `customizer` is bound to `thisArg` and invoked - * with five arguments; (objectValue, sourceValue, key, object, source). - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The destination object. - * @param {...Object} [sources] The source objects. - * @param {Function} [customizer] The function to customize merging properties. - * @param {*} [thisArg] The `this` binding of `customizer`. - * @returns {Object} Returns `object`. - * @example - * - * var users = { - * 'data': [{ 'user': 'barney' }, { 'user': 'fred' }] - * }; - * - * var ages = { - * 'data': [{ 'age': 36 }, { 'age': 40 }] - * }; - * - * _.merge(users, ages); - * // => { 'data': [{ 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 40 }] } - * - * // using a customizer callback - * var object = { - * 'fruits': ['apple'], - * 'vegetables': ['beet'] - * }; - * - * var other = { - * 'fruits': ['banana'], - * 'vegetables': ['carrot'] - * }; - * - * _.merge(object, other, function(a, b) { - * return _.isArray(a) ? a.concat(b) : undefined; - * }); - * // => { 'fruits': ['apple', 'banana'], 'vegetables': ['beet', 'carrot'] } - */ - var merge = createAssigner(baseMerge); - - /** - * The opposite of `_.pick`; this method creates an object composed of the - * own and inherited enumerable properties of `object` that are not omitted. - * Property names may be specified as individual arguments or as arrays of - * property names. If `predicate` is provided it is invoked for each property - * of `object` omitting the properties `predicate` returns truthy for. The - * predicate is bound to `thisArg` and invoked with three arguments; - * (value, key, object). - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The source object. - * @param {Function|...(string|string[])} [predicate] The function invoked per - * iteration or property names to omit, specified as individual property - * names or arrays of property names. - * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {Object} Returns the new object. - * @example - * - * var object = { 'user': 'fred', 'age': 40 }; - * - * _.omit(object, 'age'); - * // => { 'user': 'fred' } - * - * _.omit(object, _.isNumber); - * // => { 'user': 'fred' } - */ - function omit(object, predicate, thisArg) { - if (object == null) { - return {}; - } - if (typeof predicate != 'function') { - var props = arrayMap(baseFlatten(arguments, false, false, 1), String); - return pickByArray(object, baseDifference(keysIn(object), props)); - } - predicate = bindCallback(predicate, thisArg, 3); - return pickByCallback(object, function(value, key, object) { - return !predicate(value, key, object); - }); - } - - /** - * Creates a two dimensional array of the key-value pairs for `object`, - * e.g. `[[key1, value1], [key2, value2]]`. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to inspect. - * @returns {Array} Returns the new array of key-value pairs. - * @example - * - * _.pairs({ 'barney': 36, 'fred': 40 }); - * // => [['barney', 36], ['fred', 40]] (iteration order is not guaranteed) - */ - function pairs(object) { - var index = -1, - props = keys(object), - length = props.length, - result = Array(length); - - while (++index < length) { - var key = props[index]; - result[index] = [key, object[key]]; - } - return result; - } - - /** - * Creates an object composed of the picked `object` properties. Property - * names may be specified as individual arguments or as arrays of property - * names. If `predicate` is provided it is invoked for each property of `object` - * picking the properties `predicate` returns truthy for. The predicate is - * bound to `thisArg` and invoked with three arguments; (value, key, object). - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The source object. - * @param {Function|...(string|string[])} [predicate] The function invoked per - * iteration or property names to pick, specified as individual property - * names or arrays of property names. - * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {Object} Returns the new object. - * @example - * - * var object = { 'user': 'fred', 'age': 40 }; - * - * _.pick(object, 'user'); - * // => { 'user': 'fred' } - * - * _.pick(object, _.isString); - * // => { 'user': 'fred' } - */ - function pick(object, predicate, thisArg) { - if (object == null) { - return {}; - } - return typeof predicate == 'function' - ? pickByCallback(object, bindCallback(predicate, thisArg, 3)) - : pickByArray(object, baseFlatten(arguments, false, false, 1)); - } - - /** - * Resolves the value of property `key` on `object`. If the value of `key` is - * a function it is invoked with the `this` binding of `object` and its result - * is returned, else the property value is returned. If the property value is - * `undefined` the `defaultValue` is used in its place. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @param {string} key The key of the property to resolve. - * @param {*} [defaultValue] The value returned if the property value - * resolves to `undefined`. - * @returns {*} Returns the resolved value. - * @example - * - * var object = { 'user': 'fred', 'age': _.constant(40) }; - * - * _.result(object, 'user'); - * // => 'fred' - * - * _.result(object, 'age'); - * // => 40 - * - * _.result(object, 'status', 'busy'); - * // => 'busy' - * - * _.result(object, 'status', _.constant('busy')); - * // => 'busy' - */ - function result(object, key, defaultValue) { - var value = object == null ? undefined : object[key]; - if (typeof value == 'undefined') { - value = defaultValue; - } - return isFunction(value) ? value.call(object) : value; - } - - /** - * An alternative to `_.reduce`; this method transforms `object` to a new - * `accumulator` object which is the result of running each of its own enumerable - * properties through `iteratee`, with each invocation potentially mutating - * the `accumulator` object. The `iteratee` is bound to `thisArg` and invoked - * with four arguments; (accumulator, value, key, object). Iterator functions - * may exit iteration early by explicitly returning `false`. - * - * @static - * @memberOf _ - * @category Object - * @param {Array|Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @param {*} [accumulator] The custom accumulator value. - * @param {*} [thisArg] The `this` binding of `iteratee`. - * @returns {*} Returns the accumulated value. - * @example - * - * var squares = _.transform([1, 2, 3, 4, 5, 6], function(result, n) { - * n *= n; - * if (n % 2) { - * return result.push(n) < 3; - * } - * }); - * // => [1, 9, 25] - * - * var mapped = _.transform({ 'a': 1, 'b': 2, 'c': 3 }, function(result, n, key) { - * result[key] = n * 3; - * }); - * // => { 'a': 3, 'b': 6, 'c': 9 } - */ - function transform(object, iteratee, accumulator, thisArg) { - var isArr = isArray(object) || isTypedArray(object); - iteratee = getCallback(iteratee, thisArg, 4); - - if (accumulator == null) { - if (isArr || isObject(object)) { - var Ctor = object.constructor; - if (isArr) { - accumulator = isArray(object) ? new Ctor : []; - } else { - accumulator = baseCreate(typeof Ctor == 'function' && Ctor.prototype); - } - } else { - accumulator = {}; - } - } - (isArr ? arrayEach : baseForOwn)(object, function(value, index, object) { - return iteratee(accumulator, value, index, object); - }); - return accumulator; - } - - /** - * Creates an array of the own enumerable property values of `object`. - * - * **Note:** Non-object values are coerced to objects. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property values. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.values(new Foo); - * // => [1, 2] (iteration order is not guaranteed) - * - * _.values('hi'); - * // => ['h', 'i'] - */ - function values(object) { - return baseValues(object, keys(object)); - } - - /** - * Creates an array of the own and inherited enumerable property values - * of `object`. - * - * **Note:** Non-object values are coerced to objects. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property values. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.valuesIn(new Foo); - * // => [1, 2, 3] (iteration order is not guaranteed) - */ - function valuesIn(object) { - return baseValues(object, keysIn(object)); - } - - /*------------------------------------------------------------------------*/ - - /** - * Produces a random number between `min` and `max` (inclusive). If only one - * argument is provided a number between `0` and the given number is returned. - * If `floating` is `true`, or either `min` or `max` are floats, a floating-point - * number is returned instead of an integer. - * - * @static - * @memberOf _ - * @category Number - * @param {number} [min=0] The minimum possible value. - * @param {number} [max=1] The maximum possible value. - * @param {boolean} [floating] Specify returning a floating-point number. - * @returns {number} Returns the random number. - * @example - * - * _.random(0, 5); - * // => an integer between 0 and 5 - * - * _.random(5); - * // => also an integer between 0 and 5 - * - * _.random(5, true); - * // => a floating-point number between 0 and 5 - * - * _.random(1.2, 5.2); - * // => a floating-point number between 1.2 and 5.2 - */ - function random(min, max, floating) { - if (floating && isIterateeCall(min, max, floating)) { - max = floating = null; - } - var noMin = min == null, - noMax = max == null; - - if (floating == null) { - if (noMax && typeof min == 'boolean') { - floating = min; - min = 1; - } - else if (typeof max == 'boolean') { - floating = max; - noMax = true; - } - } - if (noMin && noMax) { - max = 1; - noMax = false; - } - min = +min || 0; - if (noMax) { - max = min; - min = 0; - } else { - max = +max || 0; - } - if (floating || min % 1 || max % 1) { - var rand = nativeRandom(); - return nativeMin(min + (rand * (max - min + parseFloat('1e-' + ((rand + '').length - 1)))), max); - } - return baseRandom(min, max); - } - - /*------------------------------------------------------------------------*/ - - /** - * Converts `string` to camel case. - * See [Wikipedia](https://en.wikipedia.org/wiki/CamelCase) for more details. - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The string to convert. - * @returns {string} Returns the camel cased string. - * @example - * - * _.camelCase('Foo Bar'); - * // => 'fooBar' - * - * _.camelCase('--foo-bar'); - * // => 'fooBar' - * - * _.camelCase('__foo_bar__'); - * // => 'fooBar' - */ - var camelCase = createCompounder(function(result, word, index) { - word = word.toLowerCase(); - return result + (index ? (word.charAt(0).toUpperCase() + word.slice(1)) : word); - }); - - /** - * Capitalizes the first character of `string`. - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The string to capitalize. - * @returns {string} Returns the capitalized string. - * @example - * - * _.capitalize('fred'); - * // => 'Fred' - */ - function capitalize(string) { - string = baseToString(string); - return string && (string.charAt(0).toUpperCase() + string.slice(1)); - } - - /** - * Deburrs `string` by converting latin-1 supplementary letters to basic latin letters. - * See [Wikipedia](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table) - * for more details. - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The string to deburr. - * @returns {string} Returns the deburred string. - * @example - * - * _.deburr('déjà vu'); - * // => 'deja vu' - */ - function deburr(string) { - string = baseToString(string); - return string && string.replace(reLatin1, deburrLetter); - } - - /** - * Checks if `string` ends with the given target string. - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The string to search. - * @param {string} [target] The string to search for. - * @param {number} [position=string.length] The position to search from. - * @returns {boolean} Returns `true` if `string` ends with `target`, else `false`. - * @example - * - * _.endsWith('abc', 'c'); - * // => true - * - * _.endsWith('abc', 'b'); - * // => false - * - * _.endsWith('abc', 'b', 2); - * // => true - */ - function endsWith(string, target, position) { - string = baseToString(string); - target = (target + ''); - - var length = string.length; - position = (typeof position == 'undefined' ? length : nativeMin(position < 0 ? 0 : (+position || 0), length)) - target.length; - return position >= 0 && string.indexOf(target, position) == position; - } - - /** - * Converts the characters "&", "<", ">", '"', "'", and '`', in `string` to - * their corresponding HTML entities. - * - * **Note:** No other characters are escaped. To escape additional characters - * use a third-party library like [_he_](https://mths.be/he). - * - * Though the ">" character is escaped for symmetry, characters like - * ">" and "/" don't require escaping in HTML and have no special meaning - * unless they're part of a tag or unquoted attribute value. - * See [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands) - * (under "semi-related fun fact") for more details. - * - * Backticks are escaped because in Internet Explorer < 9, they can break out - * of attribute values or HTML comments. See [#102](https://html5sec.org/#102), - * [#108](https://html5sec.org/#108), and [#133](https://html5sec.org/#133) of - * the [HTML5 Security Cheatsheet](https://html5sec.org/) for more details. - * - * When working with HTML you should always quote attribute values to reduce - * XSS vectors. See [Ryan Grove's article](http://wonko.com/post/html-escaping) - * for more details. - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The string to escape. - * @returns {string} Returns the escaped string. - * @example - * - * _.escape('fred, barney, & pebbles'); - * // => 'fred, barney, & pebbles' - */ - function escape(string) { - // Reset `lastIndex` because in IE < 9 `String#replace` does not. - string = baseToString(string); - return (string && reHasUnescapedHtml.test(string)) - ? string.replace(reUnescapedHtml, escapeHtmlChar) - : string; - } - - /** - * Escapes the `RegExp` special characters "\", "^", "$", ".", "|", "?", "*", - * "+", "(", ")", "[", "]", "{" and "}" in `string`. - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The string to escape. - * @returns {string} Returns the escaped string. - * @example - * - * _.escapeRegExp('[lodash](https://lodash.com/)'); - * // => '\[lodash\]\(https://lodash\.com/\)' - */ - function escapeRegExp(string) { - string = baseToString(string); - return (string && reHasRegExpChars.test(string)) - ? string.replace(reRegExpChars, '\\$&') - : string; - } - - /** - * Converts `string` to kebab case (a.k.a. spinal case). - * See [Wikipedia](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles) for - * more details. - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The string to convert. - * @returns {string} Returns the kebab cased string. - * @example - * - * _.kebabCase('Foo Bar'); - * // => 'foo-bar' - * - * _.kebabCase('fooBar'); - * // => 'foo-bar' - * - * _.kebabCase('__foo_bar__'); - * // => 'foo-bar' - */ - var kebabCase = createCompounder(function(result, word, index) { - return result + (index ? '-' : '') + word.toLowerCase(); - }); - - /** - * Pads `string` on the left and right sides if it is shorter then the given - * padding length. The `chars` string may be truncated if the number of padding - * characters can't be evenly divided by the padding length. - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The string to pad. - * @param {number} [length=0] The padding length. - * @param {string} [chars=' '] The string used as padding. - * @returns {string} Returns the padded string. - * @example - * - * _.pad('abc', 8); - * // => ' abc ' - * - * _.pad('abc', 8, '_-'); - * // => '_-abc_-_' - * - * _.pad('abc', 3); - * // => 'abc' - */ - function pad(string, length, chars) { - string = baseToString(string); - length = +length; - - var strLength = string.length; - if (strLength >= length || !nativeIsFinite(length)) { - return string; - } - var mid = (length - strLength) / 2, - leftLength = floor(mid), - rightLength = ceil(mid); - - chars = createPad('', rightLength, chars); - return chars.slice(0, leftLength) + string + chars; - } - - /** - * Pads `string` on the left side if it is shorter then the given padding - * length. The `chars` string may be truncated if the number of padding - * characters exceeds the padding length. - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The string to pad. - * @param {number} [length=0] The padding length. - * @param {string} [chars=' '] The string used as padding. - * @returns {string} Returns the padded string. - * @example - * - * _.padLeft('abc', 6); - * // => ' abc' - * - * _.padLeft('abc', 6, '_-'); - * // => '_-_abc' - * - * _.padLeft('abc', 3); - * // => 'abc' - */ - function padLeft(string, length, chars) { - string = baseToString(string); - return string && (createPad(string, length, chars) + string); - } - - /** - * Pads `string` on the right side if it is shorter then the given padding - * length. The `chars` string may be truncated if the number of padding - * characters exceeds the padding length. - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The string to pad. - * @param {number} [length=0] The padding length. - * @param {string} [chars=' '] The string used as padding. - * @returns {string} Returns the padded string. - * @example - * - * _.padRight('abc', 6); - * // => 'abc ' - * - * _.padRight('abc', 6, '_-'); - * // => 'abc_-_' - * - * _.padRight('abc', 3); - * // => 'abc' - */ - function padRight(string, length, chars) { - string = baseToString(string); - return string && (string + createPad(string, length, chars)); - } - - /** - * Converts `string` to an integer of the specified radix. If `radix` is - * `undefined` or `0`, a `radix` of `10` is used unless `value` is a hexadecimal, - * in which case a `radix` of `16` is used. - * - * **Note:** This method aligns with the ES5 implementation of `parseInt`. - * See the [ES5 spec](https://es5.github.io/#E) for more details. - * - * @static - * @memberOf _ - * @category String - * @param {string} string The string to convert. - * @param {number} [radix] The radix to interpret `value` by. - * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. - * @returns {number} Returns the converted integer. - * @example - * - * _.parseInt('08'); - * // => 8 - * - * _.map(['6', '08', '10'], _.parseInt); - * // => [6, 8, 10] - */ - function parseInt(string, radix, guard) { - if (guard && isIterateeCall(string, radix, guard)) { - radix = 0; - } - return nativeParseInt(string, radix); - } - // Fallback for environments with pre-ES5 implementations. - if (nativeParseInt(whitespace + '08') != 8) { - parseInt = function(string, radix, guard) { - // Firefox < 21 and Opera < 15 follow ES3 for `parseInt`. - // Chrome fails to trim leading whitespace characters. - // See https://code.google.com/p/v8/issues/detail?id=3109 for more details. - if (guard ? isIterateeCall(string, radix, guard) : radix == null) { - radix = 0; - } else if (radix) { - radix = +radix; - } - string = trim(string); - return nativeParseInt(string, radix || (reHexPrefix.test(string) ? 16 : 10)); - }; - } - - /** - * Repeats the given string `n` times. - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The string to repeat. - * @param {number} [n=0] The number of times to repeat the string. - * @returns {string} Returns the repeated string. - * @example - * - * _.repeat('*', 3); - * // => '***' - * - * _.repeat('abc', 2); - * // => 'abcabc' - * - * _.repeat('abc', 0); - * // => '' - */ - function repeat(string, n) { - var result = ''; - string = baseToString(string); - n = +n; - if (n < 1 || !string || !nativeIsFinite(n)) { - return result; - } - // Leverage the exponentiation by squaring algorithm for a faster repeat. - // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details. - do { - if (n % 2) { - result += string; - } - n = floor(n / 2); - string += string; - } while (n); - - return result; - } - - /** - * Converts `string` to snake case. - * See [Wikipedia](https://en.wikipedia.org/wiki/Snake_case) for more details. - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The string to convert. - * @returns {string} Returns the snake cased string. - * @example - * - * _.snakeCase('Foo Bar'); - * // => 'foo_bar' - * - * _.snakeCase('fooBar'); - * // => 'foo_bar' - * - * _.snakeCase('--foo-bar'); - * // => 'foo_bar' - */ - var snakeCase = createCompounder(function(result, word, index) { - return result + (index ? '_' : '') + word.toLowerCase(); - }); - - /** - * Converts `string` to start case. - * See [Wikipedia](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage) - * for more details. - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The string to convert. - * @returns {string} Returns the start cased string. - * @example - * - * _.startCase('--foo-bar'); - * // => 'Foo Bar' - * - * _.startCase('fooBar'); - * // => 'Foo Bar' - * - * _.startCase('__foo_bar__'); - * // => 'Foo Bar' - */ - var startCase = createCompounder(function(result, word, index) { - return result + (index ? ' ' : '') + (word.charAt(0).toUpperCase() + word.slice(1)); - }); - - /** - * Checks if `string` starts with the given target string. - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The string to search. - * @param {string} [target] The string to search for. - * @param {number} [position=0] The position to search from. - * @returns {boolean} Returns `true` if `string` starts with `target`, else `false`. - * @example - * - * _.startsWith('abc', 'a'); - * // => true - * - * _.startsWith('abc', 'b'); - * // => false - * - * _.startsWith('abc', 'b', 1); - * // => true - */ - function startsWith(string, target, position) { - string = baseToString(string); - position = position == null ? 0 : nativeMin(position < 0 ? 0 : (+position || 0), string.length); - return string.lastIndexOf(target, position) == position; - } - - /** - * Creates a compiled template function that can interpolate data properties - * in "interpolate" delimiters, HTML-escape interpolated data properties in - * "escape" delimiters, and execute JavaScript in "evaluate" delimiters. Data - * properties may be accessed as free variables in the template. If a setting - * object is provided it takes precedence over `_.templateSettings` values. - * - * **Note:** In the development build `_.template` utilizes sourceURLs for easier debugging. - * See the [HTML5 Rocks article on sourcemaps](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl) - * for more details. - * - * For more information on precompiling templates see - * [lodash's custom builds documentation](https://lodash.com/custom-builds). - * - * For more information on Chrome extension sandboxes see - * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval). - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The template string. - * @param {Object} [options] The options object. - * @param {RegExp} [options.escape] The HTML "escape" delimiter. - * @param {RegExp} [options.evaluate] The "evaluate" delimiter. - * @param {Object} [options.imports] An object to import into the template as free variables. - * @param {RegExp} [options.interpolate] The "interpolate" delimiter. - * @param {string} [options.sourceURL] The sourceURL of the template's compiled source. - * @param {string} [options.variable] The data object variable name. - * @param- {Object} [otherOptions] Enables the legacy `options` param signature. - * @returns {Function} Returns the compiled template function. - * @example - * - * // using the "interpolate" delimiter to create a compiled template - * var compiled = _.template('hello <%= user %>!'); - * compiled({ 'user': 'fred' }); - * // => 'hello fred!' - * - * // using the HTML "escape" delimiter to escape data property values - * var compiled = _.template('<%- value %>'); - * compiled({ 'value': ' - - - - - - - -
- - - \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/responsive/examples/gantt.html b/chronos/static/js/amcharts/plugins/responsive/examples/gantt.html deleted file mode 100644 index 145f977..0000000 --- a/chronos/static/js/amcharts/plugins/responsive/examples/gantt.html +++ /dev/null @@ -1,304 +0,0 @@ - - - - - - - - - - - - - - - - -
- - \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/responsive/examples/gauge.html b/chronos/static/js/amcharts/plugins/responsive/examples/gauge.html deleted file mode 100644 index 6f9c1d4..0000000 --- a/chronos/static/js/amcharts/plugins/responsive/examples/gauge.html +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - amCharts Responsive Example - - - - - - - - -
- - - \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/responsive/examples/images/bicycle.png b/chronos/static/js/amcharts/plugins/responsive/examples/images/bicycle.png deleted file mode 100644 index 0873bf9b3a8280fbe79d91eaaf4704ea89fba47a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1177 zcmV;K1ZMk*P)(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fd zMgRZ=A4x<(RCwB~meFg|To}fGSr%$SUFl?-BP%;NgcTuMlnR?7yY)f^VW7A3f14M( z>Xl9zDisu}Zf4z}MZ3CM*U3z9#AaED=ezhY-&b{=pMHTr4tbyRoaemfecpqVlK=DF z+S-!6{`d2TPY?vs_kH&F_j&c|6>r|W;r8v@QV5~^EdGxPA3l7@>({S|;}}&{nVOp7 zD6(S-eczXH94BK{RY|AQU6Vyo#KFM?s2;|+ncWJlV^!4?jX&RH0 zlU%=ky(?~PY>f5wbsRXaI{AG5 z*c2#I%AN;8*L7uSX-U3#@d91fQB}1oCXQpmFy!><)7-gp=Z7u-PYQKiS6tVX@7}!w zV0d_#nVFfcoCZNasZ_%AJofhXNT<{Mb`Eu2S5{Y7@qM3Dr%vJfKI7x#3=R$^Dpprl z<^KLYVHi@Y)eu7bI-%>j(s3N>^*V-OaOu(|={OFiX<}Ix_wL=JTCFB3+wHboSy>^Q z%>q!X)yU`b^6}%x#Bq!e0?V?x7TEXgquFfA#l=OImzQZY8W@H_tyaVHJZ#%0m&=jO zW~o#v$pTkaRtSQCxw$!P+velPk9_#>0Zr4W*Xt}VFSEF~NVD0LU4*Xd%3`s|&dv@~ zQ&TJ~EHE=OL#0x|G)+`h<^KKqjEs!XYPER#_N{#O?3t`qtDHT1md(vg1_uWj7#Lt< zV}q+#ud=YP!1?p%+1c5lSS;eYu1p9W$D!3~F+Dxaty{MgA%s$`R{8Yl6BjRDB#vX^ zIA&;Q2u;&?^5hAnQVG*EIeGFVo12?_`SJzJve@3<=KcHk2qBdD`FUk}dYV?Nh2uE? zC~PzuXqrZ$P)Ho+<;$0(QYj7(4^dSW+qOxk(-?+9wOS>PW3F7eg6q1ds>GQn(dl#uf?8A=~XXp68LtWSE$k zP;TD5DGv?~P*s(~!$YDdLesRQ@FyoH`5E@|<;%+0*jUmnJkKKxLkz<}*L9^2KnOt; zMU>0sL`goMS8Ur>EXz{%_V#cbhk=0sY};0B+g5a4SB}E|+f&QsGEo#I_1O<#Sr(N_ zg|)Rc09hy$$Y!&6p2zd&&skqz$23hwMn--p z8mUx@Fbs*Jh+HnmwQJYN<#Ipu$zE8~G`Vr(MuP1!?{7}iXf)__Iv9q55CYq_$z(D; rP5CJ7_fB(UxA^9zzkBUC3j5apjXrE*MRrYd00000NkvXXu0mjf$*w?F diff --git a/chronos/static/js/amcharts/plugins/responsive/examples/images/car.png b/chronos/static/js/amcharts/plugins/responsive/examples/images/car.png deleted file mode 100644 index 4214fb72135916f2cbf92589c275ff74a399fdd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 759 zcmV(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fd zMgRZ;eMv+?RCwClmc2{sP#DI4`5?FnA#le407k57f?V{jN z6$RHC2sS!&sD{v*;yLF|2DQ~H-s^DREjj0RUY;kq?7=(+ii}Hj<~$MR6kN!tJS!@y=8H6k!rO{E|(*YW45-o0NB{rU}9o| zi;D|RPEI&HJj8WfH8(e>eOqCzR#Vs4*Gx}Ov$nRz%*>4Dd7kFFZf33Px=c<^YSn60 z^L?LoyUqUoKCM(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fd zMgRZ%y^eoRGm8Kp2ICk2*Gz&+rK$nE|-O2 z7-*Wtu30>Ev|CC{Wf4{W6yew2z#j-3;PEN3G8{4)?rBdj+{xwN$+ZHb`F95W+ zw|^*)X__LLOj0Nms8*}gYBe4n9$Nc_LgDiso}8SBcsx#}QfVFT>FHs9eqOwmr(7!^s_g9Skj-ZQ@zs96pSig?Ha9nM zI2?GrUTU=(Znv9YFv#@uG@7PKZ%nhXu_5B|H~@;GaCv!2CX-=gWaLxVhC(5N!62HZ zk;!D<>}9iA8jS{vi;I7oCXq;pcs!1(szf3Y0)YUBhllL#?O_-OE|-hGzCMb@;yX!Y zSw`1&ve_)TT&}g=)zyWfC{!vH^7%ZbX$no#BpD!;N&ygwL>L$tAel^J7)Hw+s;bi4 z+l#~Dc*oA^bmH-NNT<_0Jv|}IGHq>b^z`(wva-U=%nUa-H^gGGKN;5Rby2I;P!xqg zAi&w#8N0i?G@DIiS^g0RZf|dSdV2a$QisEV&*!7FvlFM&$?)(ni9~{CyM@L6Vr_*e0Z4rq?7#bSl>gtM8se~-cgu`JbCMG0+ zdc7_lA0J!HURysH42r$IJq`~K35UY~92^{ASr+5t<8Nc}vr8L|1^`o2Q!FknerfcW zrYY9e*0{X9L{(J)EXyJk3K5M)(KJnZlfy(JAyTPSD?_8BqhFqLuR&w6SgU70=kUYv qRIk^?XLId$OZx6FhRiqD9|HhZp1so50q3j$0000 - - - - - amCharts Responsive Example - - - - - - - - - - -
- - - - - - -
- -
800x500px
-
- -
- - - \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/responsive/examples/map.html b/chronos/static/js/amcharts/plugins/responsive/examples/map.html deleted file mode 100644 index fba6ae7..0000000 --- a/chronos/static/js/amcharts/plugins/responsive/examples/map.html +++ /dev/null @@ -1,198 +0,0 @@ - - - - - - - amCharts Responsive Example - - - - - - - - - -
- - - \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/responsive/examples/pie1.html b/chronos/static/js/amcharts/plugins/responsive/examples/pie1.html deleted file mode 100644 index 5b69183..0000000 --- a/chronos/static/js/amcharts/plugins/responsive/examples/pie1.html +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - amCharts Responsive Example - - - - - - - - -
- - - \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/responsive/examples/pie2.html b/chronos/static/js/amcharts/plugins/responsive/examples/pie2.html deleted file mode 100644 index 4b41a3b..0000000 --- a/chronos/static/js/amcharts/plugins/responsive/examples/pie2.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - amCharts Responsive Example - - - - - - - - -
- - - \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/responsive/examples/pie3.html b/chronos/static/js/amcharts/plugins/responsive/examples/pie3.html deleted file mode 100644 index e0f2d7d..0000000 --- a/chronos/static/js/amcharts/plugins/responsive/examples/pie3.html +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - - amCharts Responsive Example - - - - - - - - -
-
- - - \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/responsive/examples/radar.html b/chronos/static/js/amcharts/plugins/responsive/examples/radar.html deleted file mode 100644 index dbfb314..0000000 --- a/chronos/static/js/amcharts/plugins/responsive/examples/radar.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - amCharts Responsive Example - - - - - - - - -
- - - \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/responsive/examples/serial1.html b/chronos/static/js/amcharts/plugins/responsive/examples/serial1.html deleted file mode 100644 index fcdce99..0000000 --- a/chronos/static/js/amcharts/plugins/responsive/examples/serial1.html +++ /dev/null @@ -1,203 +0,0 @@ - - - - - - - amCharts Responsive Example - - - - - - - - -
- - - \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/responsive/examples/serial2.html b/chronos/static/js/amcharts/plugins/responsive/examples/serial2.html deleted file mode 100644 index 6610515..0000000 --- a/chronos/static/js/amcharts/plugins/responsive/examples/serial2.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - amCharts Responsive Example - - - - - - - - - -
- - - \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/responsive/examples/serial3.html b/chronos/static/js/amcharts/plugins/responsive/examples/serial3.html deleted file mode 100644 index 351d1eb..0000000 --- a/chronos/static/js/amcharts/plugins/responsive/examples/serial3.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - amCharts Responsive Example - - - - - - - - -
- - - \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/responsive/examples/stock.html b/chronos/static/js/amcharts/plugins/responsive/examples/stock.html deleted file mode 100644 index 71b50dc..0000000 --- a/chronos/static/js/amcharts/plugins/responsive/examples/stock.html +++ /dev/null @@ -1,210 +0,0 @@ - - - - - - - amCharts Responsive Example - - - - - - - - - -
- - - \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/responsive/examples/xy.html b/chronos/static/js/amcharts/plugins/responsive/examples/xy.html deleted file mode 100644 index 8d61d70..0000000 --- a/chronos/static/js/amcharts/plugins/responsive/examples/xy.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - amCharts Responsive Example - - - - - - - - -
- - - \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/responsive/license.txt b/chronos/static/js/amcharts/plugins/responsive/license.txt deleted file mode 100644 index a765bc1..0000000 --- a/chronos/static/js/amcharts/plugins/responsive/license.txt +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright {yyyy} {name of copyright owner} - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/responsive/readme.md b/chronos/static/js/amcharts/plugins/responsive/readme.md deleted file mode 100644 index 72938f0..0000000 --- a/chronos/static/js/amcharts/plugins/responsive/readme.md +++ /dev/null @@ -1,363 +0,0 @@ -# amCharts Responsive - -Version: 1.0.2 - - -## Description - -Use this plugin to enable "responsive" features for amCharts' JavaScript Charts, -JavaScript Stock Chart, or JavaScript Maps. - -"Responsive" chart or map will modify it's features dynamically (even as you -resize the container) based on the available area. For example: a full fledged -line chart with legend guides, labels, titles and other elements will be -displayed in all its glory if container is big enough. - -If the container shrinks (i.e. you resize a browser window or view it on an -iPad), it starts "compacting" the chart. First the legend is removed. Shrink it -even further, axis titles are removed and its value labels are moved inside the -plot area. Going even smaller, bullets, labels gone. All the way to the -sparkline representation of the chart. - -Plugin brings a universal set of pre-defined rules that you can use to instantly -enable responsiveness. Those are custom-tailored for each chart/map type and -will probably fit your requirements out-of the-box. All you need to do is to -enable "responsive" plugin for your chart instance. - -You can modify those defaults rules, or make your own list. The plugin allows -that. (see further down this file for instructions) - - -## Usage - -1. Include the minified version of file of this plugin. I.e.: - -``` - -``` - -(this needs to go after all the other amCharts includes) - -2. Add the following setting to your chart configuration: - -``` -AmCharts.makeChart( "chartdiv", { - ..., - "responsive": { - "enabled": true - } -} ); -``` - -Or if you are using non-JSON setup: - -``` -chart.responsive = { - "enabled": true -}; -``` - -That's it. - - -## Advanced use - -### Rules - -You can modify (or completely overwrite) the default responsive rules used by -the plugin. - -A plugin works by checking chart area dimensions after each resize. (or after -initial build / mobile device orientation change) It then overrides particular -settings suitable for these particular dimensions. - -Override rules are implemented by defining chart rules, or just "rules" moving -forward. Each rule has two things: - -1. Dimension conditions; -2. Overrides. (a set of properties to override for this particular rule) - -A rule is an object, for example: - -``` -{ - "minWidth": 200, - "maxWidth": 400, - "maxHeight": 400, - "minHeight": 200, - "overrides": { - "precision": 2, - "legend": { - "enabled": false - }, - "valueAxes": { - "inside": true - } - } -} -``` - -The above rule will be applicable to a chart that is between 200px and 400px in -width and height. - -It is not necessary to add all of the dimensional properties. You just neat at -least one. - -So for example to make the rule apply to all charts with width 400px or lower, -you would do something like this: - -``` -{ - "maxWidth": 400, - "overrides": { - "precision": 2, - "legend": { - "enabled": false - }, - "valueAxes": { - "inside": true - } - } -} -``` - -Please note that there are several other conditional properties besides the ones -that deal with chart's dimensions: - -* "rotate" (true|false) - set this property if you want to make this rule - applicable to rotated serial chart only (i.e. bar chart) - -* "legendPosition" ("top|bottom|left|right") - set this property if you want the - rule applied only when the chart legend is set to particular position. - Please note that this does not check whether the legend is enabled at all. - -Now, on to explaining "overrides". It's an object, that contains properties that -you want to override the chart's initial ones with. - -It can be either simple properties, like "fontSize" or "precision", or complext -types like object, or array. - -To override a property of a child object, such as "legend", you would simply go -with JSON representation of the properties you need to override. I.e.: - -``` -"legend": { - "enabled": false -} -``` - -This will look for a "legend" property in chart object, then change it's -"enabled" property to false. - -### Overriding arrays of objects - -Some objects in charts are collected in arrays, i.e. "graphs", "valueAxes", etc. - -There are some ways to override their properties as well. - -To override properties for ALL objects in the array, you would provide an -override instruction as an object. I.e.: - -``` -"graphs": { - "bullet": "round", - "lineThickness": 5 -} -``` - -The above will add a round bullet and set line thickness to all of the graphs on -the chart. - -You can also target individual items in the array. There are two ways to do -that: - -a) Use "id" property; -b) Apply using the same index. - -To individually apply property overrides, you will need to supply override -instructions as an array: - -``` -"graphs": [ - { - "id": "g1", - "bullet": "round", - "lineThickness": 5 - } -] -``` - -The above will apply the same properties for the graph with an id of "g1" only. -It will not touch the rest of the graphs. - -Please note that original graph definition in your chart settings needs to have -the "id" property set so this plugin can target it. - -Or you can omit the "id" and just apply overrides in the same order as you have -them defined. I.e.: - -``` -"graphs": [ - { - "bullet": "round" - }, - { - "bullet": "square" - } -] -``` - -The above will apply round bullets to the first defined graph, and square -bullets to the second graph. - -### Chaining multiple rules - -The cool pat is that you can daisy-chain the override rules, much like in CSS. - -The plugin will examine all of the rules if their dimensional conditions match -current chart condition and will apply their overrides in the same order they -are defined. - -Consider this rule set: - -``` -"responsive": { - "enabled": true, - "rules": [ - // at 400px wide, we hide legend - { - "maxWidth": 400, - "overrides": { - "legend": { - "enabled" - } - } - }, - - // at 300px or less, we move value axis labels inside plot area - // the legend is still hidden because the above rule is still applicable - { - "maxWidth": 300, - "overrides": { - "valueAxes": { - "inside": true - } - } - }, - - // at 200 px we hide value axis labels altogether - { - "maxWidth": 200, - "overrides": { - "valueAxes": { - "labelsEnabled": false - } - } - } - - ] -} -``` - -In case several rules modify the same property, the last one will always "win". - -### Combining custom rules with pre-defined ones - -The plugin will combine your custom rules with pre-defined ones automatically. - -In case you want to go pure and set only your own responsive rules, you can set -property "addDefaultRules" to false. I.e.: - -``` -"responsive": { - "enabled": true, - "addDefaultRules": false, - "rules": [ - { - "maxWidth": 400, - "overrides": { - "legend": { - "enabled" - } - } - } - ] -} -``` - -When your custom rules are combined with pre-defined ones, yours are appended at -the end of the list. This means that your rules will always have the "last -word". - - -## Requirements - -This plugin requires at least 3.13 version of JavaScript Charts, JavaScript -Stock Chart or JavaScript Maps. - -Any older versions will be ignored by this plugin. The charts will function but -no responsive rules will be applied to them. - - -## Demos - -Run the index.html in the subdirectory /examples. It will allow viewing misc -chart types at various resolutions. - - -## Extending this plugin - -You're encouraged to modify, extend and make derivative plugins out of this -plugin. - -You can modify files, included in this archive or, better yet, fork this project -on GitHub: - -https://github.com/amcharts/responsive - -We're curious types. Please let us know (contact@amcharts.com) if you do create -something new out of this plugin. - - -## License - -This plugin is licensed under Apache License 2.0. - -This basically means you're free to use or modify this plugin, even make your -own versions or completely different products out of it. - -Please see attached file "license.txt" for the complete license or online here: - -http://www.apache.org/licenses/LICENSE-2.0 - - -## Contact us - -* Email:contact@amcharts.com -* Web: http://www.amcharts.com/ -* Facebook: https://www.facebook.com/amcharts -* Twitter: https://twitter.com/amcharts - - -## Changelog - -### 1.0.2 -* Fixed a bug where the plugin was causing an error when chart/map container was being hidden - -### 1.0.1 -* Fixed bug with overrides being overwritten with chart object in some cases -* V3.14 compatibility - -### 1.0 -* Added support for GANTT chart type (available sin JavaScript Charts V3.14) - -### 0.9.2 -* Fixed a custom rules being applied in the wrong order - -### 0.9.1 -* Made all examples use minified version of the plugin -* Introduced removal of grid lines on micro charts -* Tweaked legend hiding dimensions for pie chart - -### 0.9 -* Initial release \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/responsive/responsive.js b/chronos/static/js/amcharts/plugins/responsive/responsive.js deleted file mode 100644 index c00682e..0000000 --- a/chronos/static/js/amcharts/plugins/responsive/responsive.js +++ /dev/null @@ -1,1245 +0,0 @@ -/* -Plugin Name: amCharts Responsive -Description: This plugin add responsive functionality to JavaScript Charts and Maps. -Author: Martynas Majeris, amCharts -Contributors: Ohad Schneider -Version: 1.0.2 -Author URI: http://www.amcharts.com/ - -Copyright 2015 amCharts - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. - -Please note that the above license covers only this plugin. It by all means does -not apply to any other amCharts products that are covered by different licenses. -*/ - -/*global AmCharts*/ - -AmCharts.addInitHandler( function( chart ) { - "use strict"; - - if ( chart.responsive === undefined || chart.responsive.ready === true || chart.responsive.enabled !== true ) - return; - - var version = chart.version.split( '.' ); - if ( ( version.length < 2 ) || Number( version[ 0 ] ) < 3 || ( Number( version[ 0 ] ) === 3 && Number( version[ 1 ] ) < 13 ) ) - return; - - // a short variable for easy reference - var r = chart.responsive; - - r.ready = true; - r.currentRules = {}; - r.overridden = []; - - // defaults per chart type - var defaults = { - - /** - * AmPie - */ - 'pie': [ - - /** - * Disable legend in certain cases - */ - { - "maxWidth": 550, - "legendPosition": "left", - "overrides": { - "legend": { - "enabled": false - } - } - }, { - "maxWidth": 550, - "legendPosition": "right", - "overrides": { - "legend": { - "enabled": false - } - } - }, { - "maxWidth": 150, - "overrides": { - "legend": { - "enabled": false - } - } - }, { - "maxHeight": 350, - "legendPosition": "top", - "overrides": { - "legend": { - "enabled": false - } - } - }, { - "maxHeight": 350, - "legendPosition": "bottom", - "overrides": { - "legend": { - "enabled": false - } - } - }, { - "maxHeight": 150, - "overrides": { - "legend": { - "enabled": false - } - } - }, - - /** - * Narrow chart - */ - { - "maxWidth": 400, - "overrides": { - "labelsEnabled": false - } - }, { - "maxWidth": 100, - "overrides": { - "legend": { - "enabled": false - } - } - }, - - /** - * Short chart - */ - { - "maxHeight": 350, - "overrides": { - "pullOutRadius": 0 - } - }, { - "maxHeight": 200, - "overrides": { - "titles": { - "enabled": false - }, - "labelsEnabled": false - } - }, - - /** - * Supersmall - */ - { - "maxWidth": 60, - "overrides": { - "autoMargins": false, - "marginTop": 0, - "marginBottom": 0, - "marginLeft": 0, - "marginRight": 0, - "radius": "50%", - "innerRadius": 0, - "balloon": { - "enabled": false - }, - "legend": { - "enabled": false - } - } - }, { - "maxHeight": 60, - "overrides": { - "marginTop": 0, - "marginBottom": 0, - "marginLeft": 0, - "marginRight": 0, - "radius": "50%", - "innerRadius": 0, - "balloon": { - "enabled": false - }, - "legend": { - "enabled": false - } - } - } - ], - - /** - * AmFunnel - */ - - 'funnel': [ { - "maxWidth": 550, - "legendPosition": "left", - "overrides": { - "legend": { - "enabled": false - } - } - }, { - "maxWidth": 550, - "legendPosition": "right", - "overrides": { - "legend": { - "enabled": false - } - } - }, { - "maxWidth": 150, - "overrides": { - "legend": { - "enabled": false - } - } - }, { - "maxHeight": 500, - "legendPosition": "top", - "overrides": { - "legend": { - "enabled": false - } - } - }, { - "maxHeight": 500, - "legendPosition": "bottom", - "overrides": { - "legend": { - "enabled": false - } - } - }, { - "maxHeight": 150, - "overrides": { - "legend": { - "enabled": false - } - } - }, { - "maxWidth": 400, - "overrides": { - "labelsEnabled": false, - "marginLeft": 10, - "marginRight": 10, - "legend": { - "enabled": false - } - } - }, { - "maxHeight": 350, - "overrides": { - "pullOutRadius": 0, - "legend": { - "enabled": false - } - } - }, { - "maxHeight": 300, - "overrides": { - "titles": { - "enabled": false - } - } - } ], - - /** - * AmRadar - */ - - "radar": [ { - "maxWidth": 550, - "legendPosition": "left", - "overrides": { - "legend": { - "enabled": false - } - } - }, { - "maxWidth": 550, - "legendPosition": "right", - "overrides": { - "legend": { - "enabled": false - } - } - }, { - "maxWidth": 150, - "overrides": { - "legend": { - "enabled": false - } - } - }, { - "maxHeight": 350, - "legendPosition": "top", - "overrides": { - "legend": { - "enabled": false - } - } - }, { - "maxHeight": 350, - "legendPosition": "bottom", - "overrides": { - "legend": { - "enabled": false - } - } - }, { - "maxHeight": 150, - "overrides": { - "legend": { - "enabled": false - } - } - }, { - "maxWidth": 300, - "overrides": { - "labelsEnabled": false - } - }, { - "maxWidth": 200, - "overrides": { - "autoMargins": false, - "marginTop": 0, - "marginBottom": 0, - "marginLeft": 0, - "marginRight": 0, - "radius": "50%", - "titles": { - "enabled": false - }, - "valueAxes": { - "labelsEnabled": false, - "radarCategoriesEnabled": false - } - } - }, { - "maxHeight": 300, - "overrides": { - "labelsEnabled": false - } - }, { - "maxHeight": 200, - "overrides": { - "autoMargins": false, - "marginTop": 0, - "marginBottom": 0, - "marginLeft": 0, - "marginRight": 0, - "radius": "50%", - "titles": { - "enabled": false - }, - "valueAxes": { - "radarCategoriesEnabled": false - } - } - }, { - "maxHeight": 100, - "overrides": { - "valueAxes": { - "labelsEnabled": false - } - } - } ], - - /** - * AmGauge - */ - - 'gauge': [ { - "maxWidth": 550, - "legendPosition": "left", - "overrides": { - "legend": { - "enabled": false - } - } - }, { - "maxWidth": 550, - "legendPosition": "right", - "overrides": { - "legend": { - "enabled": false - } - } - }, { - "maxWidth": 150, - "overrides": { - "legend": { - "enabled": false - } - } - }, { - "maxHeight": 500, - "legendPosition": "top", - "overrides": { - "legend": { - "enabled": false - } - } - }, { - "maxHeight": 500, - "legendPosition": "bottom", - "overrides": { - "legend": { - "enabled": false - } - } - }, { - "maxHeight": 150, - "overrides": { - "legend": { - "enabled": false - } - } - }, { - "maxWidth": 200, - "overrides": { - "titles": { - "enabled": false - }, - "allLabels": { - "enabled": false - }, - "axes": { - "labelsEnabled": false - } - } - }, { - "maxHeight": 200, - "overrides": { - "titles": { - "enabled": false - }, - "allLabels": { - "enabled": false - }, - "axes": { - "labelsEnabled": false - } - } - } ], - - /** - * AmSerial - */ - "serial": [ - - /** - * Disable legend in certain cases - */ - { - "maxWidth": 550, - "legendPosition": "left", - "overrides": { - "legend": { - "enabled": false - } - } - }, { - "maxWidth": 550, - "legendPosition": "right", - "overrides": { - "legend": { - "enabled": false - } - } - }, { - "maxWidth": 100, - "overrides": { - "legend": { - "enabled": false - } - } - }, { - "maxHeight": 350, - "legendPosition": "top", - "overrides": { - "legend": { - "enabled": false - } - } - }, { - "maxHeight": 350, - "legendPosition": "bottom", - "overrides": { - "legend": { - "enabled": false - } - } - }, { - "maxHeight": 100, - "overrides": { - "legend": { - "enabled": false - } - } - }, - - - /** - * Narrow chart - */ - { - "maxWidth": 350, - "overrides": { - "autoMarginOffset": 0, - "graphs": { - "hideBulletsCount": 10 - } - } - }, { - "maxWidth": 350, - "rotate": false, - "overrides": { - "marginLeft": 10, - "marginRight": 10, - "valueAxes": { - "ignoreAxisWidth": true, - "inside": true, - "title": "", - "showFirstLabel": false, - "showLastLabel": false - }, - "graphs": { - "bullet": "none" - } - } - }, { - "maxWidth": 350, - "rotate": true, - "overrides": { - "marginLeft": 10, - "marginRight": 10, - "categoryAxis": { - "ignoreAxisWidth": true, - "inside": true, - "title": "" - } - } - }, { - "maxWidth": 200, - "rotate": false, - "overrides": { - "marginLeft": 10, - "marginRight": 10, - "marginTop": 10, - "marginBottom": 10, - "categoryAxis": { - "ignoreAxisWidth": true, - "labelsEnabled": false, - "inside": true, - "title": "", - "guides": { - "inside": true - } - }, - "valueAxes": { - "ignoreAxisWidth": true, - "labelsEnabled": false, - "axisAlpha": 0, - "guides": { - "label": "" - } - }, - "legend": { - "enabled": false - } - } - }, { - "maxWidth": 200, - "rotate": true, - "overrides": { - "chartScrollbar": { - "scrollbarHeight": 4, - "graph": "", - "resizeEnabled": false - }, - "categoryAxis": { - "labelsEnabled": false, - "axisAlpha": 0, - "guides": { - "label": "" - } - }, - "legend": { - "enabled": false - } - } - }, { - "maxWidth": 100, - "rotate": false, - "overrides": { - "valueAxes": { - "gridAlpha": 0 - } - } - }, { - "maxWidth": 100, - "rotate": true, - "overrides": { - "categoryAxis": { - "gridAlpha": 0 - } - } - }, - - /** - * Short chart - */ - { - "maxHeight": 300, - "overrides": { - "autoMarginOffset": 0, - "graphs": { - "hideBulletsCount": 10 - } - } - }, { - "maxHeight": 200, - "rotate": false, - "overrides": { - "marginTop": 10, - "marginBottom": 10, - "categoryAxis": { - "ignoreAxisWidth": true, - "inside": true, - "title": "", - "showFirstLabel": false, - "showLastLabel": false - } - } - }, { - "maxHeight": 200, - "rotate": true, - "overrides": { - "marginTop": 10, - "marginBottom": 10, - "valueAxes": { - "ignoreAxisWidth": true, - "inside": true, - "title": "", - "showFirstLabel": false, - "showLastLabel": false - }, - "graphs": { - "bullet": "none" - } - } - }, { - "maxHeight": 150, - "rotate": false, - "overrides": { - "titles": { - "enabled": false - }, - "chartScrollbar": { - "scrollbarHeight": 4, - "graph": "", - "resizeEnabled": false - }, - "categoryAxis": { - "labelsEnabled": false, - "ignoreAxisWidth": true, - "axisAlpha": 0, - "guides": { - "label": "" - } - } - } - }, { - "maxHeight": 150, - "rotate": true, - "overrides": { - "titles": { - "enabled": false - }, - "valueAxes": { - "labelsEnabled": false, - "ignoreAxisWidth": true, - "axisAlpha": 0, - "guides": { - "label": "" - } - } - } - }, { - "maxHeight": 100, - "rotate": false, - "overrides": { - "valueAxes": { - "labelsEnabled": false, - "ignoreAxisWidth": true, - "axisAlpha": 0, - "gridAlpha": 0, - "guides": { - "label": "" - } - } - } - }, { - "maxHeight": 100, - "rotate": true, - "overrides": { - "categoryAxis": { - "labelsEnabled": false, - "ignoreAxisWidth": true, - "axisAlpha": 0, - "gridAlpha": 0, - "guides": { - "label": "" - } - } - } - }, - - /** - * Really small charts: microcharts and sparklines - */ - { - "maxWidth": 100, - "overrides": { - "autoMargins": false, - "marginTop": 0, - "marginBottom": 0, - "marginLeft": 0, - "marginRight": 0, - "categoryAxis": { - "labelsEnabled": false - }, - "valueAxes": { - "labelsEnabled": false - } - } - }, { - "maxHeight": 100, - "overrides": { - "autoMargins": false, - "marginTop": 0, - "marginBottom": 0, - "marginLeft": 0, - "marginRight": 0, - "categoryAxis": { - "labelsEnabled": false - }, - "valueAxes": { - "labelsEnabled": false - } - } - } - ], - - /** - * AmXY - */ - "xy": [ - - /** - * Disable legend in certain cases - */ - { - "maxWidth": 550, - "legendPosition": "left", - "overrides": { - "legend": { - "enabled": false - } - } - }, { - "maxWidth": 550, - "legendPosition": "right", - "overrides": { - "legend": { - "enabled": false - } - } - }, { - "maxWidth": 100, - "overrides": { - "legend": { - "enabled": false - } - } - }, { - "maxHeight": 350, - "legendPosition": "top", - "overrides": { - "legend": { - "enabled": false - } - } - }, { - "maxHeight": 350, - "legendPosition": "bottom", - "overrides": { - "legend": { - "enabled": false - } - } - }, { - "maxHeight": 100, - "overrides": { - "legend": { - "enabled": false - } - } - }, - - /** - * Narrow chart - */ - { - "maxWidth": 250, - "overrides": { - "autoMarginOffset": 0, - "autoMargins": false, - "marginTop": 0, - "marginBottom": 0, - "marginLeft": 0, - "marginRight": 0, - "valueAxes": { - "inside": true, - "title": "", - "showFirstLabel": false, - "showLastLabel": false - }, - "legend": { - "enabled": false - } - } - }, { - "maxWidth": 150, - "overrides": { - "valueyAxes": { - "labelsEnabled": false, - "axisAlpha": 0, - "gridAlpha": 0, - "guides": { - "label": "" - } - } - } - }, - - /** - * Short chart - */ - { - "maxHeight": 250, - "overrides": { - "autoMarginOffset": 0, - "autoMargins": false, - "marginTop": 0, - "marginBottom": 0, - "marginLeft": 0, - "marginRight": 0, - "valueAxes": { - "inside": true, - "title": "", - "showFirstLabel": false, - "showLastLabel": false - }, - "legend": { - "enabled": false - } - } - }, { - "maxWidth": 150, - "overrides": { - "valueyAxes": { - "labelsEnabled": false, - "axisAlpha": 0, - "gridAlpha": 0, - "guides": { - "label": "" - } - } - } - } - ], - - /** - * AmStock - */ - - 'stock': [ { - "maxWidth": 500, - "overrides": { - "dataSetSelector": { - "position": "top" - }, - "periodSelector": { - "position": "bottom" - } - } - }, { - "maxWidth": 400, - "overrides": { - "dataSetSelector": { - "selectText": "", - "compareText": "" - }, - "periodSelector": { - "periodsText": "", - "inputFieldsEnabled": false - } - } - } ], - - /** - * AmMap - */ - - 'map': [ { - "maxWidth": 200, - "overrides": { - "zoomControl": { - "zoomControlEnabled": false - }, - "smallMap": { - "enabled": false - }, - "valueLegend": { - "enabled": false - }, - "dataProvider": { - "areas": { - "descriptionWindowWidth": 160, - "descriptionWindowRight": 10, - "descriptionWindowTop": 10 - }, - "images": { - "descriptionWindowWidth": 160, - "descriptionWindowRight": 10, - "descriptionWindowTop": 10 - }, - "lines": { - "descriptionWindowWidth": 160, - "descriptionWindowRight": 10, - "descriptionWindowTop": 10 - } - } - } - }, { - "maxWidth": 150, - "overrides": { - "dataProvider": { - "areas": { - "descriptionWindowWidth": 110, - "descriptionWindowRight": 10, - "descriptionWindowTop": 10 - }, - "images": { - "descriptionWindowWidth": 110, - "descriptionWindowRight": 10, - "descriptionWindowTop": 10 - }, - "lines": { - "descriptionWindowWidth": 110, - "descriptionWindowLeft": 10, - "descriptionWindowRight": 10 - } - } - } - }, { - "maxHeight": 200, - "overrides": { - "zoomControl": { - "zoomControlEnabled": false - }, - "smallMap": { - "enabled": false - }, - "valueLegend": { - "enabled": false - }, - "dataProvider": { - "areas": { - "descriptionWindowHeight": 160, - "descriptionWindowRight": 10, - "descriptionWindowTop": 10 - }, - "images": { - "descriptionWindowHeight": 160, - "descriptionWindowRight": 10, - "descriptionWindowTop": 10 - }, - "lines": { - "descriptionWindowHeight": 160, - "descriptionWindowRight": 10, - "descriptionWindowTop": 10 - } - } - } - }, { - "maxHeight": 150, - "overrides": { - "dataProvider": { - "areas": { - "descriptionWindowHeight": 110, - "descriptionWindowRight": 10, - "descriptionWindowTop": 10 - }, - "images": { - "descriptionWindowHeight": 110, - "descriptionWindowRight": 10, - "descriptionWindowTop": 10 - }, - "lines": { - "descriptionWindowHeight": 110, - "descriptionWindowLeft": 10, - "descriptionWindowRight": 10 - } - } - } - } ] - }; - - var isNullOrUndefined = function( obj ) { - return ( obj === null ) || ( obj === undefined ); - }; - - var isArray = function( obj ) { - return ( !isNullOrUndefined( obj ) && Object.prototype.toString.call( obj ) === '[object Array]' ); - }; - - var isObject = function( obj ) { - return ( obj !== null && typeof obj === 'object' ); //the null check is necessary - recall that typeof null === 'object' ! - }; - - var findArrayObjectById = function( arr, id ) { - for ( var i = 0; i < arr.length; i++ ) { - if ( isObject( arr[ i ] ) && arr[ i ].id === id ) - return arr[ i ]; - } - return undefined; //we can use undefined as it doesn't have an Id property and so will never be the desired object from the array - }; - - var cloneWithoutPrototypes = function( obj ) { - if ( !isObject( obj ) ) { - return obj; - } - - if ( isArray( obj ) ) { - return obj.slice(); //effectively clones the array - } - - var clone = {}; //here is where we lose the prototype - for ( var property in obj ) { - if ( Object.prototype.hasOwnProperty.call( obj, property ) ) { - clone[ property ] = cloneWithoutPrototypes( obj[ property ] ); - } - } - return clone; - }; - - var originalValueRetainerPrefix = '{F0578839-A214-4E2D-8D1B-44941ECE8332}_'; - var noOriginalPropertyStub = {}; - - var overrideProperty = function( object, property, overrideValue ) { - - var originalValueRetainerProperty = originalValueRetainerPrefix + property; - if ( !( originalValueRetainerProperty in object ) ) { - object[ originalValueRetainerProperty ] = ( property in object ) ? object[ property ] : noOriginalPropertyStub; - } - - object[ property ] = cloneWithoutPrototypes( overrideValue ); - - r.overridden.push( { - object: object, - property: property - } ); - }; - - var restoreOriginalProperty = function( object, property ) { - var originalValue = object[ originalValueRetainerPrefix + property ]; - if ( originalValue === noOriginalPropertyStub ) { - delete object[ property ]; - } else { - object[ property ] = originalValue; - } - }; - - var restoreOriginals = function() { - while ( r.overridden.length > 0 ) { - var override = r.overridden.pop(); - restoreOriginalProperty( override.object, override.property ); - } - }; - - var redrawChart = function() { - chart.dataChanged = true; - if ( chart.type !== 'xy' ) { - chart.marginsUpdated = false; - } - chart.zoomOutOnDataUpdate = false; - chart.validateNow( true ); - restoreOriginalProperty( chart, 'zoomOutOnDataUpdate' ); - }; - - var applyConfig = function( current, override ) { - if ( isNullOrUndefined( override ) ) { - return; - } - - for ( var property in override ) { - if ( !Object.prototype.hasOwnProperty.call( override, property ) ) { - continue; - } - - var currentValue = current[ property ]; - var overrideValue = override[ property ]; - - //property doesn't exist on current object or it exists as null/undefined => completely override it - if ( isNullOrUndefined( currentValue ) ) { - overrideProperty( current, property, overrideValue ); - continue; - } - - //current value is an array => override method depends on override form - if ( isArray( currentValue ) ) { - - //override value is an array => override method depends on array elements - if ( isArray( overrideValue ) ) { - - //current value is an array of non-objects => override the entire array - //we assume a uniformly-typed array, so checking the first value should suffice - if ( ( currentValue.length > 0 && !isObject( currentValue[ 0 ] ) ) || ( overrideValue.length > 0 && !isObject( overrideValue[ 0 ] ) ) ) { - overrideProperty( current, property, overrideValue ); - continue; - } - - var idPresentOnAllOverrideElements = true; - for ( var k = 0; k < overrideValue.length; k++ ) { - if ( isNullOrUndefined( overrideValue[ k ] ) || isNullOrUndefined( overrideValue[ k ].id ) ) { - idPresentOnAllOverrideElements = false; - break; - } - } - - //Id property is present on all override elements => override elements by ID - if ( idPresentOnAllOverrideElements ) { - for ( var i = 0; i < overrideValue.length; i++ ) { - var correspondingCurrentElement = findArrayObjectById( currentValue, overrideValue[ i ].id ); - if ( correspondingCurrentElement === undefined ) { - throw ( 'could not find element to override in "' + property + '" with ID: ' + overrideValue[ i ].id ); - } - applyConfig( correspondingCurrentElement, overrideValue[ i ] ); - } - continue; - } - - //Id property is not set on all override elements and there aren't too many overrides => override objects by their index - if ( overrideValue.length <= currentValue.length ) { - for ( var l = 0; l < overrideValue.length; l++ ) { - applyConfig( currentValue[ l ], overrideValue[ l ] ); - } - continue; - } - - throw 'too many index-based overrides specified for object array property: ' + property; - } - - // override value is a single object => override all current array objects with that object - if ( isObject( overrideValue ) ) { - for ( var j = 0; j < currentValue.length; j++ ) { - applyConfig( currentValue[ j ], overrideValue ); - } - continue; - } - - throw ( 'non-object override detected for array property: ' + property ); - } - - if ( isObject( currentValue ) ) { - applyConfig( currentValue, overrideValue ); - continue; - } - - //if we reached this point, the property is defined on the current object but is not an object => override it - overrideProperty( current, property, overrideValue ); - } - }; - - var checkRules = function() { - - var width = chart.divRealWidth; - var height = chart.divRealHeight; - - // do nothing if the container is hidden (has no size) - if ( width === 0 || height === 0 ) - return; - - // update current rules - var rulesChanged = false; - for ( var i = 0; i < r.rules.length; i++ ) { - var rule = r.rules[ i ]; - - var ruleMatches = - ( rule.minWidth === undefined || ( rule.minWidth <= width ) ) && ( rule.maxWidth === undefined || ( rule.maxWidth >= width ) ) && - ( rule.minHeight === undefined || ( rule.minHeight <= height ) ) && ( rule.maxHeight === undefined || ( rule.maxHeight >= height ) ) && - ( rule.rotate === undefined || ( rule.rotate === true && chart.rotate === true ) || ( rule.rotate === false && ( chart.rotate === undefined || chart.rotate === false ) ) ) && - ( rule.legendPosition === undefined || ( chart.legend !== undefined && chart.legend.position !== undefined && chart.legend.position === rule.legendPosition ) ); - - if ( ruleMatches ) { - if ( r.currentRules[ i ] === undefined ) { - r.currentRules[ i ] = true; - rulesChanged = true; - } - } else if ( r.currentRules[ i ] !== undefined ) { - r.currentRules[ i ] = undefined; - rulesChanged = true; - } - } - - if ( !rulesChanged ) - return; - - restoreOriginals(); - - for ( var key in r.currentRules ) { - if ( !Object.prototype.hasOwnProperty.call( r.currentRules, key ) ) { - continue; - } - - if ( r.currentRules[ key ] !== undefined ) { - if ( isNullOrUndefined( r.rules[ key ] ) ) { - throw 'null or undefined rule in index: ' + key; - } - applyConfig( chart, r.rules[ key ].overrides ); - } - } - - // TODO - re-apply zooms/slices as necessary - - redrawChart(); - }; - - defaults.gantt = defaults.serial; - - if ( !isArray( r.rules ) ) { - r.rules = defaults[ chart.type ]; - } else if ( r.addDefaultRules !== false ) { - r.rules = defaults[ chart.type ].concat( r.rules ); - } - - //retain original zoomOutOnDataUpdate value - overrideProperty( chart, 'zoomOutOnDataUpdate', chart.zoomOutOnDataUpdate ); - - chart.addListener( 'resized', checkRules ); - chart.addListener( 'init', checkRules ); - -}, [ 'pie', 'serial', 'xy', 'funnel', 'radar', 'gauge', 'gantt', 'stock', 'map' ] ); \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/responsive/responsive.min.js b/chronos/static/js/amcharts/plugins/responsive/responsive.min.js deleted file mode 100644 index dad9ba0..0000000 --- a/chronos/static/js/amcharts/plugins/responsive/responsive.min.js +++ /dev/null @@ -1,2 +0,0 @@ -AmCharts.addInitHandler(function(n){"use strict";var u,t;if(n.responsive!==undefined&&n.responsive.ready!==!0&&n.responsive.enabled===!0&&(u=n.version.split("."),!(u.length<2)&&!(Number(u[0])<3)&&(Number(u[0])!==3||!(Number(u[1])<13)))){t=n.responsive;t.ready=!0;t.currentRules={};t.overridden=[];var e={pie:[{maxWidth:550,legendPosition:"left",overrides:{legend:{enabled:!1}}},{maxWidth:550,legendPosition:"right",overrides:{legend:{enabled:!1}}},{maxWidth:150,overrides:{legend:{enabled:!1}}},{maxHeight:350,legendPosition:"top",overrides:{legend:{enabled:!1}}},{maxHeight:350,legendPosition:"bottom",overrides:{legend:{enabled:!1}}},{maxHeight:150,overrides:{legend:{enabled:!1}}},{maxWidth:400,overrides:{labelsEnabled:!1}},{maxWidth:100,overrides:{legend:{enabled:!1}}},{maxHeight:350,overrides:{pullOutRadius:0}},{maxHeight:200,overrides:{titles:{enabled:!1},labelsEnabled:!1}},{maxWidth:60,overrides:{autoMargins:!1,marginTop:0,marginBottom:0,marginLeft:0,marginRight:0,radius:"50%",innerRadius:0,balloon:{enabled:!1},legend:{enabled:!1}}},{maxHeight:60,overrides:{marginTop:0,marginBottom:0,marginLeft:0,marginRight:0,radius:"50%",innerRadius:0,balloon:{enabled:!1},legend:{enabled:!1}}}],funnel:[{maxWidth:550,legendPosition:"left",overrides:{legend:{enabled:!1}}},{maxWidth:550,legendPosition:"right",overrides:{legend:{enabled:!1}}},{maxWidth:150,overrides:{legend:{enabled:!1}}},{maxHeight:500,legendPosition:"top",overrides:{legend:{enabled:!1}}},{maxHeight:500,legendPosition:"bottom",overrides:{legend:{enabled:!1}}},{maxHeight:150,overrides:{legend:{enabled:!1}}},{maxWidth:400,overrides:{labelsEnabled:!1,marginLeft:10,marginRight:10,legend:{enabled:!1}}},{maxHeight:350,overrides:{pullOutRadius:0,legend:{enabled:!1}}},{maxHeight:300,overrides:{titles:{enabled:!1}}}],radar:[{maxWidth:550,legendPosition:"left",overrides:{legend:{enabled:!1}}},{maxWidth:550,legendPosition:"right",overrides:{legend:{enabled:!1}}},{maxWidth:150,overrides:{legend:{enabled:!1}}},{maxHeight:350,legendPosition:"top",overrides:{legend:{enabled:!1}}},{maxHeight:350,legendPosition:"bottom",overrides:{legend:{enabled:!1}}},{maxHeight:150,overrides:{legend:{enabled:!1}}},{maxWidth:300,overrides:{labelsEnabled:!1}},{maxWidth:200,overrides:{autoMargins:!1,marginTop:0,marginBottom:0,marginLeft:0,marginRight:0,radius:"50%",titles:{enabled:!1},valueAxes:{labelsEnabled:!1,radarCategoriesEnabled:!1}}},{maxHeight:300,overrides:{labelsEnabled:!1}},{maxHeight:200,overrides:{autoMargins:!1,marginTop:0,marginBottom:0,marginLeft:0,marginRight:0,radius:"50%",titles:{enabled:!1},valueAxes:{radarCategoriesEnabled:!1}}},{maxHeight:100,overrides:{valueAxes:{labelsEnabled:!1}}}],gauge:[{maxWidth:550,legendPosition:"left",overrides:{legend:{enabled:!1}}},{maxWidth:550,legendPosition:"right",overrides:{legend:{enabled:!1}}},{maxWidth:150,overrides:{legend:{enabled:!1}}},{maxHeight:500,legendPosition:"top",overrides:{legend:{enabled:!1}}},{maxHeight:500,legendPosition:"bottom",overrides:{legend:{enabled:!1}}},{maxHeight:150,overrides:{legend:{enabled:!1}}},{maxWidth:200,overrides:{titles:{enabled:!1},allLabels:{enabled:!1},axes:{labelsEnabled:!1}}},{maxHeight:200,overrides:{titles:{enabled:!1},allLabels:{enabled:!1},axes:{labelsEnabled:!1}}}],serial:[{maxWidth:550,legendPosition:"left",overrides:{legend:{enabled:!1}}},{maxWidth:550,legendPosition:"right",overrides:{legend:{enabled:!1}}},{maxWidth:100,overrides:{legend:{enabled:!1}}},{maxHeight:350,legendPosition:"top",overrides:{legend:{enabled:!1}}},{maxHeight:350,legendPosition:"bottom",overrides:{legend:{enabled:!1}}},{maxHeight:100,overrides:{legend:{enabled:!1}}},{maxWidth:350,overrides:{autoMarginOffset:0,graphs:{hideBulletsCount:10}}},{maxWidth:350,rotate:!1,overrides:{marginLeft:10,marginRight:10,valueAxes:{ignoreAxisWidth:!0,inside:!0,title:"",showFirstLabel:!1,showLastLabel:!1},graphs:{bullet:"none"}}},{maxWidth:350,rotate:!0,overrides:{marginLeft:10,marginRight:10,categoryAxis:{ignoreAxisWidth:!0,inside:!0,title:""}}},{maxWidth:200,rotate:!1,overrides:{marginLeft:10,marginRight:10,marginTop:10,marginBottom:10,categoryAxis:{ignoreAxisWidth:!0,labelsEnabled:!1,inside:!0,title:"",guides:{inside:!0}},valueAxes:{ignoreAxisWidth:!0,labelsEnabled:!1,axisAlpha:0,guides:{label:""}},legend:{enabled:!1}}},{maxWidth:200,rotate:!0,overrides:{chartScrollbar:{scrollbarHeight:4,graph:"",resizeEnabled:!1},categoryAxis:{labelsEnabled:!1,axisAlpha:0,guides:{label:""}},legend:{enabled:!1}}},{maxWidth:100,rotate:!1,overrides:{valueAxes:{gridAlpha:0}}},{maxWidth:100,rotate:!0,overrides:{categoryAxis:{gridAlpha:0}}},{maxHeight:300,overrides:{autoMarginOffset:0,graphs:{hideBulletsCount:10}}},{maxHeight:200,rotate:!1,overrides:{marginTop:10,marginBottom:10,categoryAxis:{ignoreAxisWidth:!0,inside:!0,title:"",showFirstLabel:!1,showLastLabel:!1}}},{maxHeight:200,rotate:!0,overrides:{marginTop:10,marginBottom:10,valueAxes:{ignoreAxisWidth:!0,inside:!0,title:"",showFirstLabel:!1,showLastLabel:!1},graphs:{bullet:"none"}}},{maxHeight:150,rotate:!1,overrides:{titles:{enabled:!1},chartScrollbar:{scrollbarHeight:4,graph:"",resizeEnabled:!1},categoryAxis:{labelsEnabled:!1,ignoreAxisWidth:!0,axisAlpha:0,guides:{label:""}}}},{maxHeight:150,rotate:!0,overrides:{titles:{enabled:!1},valueAxes:{labelsEnabled:!1,ignoreAxisWidth:!0,axisAlpha:0,guides:{label:""}}}},{maxHeight:100,rotate:!1,overrides:{valueAxes:{labelsEnabled:!1,ignoreAxisWidth:!0,axisAlpha:0,gridAlpha:0,guides:{label:""}}}},{maxHeight:100,rotate:!0,overrides:{categoryAxis:{labelsEnabled:!1,ignoreAxisWidth:!0,axisAlpha:0,gridAlpha:0,guides:{label:""}}}},{maxWidth:100,overrides:{autoMargins:!1,marginTop:0,marginBottom:0,marginLeft:0,marginRight:0,categoryAxis:{labelsEnabled:!1},valueAxes:{labelsEnabled:!1}}},{maxHeight:100,overrides:{autoMargins:!1,marginTop:0,marginBottom:0,marginLeft:0,marginRight:0,categoryAxis:{labelsEnabled:!1},valueAxes:{labelsEnabled:!1}}}],xy:[{maxWidth:550,legendPosition:"left",overrides:{legend:{enabled:!1}}},{maxWidth:550,legendPosition:"right",overrides:{legend:{enabled:!1}}},{maxWidth:100,overrides:{legend:{enabled:!1}}},{maxHeight:350,legendPosition:"top",overrides:{legend:{enabled:!1}}},{maxHeight:350,legendPosition:"bottom",overrides:{legend:{enabled:!1}}},{maxHeight:100,overrides:{legend:{enabled:!1}}},{maxWidth:250,overrides:{autoMarginOffset:0,autoMargins:!1,marginTop:0,marginBottom:0,marginLeft:0,marginRight:0,valueAxes:{inside:!0,title:"",showFirstLabel:!1,showLastLabel:!1},legend:{enabled:!1}}},{maxWidth:150,overrides:{valueyAxes:{labelsEnabled:!1,axisAlpha:0,gridAlpha:0,guides:{label:""}}}},{maxHeight:250,overrides:{autoMarginOffset:0,autoMargins:!1,marginTop:0,marginBottom:0,marginLeft:0,marginRight:0,valueAxes:{inside:!0,title:"",showFirstLabel:!1,showLastLabel:!1},legend:{enabled:!1}}},{maxWidth:150,overrides:{valueyAxes:{labelsEnabled:!1,axisAlpha:0,gridAlpha:0,guides:{label:""}}}}],stock:[{maxWidth:500,overrides:{dataSetSelector:{position:"top"},periodSelector:{position:"bottom"}}},{maxWidth:400,overrides:{dataSetSelector:{selectText:"",compareText:""},periodSelector:{periodsText:"",inputFieldsEnabled:!1}}}],map:[{maxWidth:200,overrides:{zoomControl:{zoomControlEnabled:!1},smallMap:{enabled:!1},valueLegend:{enabled:!1},dataProvider:{areas:{descriptionWindowWidth:160,descriptionWindowRight:10,descriptionWindowTop:10},images:{descriptionWindowWidth:160,descriptionWindowRight:10,descriptionWindowTop:10},lines:{descriptionWindowWidth:160,descriptionWindowRight:10,descriptionWindowTop:10}}}},{maxWidth:150,overrides:{dataProvider:{areas:{descriptionWindowWidth:110,descriptionWindowRight:10,descriptionWindowTop:10},images:{descriptionWindowWidth:110,descriptionWindowRight:10,descriptionWindowTop:10},lines:{descriptionWindowWidth:110,descriptionWindowLeft:10,descriptionWindowRight:10}}}},{maxHeight:200,overrides:{zoomControl:{zoomControlEnabled:!1},smallMap:{enabled:!1},valueLegend:{enabled:!1},dataProvider:{areas:{descriptionWindowHeight:160,descriptionWindowRight:10,descriptionWindowTop:10},images:{descriptionWindowHeight:160,descriptionWindowRight:10,descriptionWindowTop:10},lines:{descriptionWindowHeight:160,descriptionWindowRight:10,descriptionWindowTop:10}}}},{maxHeight:150,overrides:{dataProvider:{areas:{descriptionWindowHeight:110,descriptionWindowRight:10,descriptionWindowTop:10},images:{descriptionWindowHeight:110,descriptionWindowRight:10,descriptionWindowTop:10},lines:{descriptionWindowHeight:110,descriptionWindowLeft:10,descriptionWindowRight:10}}}}]},i=function(n){return n===null||n===undefined},o=function(n){return!i(n)&&Object.prototype.toString.call(n)==="[object Array]"},r=function(n){return n!==null&&typeof n=="object"},y=function(n,t){for(var i=0;i0){var n=t.overridden.pop();a(n.object,n.property)}},w=function(){n.dataChanged=!0;n.type!=="xy"&&(n.marginsUpdated=!1);n.zoomOutOnDataUpdate=!1;n.validateNow(!0);a(n,"zoomOutOnDataUpdate")},f=function(n,t){var h,e,u,p,l,c,w,a,v;if(!i(t))for(h in t)if(Object.prototype.hasOwnProperty.call(t,h)){if(e=n[h],u=t[h],i(e)){s(n,h,u);continue}if(o(e)){if(o(u)){if(e.length>0&&!r(e[0])||u.length>0&&!r(u[0])){s(n,h,u);continue}for(p=!0,l=0;l=s)&&(r.minHeight===undefined||r.minHeight<=h)&&(r.maxHeight===undefined||r.maxHeight>=h)&&(r.rotate===undefined||r.rotate===!0&&n.rotate===!0||r.rotate===!1&&(n.rotate===undefined||n.rotate===!1))&&(r.legendPosition===undefined||n.legend!==undefined&&n.legend.position!==undefined&&n.legend.position===r.legendPosition),c?t.currentRules[u]===undefined&&(t.currentRules[u]=!0,o=!0):t.currentRules[u]!==undefined&&(t.currentRules[u]=undefined,o=!0);if(o){p();for(e in t.currentRules)if(Object.prototype.hasOwnProperty.call(t.currentRules,e)&&t.currentRules[e]!==undefined){if(i(t.rules[e]))throw"null or undefined rule in index: "+e;f(n,t.rules[e].overrides)}w()}}};e.gantt=e.serial;o(t.rules)?t.addDefaultRules!==!1&&(t.rules=e[n.type].concat(t.rules)):t.rules=e[n.type];s(n,"zoomOutOnDataUpdate",n.zoomOutOnDataUpdate);n.addListener("resized",v);n.addListener("init",v)}},["pie","serial","xy","funnel","radar","gauge","gantt","stock","map"]); -//# sourceMappingURL=responsive.min.js.map diff --git a/chronos/static/js/amcharts/plugins/responsive/responsive.min.js.map b/chronos/static/js/amcharts/plugins/responsive/responsive.min.js.map deleted file mode 100644 index a65b429..0000000 --- a/chronos/static/js/amcharts/plugins/responsive/responsive.min.js.map +++ /dev/null @@ -1,8 +0,0 @@ -{ -"version":3, -"file":"responsive.min.js", -"lineCount":1, -"mappings":"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", -"sources":["responsive.js"], -"names":["AmCharts","addInitHandler","chart","version","r","responsive","undefined","ready","enabled","split","length","Number","currentRules","overridden","defaults","isNullOrUndefined","obj","isArray","Object","prototype","toString","call","isObject","findArrayObjectById","arr","id","i","cloneWithoutPrototypes","clone","property","slice","hasOwnProperty","originalValueRetainerPrefix","noOriginalPropertyStub","overrideProperty","object","overrideValue","originalValueRetainerProperty","push","restoreOriginalProperty","originalValue","restoreOriginals","override","pop","redrawChart","dataChanged","type","marginsUpdated","zoomOutOnDataUpdate","validateNow","applyConfig","current","currentValue","idPresentOnAllOverrideElements","k","correspondingCurrentElement","l","j","checkRules","width","divRealWidth","height","divRealHeight","rulesChanged","rule","ruleMatches","key","rules","minWidth","maxWidth","minHeight","maxHeight","rotate","legendPosition","legend","position","overrides","gantt","serial","addDefaultRules","concat","addListener"] -} diff --git a/chronos/static/js/amcharts/radar.js b/chronos/static/js/amcharts/radar.js deleted file mode 100644 index 3cf232e..0000000 --- a/chronos/static/js/amcharts/radar.js +++ /dev/null @@ -1,11 +0,0 @@ -(function(){var c=window.AmCharts;c.AmRadarChart=c.Class({inherits:c.AmCoordinateChart,construct:function(a){this.type="radar";c.AmRadarChart.base.construct.call(this,a);this.cname="AmRadarChart";this.marginRight=this.marginBottom=this.marginTop=this.marginLeft=0;this.radius="35%";c.applyTheme(this,a,this.cname)},initChart:function(){c.AmRadarChart.base.initChart.call(this);this.dataChanged&&(this.updateData(),this.dataChanged=!1,this.dispatchDataUpdated=!0);this.drawChart()},updateData:function(){this.parseData(); -var a=this.graphs,b;for(b=0;bq&&(B="end",v-=10);180==q&&(t-=5);0===q&&(t+=5);q=c.text(b.container,u[w].category, -r,h,m,B);q.translate(v+5,t);this.set.push(q);c.setCN(b,q,a.bcn+"title")}}}}})})();(function(){var c=window.AmCharts;c.RadItem=c.Class({construct:function(a,b,d,f,k,l,e,p){f=a.chart;void 0===d&&(d="");var g=a.chart.fontFamily,h=a.fontSize;void 0===h&&(h=a.chart.fontSize);var m=a.color;void 0===m&&(m=a.chart.color);var r=a.chart.container;this.set=k=r.set();var u=a.axisColor,A=a.axisAlpha,w=a.tickLength,n=a.gridAlpha,t=a.gridThickness,q=a.gridColor,v=a.dashLength,B=a.fillColor,E=a.fillAlpha,G=a.labelsEnabled;l=a.counter;var H=a.inside,I=a.gridType,x,L=a.labelOffset,C;b-=a.height; -var z,D=a.x,J=a.y;e?(G=!0,void 0!==e.id&&(C=f.classNamePrefix+"-guide-"+e.id),isNaN(e.tickLength)||(w=e.tickLength),void 0!=e.lineColor&&(q=e.lineColor),isNaN(e.lineAlpha)||(n=e.lineAlpha),isNaN(e.dashLength)||(v=e.dashLength),isNaN(e.lineThickness)||(t=e.lineThickness),!0===e.inside&&(H=!0),void 0!==e.boldLabel&&(p=e.boldLabel)):d||(n/=3,w/=2);var K="end",F=-1;H&&(K="start",F=1);var y;G&&(y=c.text(r,d,m,g,h,K,p),y.translate(D+(w+3+L)*F,b),k.push(y),c.setCN(f,y,a.bcn+"label"),e&&c.setCN(f,y,"guide"), -c.setCN(f,y,C,!0),this.label=y,z=c.line(r,[D,D+w*F],[b,b],u,A,t),k.push(z),c.setCN(f,z,a.bcn+"tick"),e&&c.setCN(f,z,"guide"),c.setCN(f,z,C,!0));b=Math.round(a.y-b);p=[];g=[];if(0a?d?(h=this.endTime-this.startTime,d=this.startTime+c*f,f=this.endTime+e*f,0=l&&(f=l,d=l-h),this.zoomToDates(new Date(d),new Date(f))):(0=h-1&&(c=e=0),d=this.start+ -c,f=this.end+e,this.zoomToIndexes(d,f)):d?(h=this.endTime-this.startTime,d=this.startTime-c*f,f=this.endTime-e*f,0this.start&&(c=e=0),d=this.start-c,f=this.end-e,this.zoomToIndexes(d,f))}},validateData:function(a){this.marginsUpdated=!1;this.zoomOutOnDataUpdate&&!a&&(this.endTime=this.end=this.startTime=this.start=NaN);e.AmSerialChart.base.validateData.call(this)},drawChart:function(){if(0c&&(a=b-c,this.updateScrollbar=!0),a!=this.startTime&&b-a>c&&(b=a+c,this.updateScrollbar=!0));var d=this.minSelectedTime;if(0l&&(a=l);bl&&(b=l);bc&&(a=b-c,this.updateScrollbar=!0),a!=this.start&&b-a>c&&(b=a+c,this.updateScrollbar=!0));if(a!=this.start||b!=this.end){var d=this.chartData.length-1;isNaN(a)&&(a=0,isNaN(c)||(a=d-c));isNaN(b)&&(b=d);bd&&(b=d);a>d&&(a=d-1);0>a&&(a=0);this.start=a;this.end=b;this.categoryAxis.zoom(a,b);this.zoomAxesAndGraphs(); -this.zoomScrollbar();0!==a||b!=this.chartData.length-1?this.showZB(!0):this.showZB(!1);this.updateColumnsDepth();this.dispatchIndexZoomEvent()}},updateGraphs:function(){e.AmSerialChart.base.updateGraphs.call(this);var a=this.graphs,b;for(b=0;bb.depth?1:-1},zoomScrollbar:function(){var a=this.chartScrollbar,b=this.categoryAxis;a&&this.updateScrollbar&& -a.enabled&&a.dragger&&(a.dragger.stop(),b.parseDates&&!b.equalSpacing?a.timeZoom(this.startTime,this.endTime):a.zoom(this.start,this.end),this.updateScrollbar=!0)},updateTrendLines:function(){var a=this.trendLines,b;for(b=0;be&&(e=0);k>a.length-1&&(k=a.length-1);var h=e+Math.round((k- -e)/2),l=a[h][b];return c==l?h:1>=k-e?d?e:Math.abs(a[e][b]-c)a&&(a=0),b>d-1&&(b=d-1),d=this.categoryAxis,d.parseDates&&!d.equalSpacing?this.zoom(c[a].time,this.getEndTime(c[b].time)):this.zoom(a,b))}},zoomToDates:function(a,b){this.updateScrollbar=!0;var c=this.chartData;if(this.categoryAxis.equalSpacing){var d= -this.getClosestIndex(c,"time",a.getTime(),!0,0,c.length);b=e.resetDateToMin(b,this.categoryAxis.minPeriod,1);c=this.getClosestIndex(c,"time",b.getTime(),!1,0,c.length);this.zoom(d,c)}else this.zoom(a.getTime(),b.getTime())},zoomToCategoryValues:function(a,b){this.updateScrollbar=!0;this.zoom(this.getCategoryIndexByValue(a),this.getCategoryIndexByValue(b))},formatPeriodString:function(a,b){if(b){var c=["value","open","low","high","close"],d="value open low high close average sum count".split(" "), -f=b.valueAxis,k=this.chartData,h=b.numberFormatter;h||(h=this.nf);for(var l=0;lz.x||z.x>z.graph.height)D=NaN}else if(0>z.x||z.x>z.graph.width)D=NaN;if(!isNaN(D)){isNaN(q)&&(q=D);m=D;if(isNaN(w)||w>D)w=D;if(isNaN(y)||yz)x=z;if(isNaN(B)||Bb&&0===p&&(p=180):0>c&&270==p&&(p=90);this.gradientRotation=p;0===d&&0===e&&(this.cornerRadius=q);this.draw()},draw:function(){var a=this.set;a.clear(); -var b=this.container,c=b.chart,d=this.w,f=this.h,k=this.dx,h=this.dy,l=this.colors,g=this.alpha,n=this.bwidth,p=this.bcolor,q=this.balpha,m=this.gradientRotation,w=this.cornerRadius,y=this.dashLength,v=this.pattern,r=this.topRadius,t=this.bcn,A=l,u=l;"object"==typeof l&&(A=l[0],u=l[l.length-1]);var x,B,C,I,z,D,F,L,M,Q=g;v&&(g=0);var E,G,H,J,K=this.rotate;if(0Math.abs(f)&&(f=0);1>Math.abs(d)&&(d=0);!isNaN(r)&&(0f&&(n=" A"),g+=n+Math.round(d/2-H)+","+Math.round(f-J)+","+Math.round(d/2+H)+","+Math.round(f+J)+",0,"+f+","+d+","+f,g+=" L"+d+",0",g+=n+Math.round(d/ -2+E)+","+Math.round(G)+","+Math.round(d/2-E)+","+Math.round(-G)+","+d+",0,0,0"):(g+="A"+H+","+J+",0,0,0,"+(d-d/2*(1-r))+","+f+"L"+d+",0",g+="A"+E+","+G+",0,0,1,0,0"),E=180),b=b.path(g).attr(l),b.gradient("linearGradient",[A,e.adjustLuminosity(A,-.3),e.adjustLuminosity(A,-.3),A],E),K?b.translate(k/2,0):b.translate(0,h/2)):b=0===f?e.line(b,[0,d],[0,0],p,q,n,y):0===d?e.line(b,[0,0],[0,f],p,q,n,y):0f?[x, -M,B,C,I,z,D,F,L,b]:[F,L,B,C,I,z,x,M,D,b]:K?0f?[x,b,F]:[F,b,x];e.setCN(c,b,t+"front");e.setCN(c,B,t+"back");e.setCN(c,F,t+"top");e.setCN(c,x,t+"bottom");e.setCN(c,I,t+"left");e.setCN(c,z,t+"right");for(x=0;xb&&(this.endTime=b);t=this.minorGridEnabled;var A=this.gridAlpha,u,x=0,B=0;if(this.widthField)for(b=0;bm&&(m=0),u=0,this.end-m+1>=this.autoRotateCount&&(this.labelRotationR=this.autoRotateAngle),b=m;b<=this.end+2;b++){q= -!1;0<=b&&bthis.end&&"start"==this.tickPosition&&(m=" ");this.rotate&&this.inside&&(r=-2);isNaN(v.widthValue)||(v.percentWidthValue=v.widthValue/x*100,C=this.rotate?this.height*v.widthValue/x:this.width*v.widthValue/x,p=B,B+=C,r=C/2);r=new this.axisItemRenderer(this,p,m,q,C,r,void 0,w,a,!1,v.labelColor,v.className); -r.serialDataItem=v;this.pushAxisItem(r);this.gridAlpha=A}}else if(this.parseDates&&this.equalSpacing){k=this.start;this.startTime=this.data[this.start].time;this.endTime=this.data[this.end].time;this.timeDifference=this.endTime-this.startTime;b=this.choosePeriod(0);f=b.period;y=b.count;b=e.getPeriodDuration(f,y);bm&&(m=0);A=this.end+2;A>=this.data.length&&(A=this.data.length);B=!1;B=!g;this.previousPos=-1E3;20=u){p=this.getCoordinate(b-this.start);t=!1;this.nextPeriod[v]&&(t=this.checkPeriodChange(this.nextPeriod[v],1,h,w,v));w=!1;t&&this.markPeriodChange?(t=this.dateFormatsObject[this.nextPeriod[v]],w=!0):t=this.dateFormatsObject[v];m=e.formatDate(new Date(h),t,c);if(b==d&&!g||b==l&&!n)m=" ";B?B=!1:(q||(w=!1),p-this.previousPos>this.safeDistance*Math.cos(this.labelRotationR*Math.PI/ -180)&&(this.labelFunction&&(m=this.labelFunction(m,new Date(h),this,f,y,r)),this.boldLabels&&(w=!0),r=new this.axisItemRenderer(this,p,m,void 0,void 0,void 0,void 0,w),t=r.graphics(),this.pushAxisItem(r),t=t.getBBox().width,e.isModern||(t-=p),this.previousPos=p+t));r=w=h}}for(b=0;bthis.height+1&&c--:k>this.width+1&&c--;0>k&&c++;return c=e.fitToBounds(c,0,b.length-1)},dateToCoordinate:function(a){return this.parseDates&&!this.equalSpacing?(a.getTime()-this.startTime)*this.stepWidth:this.parseDates&&this.equalSpacing?(a=this.chart.getClosestIndex(this.data, -"time",a.getTime(),!1,0,this.data.length-1),this.getCoordinate(a-this.start)):NaN},categoryToCoordinate:function(a){return this.chart?(a=this.chart.getCategoryIndexByValue(a),this.getCoordinate(a-this.start)):NaN},coordinateToDate:function(a){return this.equalSpacing?(a=this.xToIndex(a),new Date(this.data[a].time)):new Date(this.startTime+a/this.stepWidth)},getCoordinate:function(a){a*=this.stepWidth;this.startOnAxis||(a+=this.stepWidth/2);return Math.round(a)}})})(); \ No newline at end of file diff --git a/chronos/static/js/amcharts/themes/black.js b/chronos/static/js/amcharts/themes/black.js deleted file mode 100644 index 632fa44..0000000 --- a/chronos/static/js/amcharts/themes/black.js +++ /dev/null @@ -1,196 +0,0 @@ -AmCharts.themes.black = { - - themeName: "black", - - AmChart: { - color: "#e7e7e7", - backgroundColor: "#222222" - }, - - AmCoordinateChart: { - colors: ["#de4c4f", "#d8854f", "#eea638", "#a7a737", "#86a965", "#8aabb0", "#69c8ff", "#cfd27e", "#9d9888", "#916b8a", "#724887", "#7256bc"] - }, - - AmStockChart: { - colors: ["#de4c4f", "#d8854f", "#eea638", "#a7a737", "#86a965", "#8aabb0", "#69c8ff", "#cfd27e", "#9d9888", "#916b8a", "#724887", "#7256bc"] - }, - - AmSlicedChart: { - outlineAlpha: 1, - outlineThickness: 2, - labelTickColor: "#FFFFFF", - labelTickAlpha: 0.3, - colors: ["#de4c4f", "#d8854f", "#eea638", "#a7a737", "#86a965", "#8aabb0", "#69c8ff", "#cfd27e", "#9d9888", "#916b8a", "#724887", "#7256bc"] - }, - - AmRectangularChart: { - zoomOutButtonColor: "#FFFFFF", - zoomOutButtonRollOverAlpha: 0.15, - zoomOutButtonImage: "lensWhite" - }, - - AxisBase: { - axisColor: "#FFFFFF", - axisAlpha: 0.3, - gridAlpha: 0.1, - gridColor: "#FFFFFF", - dashLength: 3 - }, - - ChartScrollbar: { - backgroundColor: "#000000", - backgroundAlpha: 0.2, - graphFillAlpha: 0.2, - graphLineAlpha: 0, - graphFillColor: "#FFFFFF", - selectedGraphFillColor: "#FFFFFF", - selectedGraphFillAlpha: 0.4, - selectedGraphLineColor: "#FFFFFF", - selectedBackgroundColor: "#FFFFFF", - selectedBackgroundAlpha: 0.09, - gridAlpha: 0.15 - }, - - ChartCursor: { - cursorColor: "#FFFFFF", - color: "#000000", - cursorAlpha: 0.5 - }, - - AmLegend: { - color: "#e7e7e7" - }, - - AmGraph: { - lineAlpha: 0.9 - }, - - - GaugeArrow: { - color: "#FFFFFF", - alpha: 0.8, - nailAlpha: 0, - innerRadius: "40%", - nailRadius: 15, - startWidth: 15, - borderAlpha: 0.8, - nailBorderAlpha: 0 - }, - - GaugeAxis: { - tickColor: "#FFFFFF", - tickAlpha: 1, - tickLength: 15, - minorTickLength: 8, - axisThickness: 3, - axisColor: "#FFFFFF", - axisAlpha: 1, - bandAlpha: 0.8 - }, - - TrendLine: { - lineColor: "#c03246", - lineAlpha: 0.8 - }, - - // ammap - AreasSettings: { - alpha: 0.8, - color: "#666666", - colorSolid: "#000000", - unlistedAreasAlpha: 0.4, - unlistedAreasColor: "#555555", - outlineColor: "#000000", - outlineAlpha: 0.5, - outlineThickness: 0.5, - rollOverBrightness: 30, - slectedBrightness: 50, - rollOverOutlineColor: "#000000", - selectedOutlineColor: "#000000", - unlistedAreasOutlineColor: "#000000", - unlistedAreasOutlineAlpha: 0.5 - }, - - LinesSettings: { - color: "#555555", - alpha: 0.8 - }, - - ImagesSettings: { - alpha: 0.8, - labelColor: "#FFFFFF", - color: "#FFFFFF", - labelRollOverColor: "#3c5bdc" - }, - - ZoomControl: { - buttonFillAlpha: 0.4 - }, - - SmallMap: { - mapColor: "#444444", - rectangleColor: "#666666", - backgroundColor: "#000000", - backgroundAlpha: 0.5, - borderColor:"#555555", - borderThickness: 1, - borderAlpha: 0.8 - }, - - // the defaults below are set using CSS syntax, you can use any existing css property - // if you don't use Stock chart, you can delete lines below - PeriodSelector: { - color: "#e7e7e7" - }, - - PeriodButton: { - color: "#e7e7e7", - background: "transparent", - opacity: 0.7, - border: "1px solid rgba(255, 255, 255, .15)", - MozBorderRadius: "5px", - borderRadius: "5px", - margin: "1px", - outline: "none", - boxSizing: "border-box" - }, - - PeriodButtonSelected: { - color: "#e7e7e7", - backgroundColor: "rgba(255, 255, 255, 0.1)", - border: "1px solid rgba(255, 255, 255, .3)", - MozBorderRadius: "5px", - borderRadius: "5px", - margin: "1px", - outline: "none", - opacity: 1, - boxSizing: "border-box" - }, - - PeriodInputField: { - color: "#e7e7e7", - background: "transparent", - border: "1px solid rgba(255, 255, 255, .15)", - outline: "none" - }, - - DataSetSelector: { - color: "#e7e7e7", - selectedBackgroundColor: "rgba(255, 255, 255, .25)", - rollOverBackgroundColor: "rgba(255, 255, 255, .15)" - }, - - DataSetCompareList: { - color: "#e7e7e7", - lineHeight: "100%", - boxSizing: "initial", - webkitBoxSizing: "initial", - border: "1px solid rgba(255, 255, 255, .15)" - }, - - DataSetSelect: { - border: "1px solid rgba(255, 255, 255, .15)", - outline: "none" - } - -}; \ No newline at end of file diff --git a/chronos/static/js/amcharts/themes/chalk.js b/chronos/static/js/amcharts/themes/chalk.js deleted file mode 100644 index a471cef..0000000 --- a/chronos/static/js/amcharts/themes/chalk.js +++ /dev/null @@ -1,213 +0,0 @@ -AmCharts.themes.chalk = { - - themeName: "chalk", - - AmChart: { - color: "#e7e7e7", - fontFamily: "Covered By Your Grace", - fontSize: 18, - handDrawn: true, - backgroundColor: "#282828" - }, - - AmCoordinateChart: { - colors: ["#FFFFFF", "#e384a6", "#f4d499", "#4d90d6", "#c7e38c", "#9986c8", "#edf28c", "#ffd1d4", "#5ee1dc", "#b0eead", "#fef85a", "#8badd2"] - }, - - AmSlicedChart: { - outlineAlpha: 1, - labelTickColor: "#FFFFFF", - labelTickAlpha: 0.3, - colors: ["#FFFFFF", "#e384a6", "#f4d499", "#4d90d6", "#c7e38c", "#9986c8", "#edf28c", "#ffd1d4", "#5ee1dc", "#b0eead", "#fef85a", "#8badd2"] - }, - - AmStockChart: { - colors: ["#FFFFFF", "#e384a6", "#f4d499", "#4d90d6", "#c7e38c", "#9986c8", "#edf28c", "#ffd1d4", "#5ee1dc", "#b0eead", "#fef85a", "#8badd2"] - }, - - AmRectangularChart: { - zoomOutButtonColor: '#FFFFFF', - zoomOutButtonRollOverAlpha: 0.15, - zoomOutButtonImage: "lensWhite" - }, - - AxisBase: { - axisColor: "#FFFFFF", - gridColor: "#FFFFFF" - }, - - ChartScrollbar: { - backgroundColor: "#FFFFFF", - backgroundAlpha: 0.2, - graphFillAlpha: 0.5, - graphLineAlpha: 0, - selectedBackgroundColor: "#000000", - selectedBackgroundAlpha: 0.25, - fontSize: 15, - gridAlpha: 0.15 - }, - - ChartCursor: { - cursorColor: "#FFFFFF", - color: "#000000" - }, - - AmLegend: { - color: "#e7e7e7", - markerSize: 20 - }, - - AmGraph: { - lineAlpha: 0.8 - }, - - - GaugeArrow: { - color: "#FFFFFF", - alpha: 0.1, - nailAlpha: 0, - innerRadius: "40%", - nailRadius: 15, - startWidth: 15, - borderAlpha: 0.8, - nailBorderAlpha: 0 - }, - - GaugeAxis: { - tickColor: "#FFFFFF", - tickAlpha: 0.8, - tickLength: 15, - minorTickLength: 8, - axisThickness: 3, - axisColor: '#FFFFFF', - axisAlpha: 0.8, - bandAlpha: 0.4 - }, - - TrendLine: { - lineColor: "#c03246", - lineAlpha: 0.8 - }, - - // ammap - AmMap: { - handDrawn: false - }, - - AreasSettings: { - alpha: 0.8, - color: "#FFFFFF", - colorSolid: "#000000", - unlistedAreasAlpha: 0.4, - unlistedAreasColor: "#FFFFFF", - outlineColor: "#000000", - outlineAlpha: 0.5, - outlineThickness: 0.5, - rollOverColor: "#4d90d6", - rollOverOutlineColor: "#000000", - selectedOutlineColor: "#000000", - selectedColor: "#e384a6", - unlistedAreasOutlineColor: "#000000", - unlistedAreasOutlineAlpha: 0.5 - }, - - LinesSettings: { - color: "#FFFFFF", - alpha: 0.8 - }, - - ImagesSettings: { - alpha: 0.8, - labelFontSize: 16, - labelColor: "#FFFFFF", - color: "#FFFFFF", - labelRollOverColor: "#4d90d6" - }, - - ZoomControl: { - buttonRollOverColor: "#4d90d6", - buttonFillColor: "#e384a6", - buttonFillAlpha: 0.8 - }, - - SmallMap: { - mapColor: "#FFFFFF", - rectangleColor: "#FFFFFF", - backgroundColor: "#000000", - backgroundAlpha: 0.7, - borderThickness: 1, - borderAlpha: 0.8 - }, - - - // the defaults below are set using CSS syntax, you can use any existing css property - // if you don't use Stock chart, you can delete lines below - PeriodSelector: { - fontFamily: "Covered By Your Grace", - fontSize:"16px", - color: "#e7e7e7" - }, - - PeriodButton: { - fontFamily: "Covered By Your Grace", - fontSize:"16px", - color: "#e7e7e7", - background: "transparent", - opacity: 0.7, - border: "1px solid rgba(255, 255, 255, .15)", - MozBorderRadius: "5px", - borderRadius: "5px", - margin: "1px", - outline: "none", - boxSizing: "border-box" - }, - - PeriodButtonSelected: { - fontFamily: "Covered By Your Grace", - fontSize:"16px", - color: "#e7e7e7", - backgroundColor: "rgba(255, 255, 255, 0.1)", - border: "1px solid rgba(255, 255, 255, .3)", - MozBorderRadius: "5px", - borderRadius: "5px", - margin: "1px", - outline: "none", - opacity: 1, - boxSizing: "border-box" - }, - - PeriodInputField: { - fontFamily: "Covered By Your Grace", - fontSize:"16px", - color: "#e7e7e7", - background: "transparent", - border: "1px solid rgba(255, 255, 255, .15)", - outline: "none" - }, - - DataSetSelector: { - fontFamily: "Covered By Your Grace", - fontSize:"16px", - color: "#e7e7e7", - selectedBackgroundColor: "rgba(255, 255, 255, .25)", - rollOverBackgroundColor: "rgba(255, 255, 255, .15)" - }, - - DataSetCompareList: { - fontFamily: "Covered By Your Grace", - fontSize:"16px", - color: "#e7e7e7", - lineHeight: "100%", - boxSizing: "initial", - webkitBoxSizing: "initial", - border: "1px solid rgba(255, 255, 255, .15)" - }, - - DataSetSelect: { - fontFamily: "Covered By Your Grace", - fontSize:"16px", - border: "1px solid rgba(255, 255, 255, .15)", - outline: "none" - } - -}; \ No newline at end of file diff --git a/chronos/static/js/amcharts/themes/dark.js b/chronos/static/js/amcharts/themes/dark.js deleted file mode 100644 index d97a01a..0000000 --- a/chronos/static/js/amcharts/themes/dark.js +++ /dev/null @@ -1,195 +0,0 @@ -AmCharts.themes.dark = { - - themeName: "dark", - - AmChart: { - color: "#e7e7e7", backgroundColor: "#282828" - }, - - AmCoordinateChart: { - colors: ["#ae85c9", "#aab9f7", "#b6d2ff", "#c9e6f2", "#c9f0e1", "#e8d685", "#e0ad63", "#d48652", "#d27362", "#495fba", "#7a629b", "#8881cc"] - }, - - AmStockChart: { - colors: ["#639dbd", "#e8d685", "#ae85c9", "#c9f0e1", "#d48652", "#629b6d", "#719dc3", "#719dc3"] - }, - - AmSlicedChart: { - outlineAlpha: 1, - outlineThickness: 2, - labelTickColor: "#FFFFFF", - labelTickAlpha: 0.3, - colors: ["#495fba", "#e8d685", "#ae85c9", "#c9f0e1", "#d48652", "#629b6d", "#719dc3", "#719dc3"] - }, - - AmRectangularChart: { - zoomOutButtonColor: '#FFFFFF', - zoomOutButtonRollOverAlpha: 0.15, - zoomOutButtonImage: "lensWhite" - }, - - AxisBase: { - axisColor: "#FFFFFF", - axisAlpha: 0.3, - gridAlpha: 0.1, - gridColor: "#FFFFFF", - dashLength: 3 - }, - - ChartScrollbar: { - backgroundColor: "#000000", - backgroundAlpha: 0.2, - graphFillAlpha: 0.2, - graphLineAlpha: 0, - graphFillColor: "#FFFFFF", - selectedGraphFillColor: "#FFFFFF", - selectedGraphFillAlpha: 0.4, - selectedGraphLineColor: "#FFFFFF", - selectedBackgroundColor: "#FFFFFF", - selectedBackgroundAlpha: 0.09, - gridAlpha: 0.15 - }, - - ChartCursor: { - cursorColor: "#FFFFFF", - color: "#000000", - cursorAlpha: 0.5 - }, - - AmLegend: { - color: "#e7e7e7" - }, - - AmGraph: { - lineAlpha: 0.9 - }, - - - GaugeArrow: { - color: "#FFFFFF", - alpha: 0.8, - nailAlpha: 0, - innerRadius: "40%", - nailRadius: 15, - startWidth: 15, - borderAlpha: 0.8, - nailBorderAlpha: 0 - }, - - GaugeAxis: { - tickColor: "#FFFFFF", - tickAlpha: 1, - tickLength: 15, - minorTickLength: 8, - axisThickness: 3, - axisColor: '#FFFFFF', - axisAlpha: 1, - bandAlpha: 0.8 - }, - - TrendLine: { - lineColor: "#c03246", - lineAlpha: 0.8 - }, - - // ammap - AreasSettings: { - alpha: 0.8, - color: "#FFFFFF", - colorSolid: "#000000", - unlistedAreasAlpha: 0.4, - unlistedAreasColor: "#FFFFFF", - outlineColor: "#000000", - outlineAlpha: 0.5, - outlineThickness: 0.5, - rollOverColor: "#3c5bdc", - rollOverOutlineColor: "#000000", - selectedOutlineColor: "#000000", - selectedColor: "#f15135", - unlistedAreasOutlineColor: "#000000", - unlistedAreasOutlineAlpha: 0.5 - }, - - LinesSettings: { - color: "#FFFFFF", - alpha: 0.8 - }, - - ImagesSettings: { - alpha: 0.8, - labelColor: "#FFFFFF", - color: "#FFFFFF", - labelRollOverColor: "#3c5bdc" - }, - - ZoomControl: { - buttonFillAlpha:0.7, - buttonIconColor:"#494949" - }, - - SmallMap: { - mapColor: "#FFFFFF", - rectangleColor: "#FFFFFF", - backgroundColor: "#000000", - backgroundAlpha: 0.7, - borderThickness: 1, - borderAlpha: 0.8 - }, - - // the defaults below are set using CSS syntax, you can use any existing css property - // if you don't use Stock chart, you can delete lines below - PeriodSelector: { - color: "#e7e7e7" - }, - - PeriodButton: { - color: "#e7e7e7", - background: "transparent", - opacity: 0.7, - border: "1px solid rgba(255, 255, 255, .15)", - MozBorderRadius: "5px", - borderRadius: "5px", - margin: "1px", - outline: "none", - boxSizing: "border-box" - }, - - PeriodButtonSelected: { - color: "#e7e7e7", - backgroundColor: "rgba(255, 255, 255, 0.1)", - border: "1px solid rgba(255, 255, 255, .3)", - MozBorderRadius: "5px", - borderRadius: "5px", - margin: "1px", - outline: "none", - opacity: 1, - boxSizing: "border-box" - }, - - PeriodInputField: { - color: "#e7e7e7", - background: "transparent", - border: "1px solid rgba(255, 255, 255, .15)", - outline: "none" - }, - - DataSetSelector: { - color: "#e7e7e7", - selectedBackgroundColor: "rgba(255, 255, 255, .25)", - rollOverBackgroundColor: "rgba(255, 255, 255, .15)" - }, - - DataSetCompareList: { - color: "#e7e7e7", - lineHeight: "100%", - boxSizing: "initial", - webkitBoxSizing: "initial", - border: "1px solid rgba(255, 255, 255, .15)" - }, - - DataSetSelect: { - border: "1px solid rgba(255, 255, 255, .15)", - outline: "none" - } - -}; \ No newline at end of file diff --git a/chronos/static/js/amcharts/themes/light.js b/chronos/static/js/amcharts/themes/light.js deleted file mode 100644 index 5b57a44..0000000 --- a/chronos/static/js/amcharts/themes/light.js +++ /dev/null @@ -1,189 +0,0 @@ -AmCharts.themes.light = { - - themeName:"light", - - AmChart: { - color: "#000000", backgroundColor: "#FFFFFF" - }, - - AmCoordinateChart: { - colors: ["#67b7dc", "#fdd400", "#84b761", "#cc4748", "#cd82ad", "#2f4074", "#448e4d", "#b7b83f", "#b9783f", "#b93e3d", "#913167"] - }, - - AmStockChart: { - colors: ["#67b7dc", "#fdd400", "#84b761", "#cc4748", "#cd82ad", "#2f4074", "#448e4d", "#b7b83f", "#b9783f", "#b93e3d", "#913167"] - }, - - AmSlicedChart: { - colors: ["#67b7dc", "#fdd400", "#84b761", "#cc4748", "#cd82ad", "#2f4074", "#448e4d", "#b7b83f", "#b9783f", "#b93e3d", "#913167"], - outlineAlpha: 1, - outlineThickness: 2, - labelTickColor: "#000000", - labelTickAlpha: 0.3 - }, - - AmRectangularChart: { - zoomOutButtonColor: '#000000', - zoomOutButtonRollOverAlpha: 0.15, - zoomOutButtonImage: "lens" - }, - - AxisBase: { - axisColor: "#000000", - axisAlpha: 0.3, - gridAlpha: 0.1, - gridColor: "#000000" - }, - - ChartScrollbar: { - backgroundColor: "#000000", - backgroundAlpha: 0.12, - graphFillAlpha: 0.5, - graphLineAlpha: 0, - selectedBackgroundColor: "#FFFFFF", - selectedBackgroundAlpha: 0.4, - gridAlpha: 0.15 - }, - - ChartCursor: { - cursorColor: "#000000", - color: "#FFFFFF", - cursorAlpha: 0.5 - }, - - AmLegend: { - color: "#000000" - }, - - AmGraph: { - lineAlpha: 0.9 - }, - GaugeArrow: { - color: "#000000", - alpha: 0.8, - nailAlpha: 0, - innerRadius: "40%", - nailRadius: 15, - startWidth: 15, - borderAlpha: 0.8, - nailBorderAlpha: 0 - }, - - GaugeAxis: { - tickColor: "#000000", - tickAlpha: 1, - tickLength: 15, - minorTickLength: 8, - axisThickness: 3, - axisColor: '#000000', - axisAlpha: 1, - bandAlpha: 0.8 - }, - - TrendLine: { - lineColor: "#c03246", - lineAlpha: 0.8 - }, - - // ammap - AreasSettings: { - alpha: 0.8, - color: "#67b7dc", - colorSolid: "#003767", - unlistedAreasAlpha: 0.4, - unlistedAreasColor: "#000000", - outlineColor: "#FFFFFF", - outlineAlpha: 0.5, - outlineThickness: 0.5, - rollOverColor: "#3c5bdc", - rollOverOutlineColor: "#FFFFFF", - selectedOutlineColor: "#FFFFFF", - selectedColor: "#f15135", - unlistedAreasOutlineColor: "#FFFFFF", - unlistedAreasOutlineAlpha: 0.5 - }, - - LinesSettings: { - color: "#000000", - alpha: 0.8 - }, - - ImagesSettings: { - alpha: 0.8, - labelColor: "#000000", - color: "#000000", - labelRollOverColor: "#3c5bdc" - }, - - ZoomControl: { - buttonFillAlpha:0.7, - buttonIconColor:"#a7a7a7" - }, - - SmallMap: { - mapColor: "#000000", - rectangleColor: "#f15135", - backgroundColor: "#FFFFFF", - backgroundAlpha: 0.7, - borderThickness: 1, - borderAlpha: 0.8 - }, - - // the defaults below are set using CSS syntax, you can use any existing css property - // if you don't use Stock chart, you can delete lines below - PeriodSelector: { - color: "#000000" - }, - - PeriodButton: { - color: "#000000", - background: "transparent", - opacity: 0.7, - border: "1px solid rgba(0, 0, 0, .3)", - MozBorderRadius: "5px", - borderRadius: "5px", - margin: "1px", - outline: "none", - boxSizing: "border-box" - }, - - PeriodButtonSelected: { - color: "#000000", - backgroundColor: "#b9cdf5", - border: "1px solid rgba(0, 0, 0, .3)", - MozBorderRadius: "5px", - borderRadius: "5px", - margin: "1px", - outline: "none", - opacity: 1, - boxSizing: "border-box" - }, - - PeriodInputField: { - color: "#000000", - background: "transparent", - border: "1px solid rgba(0, 0, 0, .3)", - outline: "none" - }, - - DataSetSelector: { - - color: "#000000", - selectedBackgroundColor: "#b9cdf5", - rollOverBackgroundColor: "#a8b0e4" - }, - - DataSetCompareList: { - color: "#000000", - lineHeight: "100%", - boxSizing: "initial", - webkitBoxSizing: "initial", - border: "1px solid rgba(0, 0, 0, .3)" - }, - - DataSetSelect: { - border: "1px solid rgba(0, 0, 0, .3)", - outline: "none" - } - -}; \ No newline at end of file diff --git a/chronos/static/js/amcharts/themes/patterns.js b/chronos/static/js/amcharts/themes/patterns.js deleted file mode 100644 index dc08283..0000000 --- a/chronos/static/js/amcharts/themes/patterns.js +++ /dev/null @@ -1,256 +0,0 @@ -AmCharts.themes.patterns = { - - themeName:"patterns", - - AmChart: { - color: "#000000", backgroundColor: "#FFFFFF" - }, - - AmCoordinateChart: { - colors:["#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000"], - patterns:[ - {"url":"patterns/black/pattern1.png", "width":4, "height":4}, - {"url":"patterns/black/pattern2.png", "width":4, "height":4}, - {"url":"patterns/black/pattern3.png", "width":4, "height":4}, - {"url":"patterns/black/pattern4.png", "width":4, "height":4}, - {"url":"patterns/black/pattern5.png", "width":4, "height":4}, - {"url":"patterns/black/pattern6.png", "width":4, "height":4}, - {"url":"patterns/black/pattern7.png", "width":4, "height":4}, - {"url":"patterns/black/pattern8.png", "width":4, "height":4}, - {"url":"patterns/black/pattern9.png", "width":4, "height":4}, - {"url":"patterns/black/pattern10.png", "width":4, "height":4}, - {"url":"patterns/black/pattern11.png", "width":4, "height":4}, - {"url":"patterns/black/pattern12.png", "width":4, "height":4}, - {"url":"patterns/black/pattern13.png", "width":4, "height":4}, - {"url":"patterns/black/pattern14.png", "width":4, "height":4}, - {"url":"patterns/black/pattern15.png", "width":4, "height":4}, - {"url":"patterns/black/pattern16.png", "width":4, "height":4}, - {"url":"patterns/black/pattern17.png", "width":4, "height":4}, - {"url":"patterns/black/pattern18.png", "width":4, "height":4}, - {"url":"patterns/black/pattern19.png", "width":4, "height":4}, - {"url":"patterns/black/pattern20.png", "width":4, "height":4}, - {"url":"patterns/black/pattern21.png", "width":4, "height":4}] - }, - - - AmStockChart: { - colors:["#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000"] - }, - - AmPieChart: { - depth3D:0, - angle:0, - labelRadius:10 - }, - - AmSlicedChart: { - outlineAlpha: 0.3, - colors:["#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000","#000000"], - outlineThickness: 1, - outlineColor:"#000000", - labelTickColor: "#000000", - labelTickAlpha: 0.3, - patterns:[ - {"url":"patterns/black/pattern1.png", "width":4, "height":4}, - {"url":"patterns/black/pattern2.png", "width":4, "height":4}, - {"url":"patterns/black/pattern3.png", "width":4, "height":4}, - {"url":"patterns/black/pattern4.png", "width":4, "height":4}, - {"url":"patterns/black/pattern5.png", "width":4, "height":4}, - {"url":"patterns/black/pattern6.png", "width":4, "height":4}, - {"url":"patterns/black/pattern7.png", "width":4, "height":4}, - {"url":"patterns/black/pattern8.png", "width":4, "height":4}, - {"url":"patterns/black/pattern9.png", "width":4, "height":4}, - {"url":"patterns/black/pattern10.png", "width":4, "height":4}, - {"url":"patterns/black/pattern11.png", "width":4, "height":4}, - {"url":"patterns/black/pattern12.png", "width":4, "height":4}, - {"url":"patterns/black/pattern13.png", "width":4, "height":4}, - {"url":"patterns/black/pattern14.png", "width":4, "height":4}, - {"url":"patterns/black/pattern15.png", "width":4, "height":4}, - {"url":"patterns/black/pattern16.png", "width":4, "height":4}, - {"url":"patterns/black/pattern17.png", "width":4, "height":4}, - {"url":"patterns/black/pattern18.png", "width":4, "height":4}, - {"url":"patterns/black/pattern19.png", "width":4, "height":4}, - {"url":"patterns/black/pattern20.png", "width":4, "height":4}, - {"url":"patterns/black/pattern21.png", "width":4, "height":4}] - }, - - AmRectangularChart: { - zoomOutButtonColor: '#000000', - zoomOutButtonRollOverAlpha: 0.15, - zoomOutButtonImage: "lens" - }, - - - - AxisBase: { - axisColor: "#000000", - axisAlpha: 0.3, - gridAlpha: 0.05, - gridColor: "#000000" - }, - - ChartScrollbar: { - backgroundColor: "#000000", - backgroundAlpha: 0.13, - graphFillAlpha: 0.4, - selectedGraphFillAlpha: 0.7, - graphLineAlpha: 0, - selectedBackgroundColor: "#FFFFFF", - selectedBackgroundAlpha: 0.9, - gridAlpha: 0.15 - }, - - ChartCursor: { - cursorColor: "#000000", - color: "#FFFFFF", - cursorAlpha: 0.5 - }, - - AmLegend: { - color: "#000000", - markerBorderAlpha:0.1, - markerSize:20, - switchColor:"#000000" - }, - - AmGraph: { - lineAlpha: 0.4, - fillAlphas:0.5 - }, - - AmAngularGauge:{ - faceAlpha:0.5, - facePattern:{"url":"patterns/black/pattern1.png", "width":4, "height":4} - }, - - - GaugeArrow: { - color: "#000000", - alpha: 1, - nailAlpha: 1, - innerRadius: "0%", - nailRadius: 15, - startWidth: 15, - borderAlpha: 1, - radius:"70%", - nailBorderAlpha: 1 - }, - - GaugeAxis: { - tickColor: "#000000", - tickAlpha: 1, - tickLength: 15, - minorTickLength: 8, - axisThickness: 1, - axisColor: '#000000', - axisAlpha: 1, - bandAlpha: 1 - }, - - TrendLine: { - lineColor: "#c03246", - lineAlpha: 0.8 - }, - - // ammap - AreasSettings: { - alpha: 0.8, - color: "#000000", - colorSolid: "#000000", - unlistedAreasAlpha: 0.4, - unlistedAreasColor: "#000000", - outlineColor: "#FFFFFF", - outlineAlpha: 0.5, - outlineThickness: 0.5, - rollOverColor: "#3c5bdc", - rollOverOutlineColor: "#FFFFFF", - selectedOutlineColor: "#FFFFFF", - selectedColor: "#f15135", - unlistedAreasOutlineColor: "#FFFFFF", - unlistedAreasOutlineAlpha: 0.5 - }, - - LinesSettings: { - color: "#000000", - alpha: 0.8 - }, - - ImagesSettings: { - alpha: 0.8, - labelColor: "#000000", - color: "#000000", - labelRollOverColor: "#3c5bdc" - }, - - ZoomControl: { - buttonRollOverColor: "#3c5bdc", - buttonFillColor: "#f15135", - buttonFillAlpha: 0.8 - }, - - SmallMap: { - mapColor: "#000000", - rectangleColor: "#FFFFFF", - backgroundColor: "#FFFFFF", - backgroundAlpha: 0.7, - borderThickness: 1, - borderAlpha: 0.8 - }, - - // the defaults below are set using CSS syntax, you can use any existing css property - // if you don't use Stock chart, you can delete lines below - PeriodSelector: { - color: "#000000" - }, - - PeriodButton: { - color: "#000000", - background: "transparent", - opacity: 0.7, - border: "1px solid rgba(0, 0, 0, .3)", - MozBorderRadius: "5px", - borderRadius: "5px", - margin: "1px", - outline: "none", - boxSizing: "border-box" - }, - - PeriodButtonSelected: { - color: "#000000", - backgroundColor: "rgba(0, 0, 0, 0.1)", - border: "1px solid rgba(0, 0, 0, .3)", - MozBorderRadius: "5px", - borderRadius: "5px", - margin: "1px", - outline: "none", - opacity: 1, - boxSizing: "border-box" - }, - - PeriodInputField: { - color: "#000000", - background: "transparent", - border: "1px solid rgba(0, 0, 0, .3)", - outline: "none" - }, - - DataSetSelector: { - color: "#000000", - selectedBackgroundColor: "rgba(0, 0, 0, .25)", - rollOverBackgroundColor: "rgba(0, 0, 0, .15)" - }, - - DataSetCompareList: { - color: "#000000", - lineHeight: "100%", - boxSizing: "initial", - webkitBoxSizing: "initial", - border: "1px solid rgba(0, 0, 0, .3)" - }, - - DataSetSelect: { - border: "1px solid rgba(0, 0, 0, .3)", - outline: "none" - } - -}; \ No newline at end of file diff --git a/chronos/static/js/amcharts/xy.js b/chronos/static/js/amcharts/xy.js deleted file mode 100644 index a82ac4c..0000000 --- a/chronos/static/js/amcharts/xy.js +++ /dev/null @@ -1,19 +0,0 @@ -(function(){var e=window.AmCharts;e.AmXYChart=e.Class({inherits:e.AmRectangularChart,construct:function(a){this.type="xy";e.AmXYChart.base.construct.call(this,a);this.cname="AmXYChart";this.theme=a;this.createEvents("zoomed");this.maxZoomFactor=20;e.applyTheme(this,a,this.cname)},initChart:function(){e.AmXYChart.base.initChart.call(this);this.dataChanged&&(this.updateData(),this.dataChanged=!1,this.dispatchDataUpdated=!0);this.updateScrollbar=!0;this.drawChart();this.autoMargins&&!this.marginsUpdated&& -(this.marginsUpdated=!0,this.measureMargins());var a=this.marginLeftReal,c=this.marginTopReal,b=this.plotAreaWidth,d=this.plotAreaHeight;this.graphsSet.clipRect(a,c,b,d);this.bulletSet.clipRect(a,c,b,d);this.trendLinesSet.clipRect(a,c,b,d)},prepareForExport:function(){var a=this.bulletSet;a.clipPath&&this.container.remove(a.clipPath)},createValueAxes:function(){var a=[],c=[];this.xAxes=a;this.yAxes=c;var b=this.valueAxes,d,f;for(f=0;ff){var e=f;f=d;d=e}b.dispatchZoomEvent(d,f)}}}},zoomObjects:function(a){var c=a.length,b,d;for(b=0;be&&(e=p);pthis.maxZoomFactor&&(a=this.maxZoomFactor); -return a},fitH:function(a,c){var b=-(this.plotAreaWidth*c-this.plotAreaWidth);a span").replaceWith(function(){ - return $("" + $(this).html() + ""); - }); - $("#winterStatus").attr("src", "static/images/Icons/WinterSummer/WOn.png"); - $.unblockUI(); - }); - break; - case 1: - $.blockUI(); - $.get("season_templates", function(data) { - $("#mode-header").text("Summer mode"); - $("#timer").text(""); - $("#modbus").replaceWith(data.stats); - $("#system-map").replaceWith(data.system_map); - $("#form").replaceWith(data.form); - $(":radio").slice(3).prop("disabled", false); - $(".pull-left > span").replaceWith(function(){ - return $("" + $(this).html() + ""); - }); - $("#summerStatus").attr("src", "static/images/Icons/WinterSummer/SOn.png"); - $.unblockUI(); - }); - break; - case 2: - $("#mode-header").text("Switching to winter mode in "); - $("img[id^=\"chillerStatus\"]").attr("src", "static/images/Icons/Boiler/Chiller-OFF.png"); - $("#winterStatus").attr("src", "static/images/Icons/WinterSummer/WOff.png"); - $("#summerStatus").attr("src", "static/images/Icons/WinterSummer/SOff.png"); - $(".switch-mode").replaceWith(function(){ - return $("" + $(this).html() + ""); - }); - $(":radio").prop("disabled", true); - break; - case 3: - - $("#mode-header").text("Switching to summer mode in "); - $("#boilerStatus").attr("src", "static/images/Icons/Boiler/Boiler-OFF.png"); - $("#winterStatus").attr("src", "static/images/Icons/WinterSummer/WOff.png"); - $("#summerStatus").attr("src", "static/images/Icons/WinterSummer/SOff.png"); - $(".switch-mode").replaceWith(function(){ - return $("" + $(this).html() + ""); - }); - $(":radio").prop("disabled", true); - } - } - $(".pull-left, .pull-right").on("click", "a.switch-mode", function() { - $.blockUI(); - var mode = $(this).data("mode"); - var post_data = {"mode": mode}; - $.post("switch_mode", post_data).done(function(data) { - $.unblockUI(); - if (data.data.error) { - $("#season-warning").append("
Warning! With current parameters Chronos will automatically switch back to current season in " + data.data.mode_switch_lockout_time + " minutes
"); - } - var deadline = new Date(Date.parse(new Date()) + 120 * 1000); - initializeClock("#timer", deadline); - }); - }); - socket.on("manual_override", function(data) { - switch (parseInt(data.manual_override)) { - case 0: - $("#deviceAuto" + data.device).prop("checked", true); - break; - case 1: - $("#deviceOn" + data.device).prop("checked", true); - break; - case 2: - $("#deviceOff" + data.device).prop("checked", true); - } - }); - socket.on("chiller", function(data) { - switch (parseInt(data.status)) { - case 0: - $("#chillerStatus" + data.device).attr("src", "static/images/Icons/Boiler/Chiller-OFF.png"); - break; - case 1: - $("#chillerStatus" + data.device).attr("src", "static/images/Icons/Boiler/Chiller-ON.png"); - } - if (data.switched_timestamp) { - $("#chillerOnTime" + data.device).text(data.switched_timestamp); - } - }); - socket.on("boiler", function(data) { - switch (parseInt(data.status)) { - case 0: - $("#boilerStatus").attr("src", "static/images/Icons/Boiler/Boiler-OFF.png"); - break; - case 1: - $("#boilerStatus").attr("src", "static/images/Icons/Boiler/Boiler-ON.png"); - } - }); - socket.on("misc", function(data) { - for (var property in data) { - if (data[property]) { - $("#" + property + ", ." + property).text(parseFloat(data[property]).toFixed(1)); - } - if (property == "mode") { - switch_season(data[property]); - } - } - }) - $("input:radio[name$=ManualOverride]").change(function() { - var post_data = {device: parseInt($(this)[0].id.split(/device(On|Off|Auto)/)[2]), - manual_override: parseInt($(this)[0].value)}; - $.blockUI(); - $.post("update_state", post_data).done(function(data) { - if (data.error == true) { - $("#relay-alert").html("
×Error! Relay switching has been failed.
"); - } - $.unblockUI(); - }); - }); - $("#settings").ajaxForm({ - clearForm: true, - beforeSubmit: function(formData, jqForm, options) { - var empty = false; - for (var i=0; i < formData.length; i++) { - if (formData[i].value) { - empty = true; - } - } - if (!empty) { - alert("At least a one field should be filled."); - } - return empty; - } - }); -}); \ No newline at end of file diff --git a/chronos/static/js/reconnecting-websocket.min.js b/chronos/static/js/reconnecting-websocket.min.js deleted file mode 100644 index 3015099..0000000 --- a/chronos/static/js/reconnecting-websocket.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a,b){"function"==typeof define&&define.amd?define([],b):"undefined"!=typeof module&&module.exports?module.exports=b():a.ReconnectingWebSocket=b()}(this,function(){function a(b,c,d){function l(a,b){var c=document.createEvent("CustomEvent");return c.initCustomEvent(a,!1,!1,b),c}var e={debug:!1,automaticOpen:!0,reconnectInterval:1e3,maxReconnectInterval:3e4,reconnectDecay:1.5,timeoutInterval:2e3};d||(d={});for(var f in e)this[f]="undefined"!=typeof d[f]?d[f]:e[f];this.url=b,this.reconnectAttempts=0,this.readyState=WebSocket.CONNECTING,this.protocol=null;var h,g=this,i=!1,j=!1,k=document.createElement("div");k.addEventListener("open",function(a){g.onopen(a)}),k.addEventListener("close",function(a){g.onclose(a)}),k.addEventListener("connecting",function(a){g.onconnecting(a)}),k.addEventListener("message",function(a){g.onmessage(a)}),k.addEventListener("error",function(a){g.onerror(a)}),this.addEventListener=k.addEventListener.bind(k),this.removeEventListener=k.removeEventListener.bind(k),this.dispatchEvent=k.dispatchEvent.bind(k),this.open=function(b){h=new WebSocket(g.url,c||[]),b||k.dispatchEvent(l("connecting")),(g.debug||a.debugAll)&&console.debug("ReconnectingWebSocket","attempt-connect",g.url);var d=h,e=setTimeout(function(){(g.debug||a.debugAll)&&console.debug("ReconnectingWebSocket","connection-timeout",g.url),j=!0,d.close(),j=!1},g.timeoutInterval);h.onopen=function(){clearTimeout(e),(g.debug||a.debugAll)&&console.debug("ReconnectingWebSocket","onopen",g.url),g.protocol=h.protocol,g.readyState=WebSocket.OPEN,g.reconnectAttempts=0;var d=l("open");d.isReconnect=b,b=!1,k.dispatchEvent(d)},h.onclose=function(c){if(clearTimeout(e),h=null,i)g.readyState=WebSocket.CLOSED,k.dispatchEvent(l("close"));else{g.readyState=WebSocket.CONNECTING;var d=l("connecting");d.code=c.code,d.reason=c.reason,d.wasClean=c.wasClean,k.dispatchEvent(d),b||j||((g.debug||a.debugAll)&&console.debug("ReconnectingWebSocket","onclose",g.url),k.dispatchEvent(l("close")));var e=g.reconnectInterval*Math.pow(g.reconnectDecay,g.reconnectAttempts);setTimeout(function(){g.reconnectAttempts++,g.open(!0)},e>g.maxReconnectInterval?g.maxReconnectInterval:e)}},h.onmessage=function(b){(g.debug||a.debugAll)&&console.debug("ReconnectingWebSocket","onmessage",g.url,b.data);var c=l("message");c.data=b.data,k.dispatchEvent(c)},h.onerror=function(b){(g.debug||a.debugAll)&&console.debug("ReconnectingWebSocket","onerror",g.url,b),k.dispatchEvent(l("error"))}},1==this.automaticOpen&&this.open(!1),this.send=function(b){if(h)return(g.debug||a.debugAll)&&console.debug("ReconnectingWebSocket","send",g.url,b),h.send(b);throw"INVALID_STATE_ERR : Pausing to reconnect websocket"},this.close=function(a,b){"undefined"==typeof a&&(a=1e3),i=!0,h&&h.close(a,b)},this.refresh=function(){h&&h.close()}}return a.prototype.onopen=function(){},a.prototype.onclose=function(){},a.prototype.onconnecting=function(){},a.prototype.onmessage=function(){},a.prototype.onerror=function(){},a.debugAll=!1,a.CONNECTING=WebSocket.CONNECTING,a.OPEN=WebSocket.OPEN,a.CLOSING=WebSocket.CLOSING,a.CLOSED=WebSocket.CLOSED,a}); diff --git a/chronos/static/js/tempchart.js b/chronos/static/js/tempchart.js deleted file mode 100644 index 4ab7dc7..0000000 --- a/chronos/static/js/tempchart.js +++ /dev/null @@ -1,42 +0,0 @@ -AmCharts.makeChart("chartdiv", - { - "type": "serial", - "dataLoader": { - "url": "chart_data", - "format": "json", - "reload": 60 - }, - "pathToImages": "http://cdn.amcharts.com/lib/3/images/", - "categoryField": "date", - "dataDateFormat": "YYYY-MM-DD HH:NN", - "categoryAxis": { - "minPeriod": "mm", - "parseDates": true - }, - "chartCursor": { - "categoryBalloonDateFormat": "JJ:NN" - }, - "graphs": [ - { - "bullet": "round", - "id": "AmGraph-1", - "title": "Water Outlet", - "valueField": "column-1" - }, - { - "bullet": "square", - "id": "AmGraph-2", - "title": "Water Inlet", - "valueField": "column-2" - } - ], - "legend": { - "useGraphSettings": true - }, - "valueAxes": [ - { - "id": "ValueAxis-1", - "title": "Temperature" - } - ] - }) \ No newline at end of file diff --git a/chronos/templates/base.html b/chronos/templates/base.html deleted file mode 100644 index 8dbfa1c..0000000 --- a/chronos/templates/base.html +++ /dev/null @@ -1,255 +0,0 @@ - - - - - - - - Chronos: Home Page - - - - - - - - - - - - - - - - - -
-
-
-

CHRONOS

-

SYSTEM - {{ "ONLINE" if data["chronos_status"] else "OFFLINE" }}

-
-
-
-
- {% block switches %}{% endblock %} -
-
-
-
-

{% block mode %}{% endblock %}

-
-
-

SYSTEM MAP

-
-
-

User Settings

-
-
-
-
-
-
Outdoor Temp
-
{{ data["results"]["outside_temp"] }} °F
-
Avg Temp (96 hrs)
-
{{ data["results"]["wind_chill_avg"] }} °F
-
-

wx.thomaslivestock.com

-

Sensors

-
-
Inlet
-
{{ data["results"]["return_temp"] }} °F
-
Outlet
-
{{ data["results"]["water_out_temp"] }} °F
-
- {% block modbus %}{% endblock %} - {% block chillers_on_time %}{% endblock %} -
-
- {% block system_map %}{% endblock %} -
-
-
-
Baseline Setpoint
-
{{ data["results"]["baseline_setpoint"] }} °F
-
THA Setpoint
-
{{ data["results"]["tha_setpoint"] }} °F
-
Effective Setpoint
-
{{ data["results"]["effective_setpoint"] }} °F
-
-
-
- -
-

{{ data["results"]["tolerance"] }} °F

-
-
- -
-
-
- -
-

{{ data["results"]["setpoint_min"] }} °F

-
-
- -
-
-
- -
-

{{ data["results"]["setpoint_max"] }} °F

-
-
- -
-
-
- -
-

{{ data["results"]["setpoint_offset_summer"] }} °F

-
-
- -
-
-
- -
-

{{ data["results"]["setpoint_offset_winter"] }} °F

-
-
- -
-
-
- -
-

{{ data["results"]["mode_change_delta_temp"] }} °F

-
-
- -
-
-
- -
-

{{ data["results"]["mode_switch_lockout_time"] }} min.

-
-
- -
-
-
- {% block form %}{% endblock %} -
-
-
- -
-
- -
-
-
-
-
-
-
MANUAL OVERRIDE
-
-
-
-
-
-
-
-
- -
-
- -
-
- -
-
- {% for i in range(1, 5) %} -
-
- -
-
- -
-
- -
-
- {% endfor %} -
-
-

Boiler

- {% for i in range(1, 5) %} -

Chiller {{i}}

- {% endfor %} -
-
-
-
-
-
EFFICIENCY METRICS for {{ data["efficiency"]["hours"] }} hrs
-
-
-
-
-
-

-

Chillers efficiency: {{ data["efficiency"]["chillers_efficiency"] }}

-

Average temperature difference: {{ data["efficiency"]["average_temperature_difference"] }} °F

-

Average cascade fire rate: {{ data["efficiency"]["cascade_fire_rate_avg"] }} %

-
-
-
-
-
-

Inlet/Outlet Temperature History

-
-
-
-
- -
-
-
- - - - - - - - \ No newline at end of file diff --git a/chronos/templates/form.html b/chronos/templates/form.html deleted file mode 100644 index 37f5dc7..0000000 --- a/chronos/templates/form.html +++ /dev/null @@ -1,13 +0,0 @@ -
-{% if data["results"]["mode"] == 1 %} -
- -
-

{{ data["results"]["cascade_time"] }} min.

-
-
- -
-
-{% endif %} -
\ No newline at end of file diff --git a/chronos/templates/stats.html b/chronos/templates/stats.html deleted file mode 100644 index f9ff6ad..0000000 --- a/chronos/templates/stats.html +++ /dev/null @@ -1,24 +0,0 @@ -{% if data["results"]["mode"] == 0 %} -
-

Modbus

-
-
System Supply Temp
-
0 °F
-
Outlet Temp
-
0 °F
-
Inlet Temp
-
0 °F
-
Cascade Power
-
0 %
-
Lead Firing Rate
-
0 %
-
-
-{% elif data["results"]["mode"] == 1 %} -
-

On Time

- {% for i in range(1, 5) %} -

Chiller {{i}}: {{ data["actStream"][i]["timeStamp"] }}

- {% endfor %} -
-{% endif %} \ No newline at end of file diff --git a/chronos/templates/summer.html b/chronos/templates/summer.html deleted file mode 100644 index 67aee66..0000000 --- a/chronos/templates/summer.html +++ /dev/null @@ -1,54 +0,0 @@ -{% extends "base.html" %} -{% block switches %} -
- - Winter -
-
- - Summer -
-{% endblock %} -{% block mode %} - Summer Mode - -{% endblock %} -{% block chillers_on_time %} -
-

Last Switch Time

- {% for i in range(1, 5) %} -

Chiller {{i}}: {{ data["actStream"][i]["timeStamp"] }}

- {% endfor %} -
-{% endblock %} -{% block system_map %} - - {% for i in range(1,5) %} - {% if data["actStream"][i]["status"] == 0 %} - - {% elif data["actStream"][i]["status"] == 1 %} - - {% endif %} - {% endfor %} - -
-
- {{ data["results"]["return_temp"] }} °F -
-
- {{ data["results"]["water_out_temp"] }} °F -
-
-{% endblock %} -{% block form %} -
- -
-

{{ data["results"]["cascade_time"] }} min.

-
-
- -
-
-{% endblock %} -{% block property_boiler %}disabled{% endblock %} \ No newline at end of file diff --git a/chronos/templates/system_map.html b/chronos/templates/system_map.html deleted file mode 100644 index cb986c0..0000000 --- a/chronos/templates/system_map.html +++ /dev/null @@ -1,75 +0,0 @@ -
-{% if data["results"]["mode"] == 0 %} -
-
-
- {% if data["actStream"][0]["status"] == 0 %} - - {% elif data["actStream"][0]["status"] == 1 %} - - {% endif%} -
-
-
-

Cascade Fire

-

0 %

-

Lead Fire

-

0 %

-
-
-
-
-
- 0 °F -
-
- 0 °F -
-
-
-
- -
-
-
-
- {{ data["results"]["water_out_temp"] }} °F -
-
-
-
- 0 °F -
-
-
-
- -
-
-
-
- {{ data["results"]["return_temp"] }} °F -
-
-
-
-{% elif data["results"]["mode"] == 1 %} - - {% for i in range(1, 5) %} - {% if data["actStream"][i]["status"] == 0 %} - - {% elif data["actStream"][i]["status"] == 1 %} - - {% endif %} - {% endfor %} - -
-
- {{ data["results"]["return_temp"] }} °F -
-
- {{ data["results"]["water_out_temp"] }} °F -
-
-{% endif %} -
\ No newline at end of file diff --git a/chronos/templates/to_summer.html b/chronos/templates/to_summer.html deleted file mode 100644 index 7488650..0000000 --- a/chronos/templates/to_summer.html +++ /dev/null @@ -1,17 +0,0 @@ -{% extends "winter.html" %} -{% block switches %} -
- - Winter -
-
- - Summer -
-{% endblock %} -{% block mode %} - Switching to summer mode in - -{% endblock %} -{% block property_boiler %}disabled{% endblock %} -{% block property_chiller %}disabled{% endblock %} \ No newline at end of file diff --git a/chronos/templates/to_winter.html b/chronos/templates/to_winter.html deleted file mode 100644 index c10bb76..0000000 --- a/chronos/templates/to_winter.html +++ /dev/null @@ -1,17 +0,0 @@ -{% extends "summer.html" %} -{% block switches %} -
- - Winter -
-
- - Summer -
-{% endblock %} -{% block mode %} - Switching to winter mode in - -{% endblock %} -{% block property_boiler %}disabled{% endblock %} -{% block property_chiller %}disabled{% endblock %} \ No newline at end of file diff --git a/chronos/templates/winter.html b/chronos/templates/winter.html deleted file mode 100644 index d8859ef..0000000 --- a/chronos/templates/winter.html +++ /dev/null @@ -1,88 +0,0 @@ -{% extends "base.html" %} -{% block switches %} -
- - Winter -
-
- - Summer -
-{% endblock %} -{% block mode %} - Winter Mode - -{% endblock %} -{% block modbus %} -
-

Modbus

-
-
System Supply Temp
-
0 °F
-
Outlet Temp
-
0 °F
-
Inlet Temp
-
0 °F
-
Cascade Power
-
0 %
-
Lead Firing Rate
-
0 %
-
-
-{% endblock %} -{% block system_map %} -
-
-
- {% if data["actStream"][0]["status"] == 0 %} - - {% elif data["actStream"][0]["status"] == 1 %} - - {% endif%} -
-
-
-

Cascade Fire

-

0 %

-

Lead Fire

-

0 %

-
-
-
-
-
- 0 °F -
-
- 0 °F -
-
-
-
- -
-
-
-
- {{ data["results"]["water_out_temp"] }} °F -
-
-
-
- 0 °F -
-
-
-
- -
-
-
-
- {{ data["results"]["return_temp"] }} °F -
-
-
-
-{% endblock %} -{% block property_chiller %}disabled{% endblock %} \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index a6b6762..a250bca 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,9 +3,9 @@ services: chronos: build: . ports: - - "80:80" + - "90:80" privileged: true - container_name: chronos + container_name: chronos4 networks: default: diff --git a/entrypoint.sh b/entrypoint.sh index b6fecf2..c34593f 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -1,19 +1,28 @@ #!/bin/bash +set -e + socat -d -d PTY,link=/tmp/ptyp0,raw,echo=0 PTY,link=/tmp/ttyp0,raw,echo=0 & socat -d -d PTY,link=/tmp/ptyp1,raw,echo=0 PTY,link=/tmp/ttyp1,raw,echo=0 & python2 working-sync-server.py /tmp/ttyp0 & + + sudo chown pi:pi /tmp/ptyp0 sudo chown pi:pi /tmp/ptyp1 sudo chown -R pi:pi /home/pi + sleep 2 -mkdir /var/log/uwsgi +mkdir -p /var/log/uwsgi + +/usr/local/bin/uwsgi --version + /usr/local/bin/uwsgi --ini /etc/uwsgi/apps-enabled/socketio_server.ini --pidfile /var/run/uwsgi/uwsgi-socketio.pid --daemonize /var/log/uwsgi/uwsgi-socketio.log -# Added to simulate water temperature in and out echo -e "YES\nt=100" > /tmp/water_in echo -e "YES\nt=150" > /tmp/water_out + service uwsgi start service nginx start service chronos start + tail -f /dev/null From 8359da7c26612522811fdf4fe003bde29ea74f67 Mon Sep 17 00:00:00 2001 From: fardin-developer Date: Sun, 20 Oct 2024 01:48:52 +0530 Subject: [PATCH 2/2] client in react and dockerised --- .gitIgnore | 1 - .github/workflows/main.yml | 19 - README.md | 45 +- client/.dockerignore | 2 + client/.gitignore | 24 + client/Dockerfile | 27 + client/README.md | 29 + client/eslint.config.js | 38 + client/index.html | 14 + client/package-lock.json | 4875 +++++++++++++++++ client/package.json | 35 + client/public/Chiller-OFF.png | Bin 0 -> 10955 bytes client/public/images/Boiler-Cold.png | Bin 0 -> 52000 bytes client/public/images/Boiler-Hot.png | Bin 0 -> 53263 bytes .../public/images/Icons/Boiler/Boiler-OFF.png | Bin 0 -> 12417 bytes .../public/images/Icons/Boiler/Boiler-ON.png | Bin 0 -> 10875 bytes .../images/Icons/Boiler/Chiller-OFF.png | Bin 0 -> 10955 bytes .../public/images/Icons/Boiler/Chiller-ON.png | Bin 0 -> 12063 bytes client/public/images/Icons/Boiler/arrow1.png | Bin 0 -> 4412 bytes client/public/images/Icons/Boiler/arrow2.png | Bin 0 -> 3607 bytes client/public/images/Icons/Boiler/arrow3.png | Bin 0 -> 3353 bytes client/public/images/Icons/Boiler/arrow4.png | Bin 0 -> 3330 bytes client/public/images/Icons/DBWEB/DFDBF.png | Bin 0 -> 75985 bytes client/public/images/Icons/DBWEB/DFDBO.png | Bin 0 -> 74528 bytes client/public/images/Icons/DBWEB/DODBF.png | Bin 0 -> 73958 bytes client/public/images/Icons/DBWEB/DODBO.png | Bin 0 -> 74444 bytes client/public/images/Icons/GPIO/GPIOF.png | Bin 0 -> 68578 bytes client/public/images/Icons/GPIO/GPIOO.png | Bin 0 -> 69338 bytes client/public/images/Icons/Logo.png | Bin 0 -> 59428 bytes .../Icons/MainImage/INlet/InletCold.png | Bin 0 -> 50899 bytes .../images/Icons/MainImage/INlet/InletHot.png | Bin 0 -> 51935 bytes client/public/images/Icons/MainImage/OCIC.png | Bin 0 -> 65793 bytes client/public/images/Icons/MainImage/OCIH.png | Bin 0 -> 66880 bytes client/public/images/Icons/MainImage/OHIC.png | Bin 0 -> 65337 bytes client/public/images/Icons/MainImage/OHIH.png | Bin 0 -> 66631 bytes .../Icons/MainImage/Outlet/OutletColdt.png | Bin 0 -> 49941 bytes .../Icons/MainImage/Outlet/OutletHot.png | Bin 0 -> 50066 bytes client/public/images/Icons/Manual/Auto.png | Bin 0 -> 75319 bytes client/public/images/Icons/Manual/OFF.png | Bin 0 -> 75333 bytes client/public/images/Icons/Manual/ON.png | Bin 0 -> 75207 bytes client/public/images/Icons/TINTOUT/TFTF.png | Bin 0 -> 75309 bytes client/public/images/Icons/TINTOUT/TFTO.png | Bin 0 -> 73506 bytes client/public/images/Icons/TINTOUT/TOTF.png | Bin 0 -> 74136 bytes client/public/images/Icons/TINTOUT/TOTO.png | Bin 0 -> 72758 bytes .../public/images/Icons/WinterSummer/SOff.png | Bin 0 -> 52355 bytes .../public/images/Icons/WinterSummer/SOn.png | Bin 0 -> 51879 bytes .../public/images/Icons/WinterSummer/WOff.png | Bin 0 -> 51468 bytes .../public/images/Icons/WinterSummer/WOn.png | Bin 0 -> 52357 bytes .../Icons/bootstrap/bootstrap/.gitignore | 5 + .../images/Icons/bootstrap/bootstrap/CNAME | 1 + .../Icons/bootstrap/bootstrap/CONTRIBUTING.md | 14 + .../images/Icons/bootstrap/bootstrap/LICENSE | 176 + .../Icons/bootstrap/bootstrap/README.md | 60 + .../Icons/bootstrap/bootstrap/bower.json | 24 + .../Icons/bootstrap/bootstrap/coffeelint.json | 127 + .../Icons/bootstrap/bootstrap/composer.json | 37 + .../bootstrap/docs/css/bootstrap.min.css | 7 + .../bootstrap/docs/css/highlight.css | 153 + .../bootstrap/bootstrap/docs/css/main.css | 51 + .../fonts/glyphicons-halflings-regular.eot | Bin 0 -> 20335 bytes .../fonts/glyphicons-halflings-regular.svg | 229 + .../fonts/glyphicons-halflings-regular.ttf | Bin 0 -> 41280 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 0 -> 23320 bytes .../bootstrap/docs/js/bootstrap.min.js | 6 + .../bootstrap/bootstrap/docs/js/highlight.js | 1 + .../bootstrap/bootstrap/docs/js/jquery.min.js | 4 + .../Icons/bootstrap/bootstrap/docs/js/main.js | 45 + .../bootstrap/bootstrap/documentation-2.html | 320 ++ .../bootstrap/bootstrap/documentation-3.html | 324 ++ .../Icons/bootstrap/bootstrap/gulpfile.coffee | 115 + .../Icons/bootstrap/bootstrap/gulpfile.js | 2 + .../Icons/bootstrap/bootstrap/index.html | 126 + .../Icons/bootstrap/bootstrap/main.html | 74 + .../Icons/bootstrap/bootstrap/package.json | 56 + .../Icons/bootstrap/bootstrap/page.html | 70 + .../src/coffee/bootstrap-switch.coffee | 391 ++ .../bootstrap/src/docs/documentation-2.jade | 211 + .../bootstrap/src/docs/documentation-3.jade | 228 + .../bootstrap/bootstrap/src/docs/index.jade | 64 + .../bootstrap/bootstrap/src/docs/main.jade | 76 + .../src/less/bootstrap2/bootstrap-switch.less | 196 + .../bootstrap/src/less/bootstrap2/build.less | 3 + .../bootstrap/src/less/bootstrap2/mixins.less | 702 +++ .../src/less/bootstrap2/variables.less | 301 + .../src/less/bootstrap3/bootstrap-switch.less | 201 + .../bootstrap/src/less/bootstrap3/build.less | 3 + .../bootstrap/src/less/bootstrap3/mixins.less | 929 ++++ .../src/less/bootstrap3/variables.less | 829 +++ .../src/test/bootstrap-switch.coffee | 1 + client/public/images/TOTO.png | Bin 0 -> 72758 bytes client/public/images/bitMapTemp.png | Bin 0 -> 3327 bytes client/public/images/bitMapTempTwo.png | Bin 0 -> 3332 bytes client/public/images/boilerOne.png | Bin 0 -> 3713 bytes client/public/images/chillerOne.png | Bin 0 -> 3769 bytes client/public/images/chillerTwo.png | Bin 0 -> 3769 bytes client/public/images/demo.png | Bin 0 -> 66764 bytes client/public/vite.svg | 1 + client/src/App.css | 36 + client/src/App.jsx | 15 + client/src/app/store.js | 12 + client/src/assets/react.svg | 1 + .../ManualOverride/ManualOverride.css | 54 + .../ManualOverride/ManualOverride.jsx | 151 + client/src/components/Modebus/Modbus.jsx | 36 + client/src/components/Navbar/Navbar.jsx | 94 + client/src/components/Navbar/nav.css | 82 + .../src/components/Sensor/TableTemplate.jsx | 23 + .../src/components/Sensor/tabletemplate.css | 52 + .../src/components/SummerMode/SummerMode.css | 65 + .../src/components/SummerMode/SummerMode.jsx | 31 + .../src/components/SwitchTime/SwitchTime.jsx | 9 + .../TemperatureGraph/TemperatureGraph.css | 38 + .../TemperatureGraph/TemperatureGraph.jsx | 101 + .../components/UserSettings/UserSettings.css | 63 + .../components/UserSettings/UserSettings.jsx | 180 + .../UserSettingsFixed/UserSettings.jsx | 27 + .../UserSettingsFixed/UserSettingsFixed.css | 63 + client/src/components/systemMap/SystemMap.css | 84 + client/src/components/systemMap/SystemMap.jsx | 116 + .../src/features/state/ManualOverrideSlice.js | 19 + client/src/features/state/seasonSlice.js | 24 + client/src/features/summer/summerSlice.js | 47 + .../src/features/summer/winterSlice.js | 0 client/src/index.css | 74 + client/src/main.jsx | 14 + client/src/pages/Home/Home.css | 70 + client/src/pages/Home/Home.jsx | 76 + client/vite.config.js | 11 + docker-compose.yml | 19 +- server/.DS_Store | Bin 0 -> 8196 bytes .../bin/__init__.py => server/.dockerignore | 0 Dockerfile => server/Dockerfile | 0 MANIFEST.in => server/MANIFEST.in | 0 server/README.md | 189 + chronos.sql => server/chronos.sql | Bin {chronos/utils => server/chronos}/__init__.py | 0 server/chronos/bin/__init__.py | 0 {chronos => server/chronos}/bin/chronosd.py | 0 .../chronos}/bin/socketio_server.py | 13 +- {chronos => server/chronos}/chronos.py | 14 +- {chronos => server/chronos}/lib/__init__.py | 0 .../chronos}/lib/config_parser.py | 0 {chronos => server/chronos}/lib/db.py | 0 {chronos => server/chronos}/lib/db_queries.py | 0 .../chronos}/lib/modbus_client.py | 0 .../chronos}/lib/root_logger.py | 0 .../chronos}/lib/socketio_client.py | 0 server/chronos/utils/__init__.py | 0 .../chronos}/utils/chronos_hardware_debug.py | 0 .../chronos}/utils/modbus_sp/boiler_status.c | 0 .../chronos}/utils/modbus_sp/bstat | Bin .../chronos}/utils/modbus_sp/bstat.c | 0 .../chronos}/utils/modbus_sp/change_sp.c | 0 .../chronos}/utils/modbus_sp/fr | 0 .../chronos}/utils/modbus_sp/graphic.c | 0 .../chronos}/utils/modbus_sp/run_change_sp.sh | 0 .../chronos}/utils/modbus_sp/sp | 0 .../chronos}/utils/modbus_sp/sp.sh | 0 .../chronos}/utils/modbus_sp/toCompile.txt | 0 .../chronos}/utils/modbus_sp/tt-status.c | 0 .../chronos}/utils/modbus_sp/tt-status_ro.c | 0 .../chronos}/utils/relayHelpers/relayread.py | 0 .../chronos}/utils/relayHelpers/relaywrite.py | 0 {chronos => server/chronos}/utils/temp.sh | 0 client.py => server/client.py | 1 + {data_files => server/data_files}/chronos | 0 .../data_files}/chronos.conf | 10 +- {data_files => server/data_files}/chronos.ini | 0 .../data_files}/chronos.wsgi | 0 .../data_files}/chronos_config.json | 0 .../data_files}/socketio_server.ini | 0 {data_files => server/data_files}/uwsgi | 0 .../data_files}/uwsgi-socketio.service | 0 entrypoint.sh => server/entrypoint.sh | 7 +- post_install => server/post_install | 0 setup.py => server/setup.py | 0 .../working-sync-server.py | 0 177 files changed, 13141 insertions(+), 52 deletions(-) delete mode 100644 .gitIgnore delete mode 100644 .github/workflows/main.yml create mode 100644 client/.dockerignore create mode 100644 client/.gitignore create mode 100644 client/Dockerfile create mode 100644 client/README.md create mode 100644 client/eslint.config.js create mode 100644 client/index.html create mode 100644 client/package-lock.json create mode 100644 client/package.json create mode 100644 client/public/Chiller-OFF.png create mode 100644 client/public/images/Boiler-Cold.png create mode 100644 client/public/images/Boiler-Hot.png create mode 100644 client/public/images/Icons/Boiler/Boiler-OFF.png create mode 100644 client/public/images/Icons/Boiler/Boiler-ON.png create mode 100644 client/public/images/Icons/Boiler/Chiller-OFF.png create mode 100644 client/public/images/Icons/Boiler/Chiller-ON.png create mode 100644 client/public/images/Icons/Boiler/arrow1.png create mode 100644 client/public/images/Icons/Boiler/arrow2.png create mode 100644 client/public/images/Icons/Boiler/arrow3.png create mode 100644 client/public/images/Icons/Boiler/arrow4.png create mode 100644 client/public/images/Icons/DBWEB/DFDBF.png create mode 100644 client/public/images/Icons/DBWEB/DFDBO.png create mode 100644 client/public/images/Icons/DBWEB/DODBF.png create mode 100644 client/public/images/Icons/DBWEB/DODBO.png create mode 100644 client/public/images/Icons/GPIO/GPIOF.png create mode 100644 client/public/images/Icons/GPIO/GPIOO.png create mode 100644 client/public/images/Icons/Logo.png create mode 100644 client/public/images/Icons/MainImage/INlet/InletCold.png create mode 100644 client/public/images/Icons/MainImage/INlet/InletHot.png create mode 100644 client/public/images/Icons/MainImage/OCIC.png create mode 100644 client/public/images/Icons/MainImage/OCIH.png create mode 100644 client/public/images/Icons/MainImage/OHIC.png create mode 100644 client/public/images/Icons/MainImage/OHIH.png create mode 100644 client/public/images/Icons/MainImage/Outlet/OutletColdt.png create mode 100644 client/public/images/Icons/MainImage/Outlet/OutletHot.png create mode 100644 client/public/images/Icons/Manual/Auto.png create mode 100644 client/public/images/Icons/Manual/OFF.png create mode 100644 client/public/images/Icons/Manual/ON.png create mode 100644 client/public/images/Icons/TINTOUT/TFTF.png create mode 100644 client/public/images/Icons/TINTOUT/TFTO.png create mode 100644 client/public/images/Icons/TINTOUT/TOTF.png create mode 100644 client/public/images/Icons/TINTOUT/TOTO.png create mode 100644 client/public/images/Icons/WinterSummer/SOff.png create mode 100644 client/public/images/Icons/WinterSummer/SOn.png create mode 100644 client/public/images/Icons/WinterSummer/WOff.png create mode 100644 client/public/images/Icons/WinterSummer/WOn.png create mode 100644 client/public/images/Icons/bootstrap/bootstrap/.gitignore create mode 100644 client/public/images/Icons/bootstrap/bootstrap/CNAME create mode 100644 client/public/images/Icons/bootstrap/bootstrap/CONTRIBUTING.md create mode 100644 client/public/images/Icons/bootstrap/bootstrap/LICENSE create mode 100644 client/public/images/Icons/bootstrap/bootstrap/README.md create mode 100644 client/public/images/Icons/bootstrap/bootstrap/bower.json create mode 100644 client/public/images/Icons/bootstrap/bootstrap/coffeelint.json create mode 100644 client/public/images/Icons/bootstrap/bootstrap/composer.json create mode 100644 client/public/images/Icons/bootstrap/bootstrap/docs/css/bootstrap.min.css create mode 100644 client/public/images/Icons/bootstrap/bootstrap/docs/css/highlight.css create mode 100644 client/public/images/Icons/bootstrap/bootstrap/docs/css/main.css create mode 100644 client/public/images/Icons/bootstrap/bootstrap/docs/fonts/glyphicons-halflings-regular.eot create mode 100644 client/public/images/Icons/bootstrap/bootstrap/docs/fonts/glyphicons-halflings-regular.svg create mode 100644 client/public/images/Icons/bootstrap/bootstrap/docs/fonts/glyphicons-halflings-regular.ttf create mode 100644 client/public/images/Icons/bootstrap/bootstrap/docs/fonts/glyphicons-halflings-regular.woff create mode 100644 client/public/images/Icons/bootstrap/bootstrap/docs/js/bootstrap.min.js create mode 100644 client/public/images/Icons/bootstrap/bootstrap/docs/js/highlight.js create mode 100644 client/public/images/Icons/bootstrap/bootstrap/docs/js/jquery.min.js create mode 100644 client/public/images/Icons/bootstrap/bootstrap/docs/js/main.js create mode 100644 client/public/images/Icons/bootstrap/bootstrap/documentation-2.html create mode 100644 client/public/images/Icons/bootstrap/bootstrap/documentation-3.html create mode 100644 client/public/images/Icons/bootstrap/bootstrap/gulpfile.coffee create mode 100644 client/public/images/Icons/bootstrap/bootstrap/gulpfile.js create mode 100644 client/public/images/Icons/bootstrap/bootstrap/index.html create mode 100644 client/public/images/Icons/bootstrap/bootstrap/main.html create mode 100644 client/public/images/Icons/bootstrap/bootstrap/package.json create mode 100644 client/public/images/Icons/bootstrap/bootstrap/page.html create mode 100644 client/public/images/Icons/bootstrap/bootstrap/src/coffee/bootstrap-switch.coffee create mode 100644 client/public/images/Icons/bootstrap/bootstrap/src/docs/documentation-2.jade create mode 100644 client/public/images/Icons/bootstrap/bootstrap/src/docs/documentation-3.jade create mode 100644 client/public/images/Icons/bootstrap/bootstrap/src/docs/index.jade create mode 100644 client/public/images/Icons/bootstrap/bootstrap/src/docs/main.jade create mode 100644 client/public/images/Icons/bootstrap/bootstrap/src/less/bootstrap2/bootstrap-switch.less create mode 100644 client/public/images/Icons/bootstrap/bootstrap/src/less/bootstrap2/build.less create mode 100644 client/public/images/Icons/bootstrap/bootstrap/src/less/bootstrap2/mixins.less create mode 100644 client/public/images/Icons/bootstrap/bootstrap/src/less/bootstrap2/variables.less create mode 100644 client/public/images/Icons/bootstrap/bootstrap/src/less/bootstrap3/bootstrap-switch.less create mode 100644 client/public/images/Icons/bootstrap/bootstrap/src/less/bootstrap3/build.less create mode 100644 client/public/images/Icons/bootstrap/bootstrap/src/less/bootstrap3/mixins.less create mode 100644 client/public/images/Icons/bootstrap/bootstrap/src/less/bootstrap3/variables.less create mode 100644 client/public/images/Icons/bootstrap/bootstrap/src/test/bootstrap-switch.coffee create mode 100644 client/public/images/TOTO.png create mode 100644 client/public/images/bitMapTemp.png create mode 100644 client/public/images/bitMapTempTwo.png create mode 100644 client/public/images/boilerOne.png create mode 100644 client/public/images/chillerOne.png create mode 100644 client/public/images/chillerTwo.png create mode 100644 client/public/images/demo.png create mode 100644 client/public/vite.svg create mode 100644 client/src/App.css create mode 100644 client/src/App.jsx create mode 100644 client/src/app/store.js create mode 100644 client/src/assets/react.svg create mode 100644 client/src/components/ManualOverride/ManualOverride.css create mode 100644 client/src/components/ManualOverride/ManualOverride.jsx create mode 100644 client/src/components/Modebus/Modbus.jsx create mode 100644 client/src/components/Navbar/Navbar.jsx create mode 100644 client/src/components/Navbar/nav.css create mode 100644 client/src/components/Sensor/TableTemplate.jsx create mode 100644 client/src/components/Sensor/tabletemplate.css create mode 100644 client/src/components/SummerMode/SummerMode.css create mode 100644 client/src/components/SummerMode/SummerMode.jsx create mode 100644 client/src/components/SwitchTime/SwitchTime.jsx create mode 100644 client/src/components/TemperatureGraph/TemperatureGraph.css create mode 100644 client/src/components/TemperatureGraph/TemperatureGraph.jsx create mode 100644 client/src/components/UserSettings/UserSettings.css create mode 100644 client/src/components/UserSettings/UserSettings.jsx create mode 100644 client/src/components/UserSettingsFixed/UserSettings.jsx create mode 100644 client/src/components/UserSettingsFixed/UserSettingsFixed.css create mode 100644 client/src/components/systemMap/SystemMap.css create mode 100644 client/src/components/systemMap/SystemMap.jsx create mode 100644 client/src/features/state/ManualOverrideSlice.js create mode 100644 client/src/features/state/seasonSlice.js create mode 100644 client/src/features/summer/summerSlice.js rename chronos/__init__.py => client/src/features/summer/winterSlice.js (100%) create mode 100644 client/src/index.css create mode 100644 client/src/main.jsx create mode 100644 client/src/pages/Home/Home.css create mode 100644 client/src/pages/Home/Home.jsx create mode 100644 client/vite.config.js create mode 100644 server/.DS_Store rename chronos/bin/__init__.py => server/.dockerignore (100%) rename Dockerfile => server/Dockerfile (100%) rename MANIFEST.in => server/MANIFEST.in (100%) create mode 100644 server/README.md rename chronos.sql => server/chronos.sql (100%) rename {chronos/utils => server/chronos}/__init__.py (100%) create mode 100644 server/chronos/bin/__init__.py rename {chronos => server/chronos}/bin/chronosd.py (100%) rename {chronos => server/chronos}/bin/socketio_server.py (52%) rename {chronos => server/chronos}/chronos.py (92%) rename {chronos => server/chronos}/lib/__init__.py (100%) rename {chronos => server/chronos}/lib/config_parser.py (100%) rename {chronos => server/chronos}/lib/db.py (100%) rename {chronos => server/chronos}/lib/db_queries.py (100%) rename {chronos => server/chronos}/lib/modbus_client.py (100%) rename {chronos => server/chronos}/lib/root_logger.py (100%) rename {chronos => server/chronos}/lib/socketio_client.py (100%) create mode 100644 server/chronos/utils/__init__.py rename {chronos => server/chronos}/utils/chronos_hardware_debug.py (100%) rename {chronos => server/chronos}/utils/modbus_sp/boiler_status.c (100%) rename {chronos => server/chronos}/utils/modbus_sp/bstat (100%) rename {chronos => server/chronos}/utils/modbus_sp/bstat.c (100%) rename {chronos => server/chronos}/utils/modbus_sp/change_sp.c (100%) rename {chronos => server/chronos}/utils/modbus_sp/fr (100%) rename {chronos => server/chronos}/utils/modbus_sp/graphic.c (100%) rename {chronos => server/chronos}/utils/modbus_sp/run_change_sp.sh (100%) rename {chronos => server/chronos}/utils/modbus_sp/sp (100%) rename {chronos => server/chronos}/utils/modbus_sp/sp.sh (100%) rename {chronos => server/chronos}/utils/modbus_sp/toCompile.txt (100%) rename {chronos => server/chronos}/utils/modbus_sp/tt-status.c (100%) rename {chronos => server/chronos}/utils/modbus_sp/tt-status_ro.c (100%) rename {chronos => server/chronos}/utils/relayHelpers/relayread.py (100%) rename {chronos => server/chronos}/utils/relayHelpers/relaywrite.py (100%) rename {chronos => server/chronos}/utils/temp.sh (100%) rename client.py => server/client.py (92%) rename {data_files => server/data_files}/chronos (100%) rename {data_files => server/data_files}/chronos.conf (70%) rename {data_files => server/data_files}/chronos.ini (100%) rename {data_files => server/data_files}/chronos.wsgi (100%) rename {data_files => server/data_files}/chronos_config.json (100%) rename {data_files => server/data_files}/socketio_server.ini (100%) rename {data_files => server/data_files}/uwsgi (100%) rename {data_files => server/data_files}/uwsgi-socketio.service (100%) rename entrypoint.sh => server/entrypoint.sh (90%) mode change 100644 => 100755 rename post_install => server/post_install (100%) rename setup.py => server/setup.py (100%) rename working-sync-server.py => server/working-sync-server.py (100%) diff --git a/.gitIgnore b/.gitIgnore deleted file mode 100644 index c795b05..0000000 --- a/.gitIgnore +++ /dev/null @@ -1 +0,0 @@ -build \ No newline at end of file diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml deleted file mode 100644 index f066d83..0000000 --- a/.github/workflows/main.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: Test deploy on AWS runner -on: - push: - branches: ['master'] -jobs: - start-deploy: - runs-on: [self-hosted] - steps: - - name: Checkout - uses: actions/checkout@v3 - - name: Cleanup services and binaries - run: | - sudo docker rm -f chronos - - name: Start services - run: | - pwd - ls -al - sudo docker-compose up -d --build - diff --git a/README.md b/README.md index 61a0185..b000edb 100644 --- a/README.md +++ b/README.md @@ -5,22 +5,43 @@ Chronos is a boiling/cooling water system working on Raspberry Pi. Chronos has a web interface to control the system and tracking for the state. -![Alt text](http://i.imgur.com/8II1ydG.png "A screenshot of the Chronos web interface") +![Alt text](https://cdn-images-1.medium.com/v2/resize:fit:800/1*Yk7RuJxn_PqkQ146k9tRug.png "A screenshot of the Chronos web interface") ## Frontend and Backend Separation ### Overview -The Chronos project has been refactored to separate the frontend and backend components. The backend operates as a standalone service providing APIs, while the frontend is handled separately. +The Chronos project has been refactored to separate the frontend and backend components. The backend operates as a standalone service providing APIs, while the frontend is handled separately. + +### New Project Structure + +The **Chronos2** folder contains both the **server** (backend) and **client** (frontend). The **client** is built with **React**. The project is configured to run both components **simultaneously** using a single Docker command. + +### Summary of set up ### + +#### Installation with Docker #### +This repository consists of a docker container that has all the dependencies and simulators built-in. Just run using these two commands: +``` +sudo docker-compose up --build -d chronos +sudo docker restart chronosBackend +``` + + +> **Important:** +> **The backend service must be restarted manually using:** +> ```bash +> sudo docker restart chronosBackend +> ``` +> **Make sure to wait until the restart completes to ensure everything runs correctly.** + + -### A screenshot of API response of Chronos -![Alt text](https://miro.medium.com/v2/resize:fit:720/format:webp/1*p5MTHzrfaLYycSmZFSdmoA.png "A screenshot of API response of Chronos") ### API Endpoints The backend provides the following API endpoints: #### Base URL -- **Base URL**: `http://:90` +- **Base URL**: `http://:80` #### Endpoints @@ -82,15 +103,7 @@ The backend provides the following API endpoints: - **Response**: JSON object containing chart data. -![Alt text](http://i.imgur.com/8II1ydG.png "A screenshot of the Chronos web interface") -### Summary of set up ### -#### Installation with Docker #### -This repository consists of a docker container that has all the dependencies and simulators built-in. Just run using these two commands: -``` -sudo docker-compose up --build -d chronos -sudo docker restart chronos -``` ### SIMULATORS Chronos talks to the following components on the RPI. @@ -189,8 +202,4 @@ https://docs.github.com/en/actions/hosting-your-own-runners/adding-self-hosted-r - Install docker.io and docker-compose on the Runner - sudo apt update - - sudo apt install docker.io docker-compose -y - - - - + - sudo apt install docker.io docker-compose -y \ No newline at end of file diff --git a/client/.dockerignore b/client/.dockerignore new file mode 100644 index 0000000..b7dab5e --- /dev/null +++ b/client/.dockerignore @@ -0,0 +1,2 @@ +node_modules +build \ No newline at end of file diff --git a/client/.gitignore b/client/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/client/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/client/Dockerfile b/client/Dockerfile new file mode 100644 index 0000000..17604f3 --- /dev/null +++ b/client/Dockerfile @@ -0,0 +1,27 @@ +# Stage-1: Builder +FROM node:latest AS builder + +# Set the working directory inside the container +WORKDIR /app + +# Copy package.json and package-lock.json (if present) +COPY package*.json ./ + +# Install dependencies +RUN npm install + +# Copy the rest of the project files +COPY . . + +# Build the static files (output will go to 'dist/') +RUN npm run build + +# Stage-2: Nginx Server +FROM nginx:1.25.2-alpine-slim + +# Copy the built React files from 'dist/' to Nginx's HTML folder +COPY --from=builder /app/dist /usr/share/nginx/html + +EXPOSE 80 + +CMD ["nginx", "-g", "daemon off;"] diff --git a/client/README.md b/client/README.md new file mode 100644 index 0000000..2566f7e --- /dev/null +++ b/client/README.md @@ -0,0 +1,29 @@ +# React Vite Project + +This is a React Vite project. You can run it separately as well. + +## Getting Started + +### Ensure You're in the Client Folder + +Make sure you are in the `client` folder. If you are not, run: + +``` +cd client +``` + +### Install Dependencies + +Run the following command to install the necessary dependencies: + +``` +npm install +``` + +### Start the Development Server + +Run the following command to start the development server: + +``` +npm run dev +``` \ No newline at end of file diff --git a/client/eslint.config.js b/client/eslint.config.js new file mode 100644 index 0000000..238d2e4 --- /dev/null +++ b/client/eslint.config.js @@ -0,0 +1,38 @@ +import js from '@eslint/js' +import globals from 'globals' +import react from 'eslint-plugin-react' +import reactHooks from 'eslint-plugin-react-hooks' +import reactRefresh from 'eslint-plugin-react-refresh' + +export default [ + { ignores: ['dist'] }, + { + files: ['**/*.{js,jsx}'], + languageOptions: { + ecmaVersion: 2020, + globals: globals.browser, + parserOptions: { + ecmaVersion: 'latest', + ecmaFeatures: { jsx: true }, + sourceType: 'module', + }, + }, + settings: { react: { version: '18.3' } }, + plugins: { + react, + 'react-hooks': reactHooks, + 'react-refresh': reactRefresh, + }, + rules: { + ...js.configs.recommended.rules, + ...react.configs.recommended.rules, + ...react.configs['jsx-runtime'].rules, + ...reactHooks.configs.recommended.rules, + 'react/jsx-no-target-blank': 'off', + 'react-refresh/only-export-components': [ + 'warn', + { allowConstantExport: true }, + ], + }, + }, +] diff --git a/client/index.html b/client/index.html new file mode 100644 index 0000000..696f799 --- /dev/null +++ b/client/index.html @@ -0,0 +1,14 @@ + + + + + + + + Vite + React + + +
+ + + diff --git a/client/package-lock.json b/client/package-lock.json new file mode 100644 index 0000000..87a38ec --- /dev/null +++ b/client/package-lock.json @@ -0,0 +1,4875 @@ +{ + "name": "chronos-frontend", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "chronos-frontend", + "version": "0.0.0", + "dependencies": { + "@reduxjs/toolkit": "^2.2.7", + "axios": "^1.5.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-icons": "^5.3.0", + "react-redux": "^9.1.2", + "recharts": "^2.12.7", + "socket.io-client": "^2.5.0" + }, + "devDependencies": { + "@eslint/js": "^9.9.0", + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "@vitejs/plugin-react": "^4.3.1", + "eslint": "^9.9.0", + "eslint-plugin-react": "^7.35.0", + "eslint-plugin-react-hooks": "^5.1.0-rc.0", + "eslint-plugin-react-refresh": "^0.4.9", + "globals": "^15.9.0", + "vite": "^5.4.1" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.2.tgz", + "integrity": "sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", + "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-module-transforms": "^7.25.2", + "@babel/helpers": "^7.25.0", + "@babel/parser": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.2", + "@babel/types": "^7.25.2", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz", + "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.25.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", + "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.25.2", + "@babel/helper-validator-option": "^7.24.8", + "browserslist": "^4.23.1", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", + "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", + "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", + "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.0.tgz", + "integrity": "sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.3.tgz", + "integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.25.2" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.7.tgz", + "integrity": "sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.7.tgz", + "integrity": "sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz", + "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", + "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.25.0", + "@babel/types": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.3.tgz", + "integrity": "sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/parser": "^7.25.3", + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.2", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz", + "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.17.1.tgz", + "integrity": "sha512-BlYOpej8AQ8Ev9xVqroV7a02JK3SkBAaN9GfMMH9W6Ch8FlQlkjGw4Ir7+FgYwfirivAf4t+GtzuAxqfukmISA==", + "dev": true, + "dependencies": { + "@eslint/object-schema": "^2.1.4", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", + "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "9.9.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.9.0.tgz", + "integrity": "sha512-hhetes6ZHP3BlXLxmd8K2SNgkhNSi+UcecbnwWKwpP7kyi/uC75DJ1lOOBO3xrC4jyojtGE3YxKZPHfk4yrgug==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", + "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.0.tgz", + "integrity": "sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==", + "dev": true, + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@reduxjs/toolkit": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.2.7.tgz", + "integrity": "sha512-faI3cZbSdFb8yv9dhDTmGwclW0vk0z5o1cia+kf7gCbaCwHI5e+7tP57mJUv22pNcNbeA62GSrPpfrUfdXcQ6g==", + "dependencies": { + "immer": "^10.0.3", + "redux": "^5.0.1", + "redux-thunk": "^3.1.0", + "reselect": "^5.1.0" + }, + "peerDependencies": { + "react": "^16.9.0 || ^17.0.0 || ^18", + "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-redux": { + "optional": true + } + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.0.tgz", + "integrity": "sha512-WTWD8PfoSAJ+qL87lE7votj3syLavxunWhzCnx3XFxFiI/BA/r3X7MUM8dVrH8rb2r4AiO8jJsr3ZjdaftmnfA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.0.tgz", + "integrity": "sha512-a1sR2zSK1B4eYkiZu17ZUZhmUQcKjk2/j9Me2IDjk1GHW7LB5Z35LEzj9iJch6gtUfsnvZs1ZNyDW2oZSThrkA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.0.tgz", + "integrity": "sha512-zOnKWLgDld/svhKO5PD9ozmL6roy5OQ5T4ThvdYZLpiOhEGY+dp2NwUmxK0Ld91LrbjrvtNAE0ERBwjqhZTRAA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.0.tgz", + "integrity": "sha512-7doS8br0xAkg48SKE2QNtMSFPFUlRdw9+votl27MvT46vo44ATBmdZdGysOevNELmZlfd+NEa0UYOA8f01WSrg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.0.tgz", + "integrity": "sha512-pWJsfQjNWNGsoCq53KjMtwdJDmh/6NubwQcz52aEwLEuvx08bzcy6tOUuawAOncPnxz/3siRtd8hiQ32G1y8VA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.0.tgz", + "integrity": "sha512-efRIANsz3UHZrnZXuEvxS9LoCOWMGD1rweciD6uJQIx2myN3a8Im1FafZBzh7zk1RJ6oKcR16dU3UPldaKd83w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.0.tgz", + "integrity": "sha512-ZrPhydkTVhyeGTW94WJ8pnl1uroqVHM3j3hjdquwAcWnmivjAwOYjTEAuEDeJvGX7xv3Z9GAvrBkEzCgHq9U1w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.0.tgz", + "integrity": "sha512-cfaupqd+UEFeURmqNP2eEvXqgbSox/LHOyN9/d2pSdV8xTrjdg3NgOFJCtc1vQ/jEke1qD0IejbBfxleBPHnPw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.0.tgz", + "integrity": "sha512-ZKPan1/RvAhrUylwBXC9t7B2hXdpb/ufeu22pG2psV7RN8roOfGurEghw1ySmX/CmDDHNTDDjY3lo9hRlgtaHg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.0.tgz", + "integrity": "sha512-H1eRaCwd5E8eS8leiS+o/NqMdljkcb1d6r2h4fKSsCXQilLKArq6WS7XBLDu80Yz+nMqHVFDquwcVrQmGr28rg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.0.tgz", + "integrity": "sha512-zJ4hA+3b5tu8u7L58CCSI0A9N1vkfwPhWd/puGXwtZlsB5bTkwDNW/+JCU84+3QYmKpLi+XvHdmrlwUwDA6kqw==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.0.tgz", + "integrity": "sha512-e2hrvElFIh6kW/UNBQK/kzqMNY5mO+67YtEh9OA65RM5IJXYTWiXjX6fjIiPaqOkBthYF1EqgiZ6OXKcQsM0hg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.0.tgz", + "integrity": "sha512-1vvmgDdUSebVGXWX2lIcgRebqfQSff0hMEkLJyakQ9JQUbLDkEaMsPTLOmyccyC6IJ/l3FZuJbmrBw/u0A0uCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.0.tgz", + "integrity": "sha512-s5oFkZ/hFcrlAyBTONFY1TWndfyre1wOMwU+6KCpm/iatybvrRgmZVM+vCFwxmC5ZhdlgfE0N4XorsDpi7/4XQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.0.tgz", + "integrity": "sha512-G9+TEqRnAA6nbpqyUqgTiopmnfgnMkR3kMukFBDsiyy23LZvUCpiUwjTRx6ezYCjJODXrh52rBR9oXvm+Fp5wg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.0.tgz", + "integrity": "sha512-2jsCDZwtQvRhejHLfZ1JY6w6kEuEtfF9nzYsZxzSlNVKDX+DpsDJ+Rbjkm74nvg2rdx0gwBS+IMdvwJuq3S9pQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/d3-array": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz", + "integrity": "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==" + }, + "node_modules/@types/d3-color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", + "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==" + }, + "node_modules/@types/d3-ease": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", + "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==" + }, + "node_modules/@types/d3-interpolate": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", + "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", + "dependencies": { + "@types/d3-color": "*" + } + }, + "node_modules/@types/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-P2dlU/q51fkOc/Gfl3Ul9kicV7l+ra934qBFXCFhrZMOL6du1TM0pm1ThYvENukyOn5h9v+yMJ9Fn5JK4QozrQ==" + }, + "node_modules/@types/d3-scale": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.8.tgz", + "integrity": "sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ==", + "dependencies": { + "@types/d3-time": "*" + } + }, + "node_modules/@types/d3-shape": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.6.tgz", + "integrity": "sha512-5KKk5aKGu2I+O6SONMYSNflgiP0WfZIQvVUMan50wHsLG1G94JlxEVnCpQARfTtzytuY0p/9PXXZb3I7giofIA==", + "dependencies": { + "@types/d3-path": "*" + } + }, + "node_modules/@types/d3-time": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.3.tgz", + "integrity": "sha512-2p6olUZ4w3s+07q3Tm2dbiMZy5pCDfYwtLXXHUnVzXgQlZ/OyPtUz6OL382BkOuGlLXqfT+wqv8Fw2v8/0geBw==" + }, + "node_modules/@types/d3-timer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", + "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==" + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/@types/prop-types": { + "version": "15.7.12", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", + "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==", + "dev": true + }, + "node_modules/@types/react": { + "version": "18.3.3", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz", + "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==", + "dev": true, + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", + "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/use-sync-external-store": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz", + "integrity": "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==" + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.1.tgz", + "integrity": "sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.24.5", + "@babel/plugin-transform-react-jsx-self": "^7.24.5", + "@babel/plugin-transform-react-jsx-source": "^7.24.1", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.14.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0" + } + }, + "node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha512-QbJ0NTQ/I9DI3uSJA4cbexiwQeRAfjPScqIbSjUDd9TOrcg6pTkdgziesOqxBMBzit8vFCTwrP27t13vFOORRA==" + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.slice": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", + "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axios": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", + "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA==" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-arraybuffer": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", + "integrity": "sha512-a1eIFi4R9ySrbiMuyTGx5e92uRH5tQY6kArNcFaKBUleIoLjdjBg7Zxm3Mqm3Kmkf27HLR/1fnxX9q8GQ7Iavg==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/blob": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", + "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/browserslist": { + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", + "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001646", + "electron-to-chromium": "^1.5.4", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001651", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz", + "integrity": "sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha512-WZveuKPeKAG9qY+FkYDeADzdHyTYdIboXS59ixDeRJL5ZhxpqUnxSOwop4FQjMsiYm3/Or8cegVbpAHNA7pHxw==" + }, + "node_modules/component-emitter": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/component-inherit": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha512-w+LhYREhatpVqTESyGFg3NlP6Iu0kEKUHETY9GoZP/pQyW4mHFZuFWRUCIqVPZ36ueVLtoOEZaAqbCF2RDndaA==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-format": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "dependencies": { + "d3-path": "^3.1.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "dependencies": { + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js-light": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz", + "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==" + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.11", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.11.tgz", + "integrity": "sha512-R1CccCDYqndR25CaXFd6hp/u9RaaMcftMkphmvuepXr5b1vfLkRml6aWVeBhXJ7rbevHkKEMJtz8XqPf7ffmew==", + "dev": true + }, + "node_modules/engine.io-client": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.5.4.tgz", + "integrity": "sha512-ydc8uuMMDxC5KCKNJN3zZKYJk2sgyTuTZQ7Aj1DJSsLKAcizA/PzWivw8fZMIjJVBo2CJOYzntv4FSjY/Lr//g==", + "dependencies": { + "component-emitter": "~1.3.0", + "component-inherit": "0.0.3", + "debug": "~3.1.0", + "engine.io-parser": "~2.2.0", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.6", + "parseuri": "0.0.6", + "ws": "~7.5.10", + "xmlhttprequest-ssl": "~1.6.2", + "yeast": "0.1.2" + } + }, + "node_modules/engine.io-client/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/engine.io-client/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/engine.io-parser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.1.tgz", + "integrity": "sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==", + "dependencies": { + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.4", + "blob": "0.0.5", + "has-binary2": "~1.0.2" + } + }, + "node_modules/es-abstract": { + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz", + "integrity": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "iterator.prototype": "^1.1.2", + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "9.9.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.9.0.tgz", + "integrity": "sha512-JfiKJrbx0506OEerjK2Y1QlldtBxkAlLxT5OEcRF8uaQ86noDe2k31Vw9rnSWv+MXZHj7OOUV/dA0AhdLFcyvA==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.11.0", + "@eslint/config-array": "^0.17.1", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "9.9.0", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.3.0", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.0.2", + "eslint-visitor-keys": "^4.0.0", + "espree": "^10.1.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.35.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.35.0.tgz", + "integrity": "sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.19", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.0", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.11", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "5.1.0-rc-fb9a90fa48-20240614", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.1.0-rc-fb9a90fa48-20240614.tgz", + "integrity": "sha512-xsiRwaDNF5wWNC4ZHLut+x/YcAxksUd9Rizt7LaEn3bV8VyYRpXnRJQlLOfYaVy9esk4DFP4zPPnoNVjq5Gc0w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.9", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.9.tgz", + "integrity": "sha512-QK49YrBAo5CLNLseZ7sZgvgTy21E6NEw22eZqc4teZfH8pxV3yXc9XXOYfUI6JNpw7mfHNkAeWtBxrTyykB6HA==", + "dev": true, + "peerDependencies": { + "eslint": ">=7" + } + }, + "node_modules/eslint-scope": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.0.2.tgz", + "integrity": "sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", + "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/espree": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.1.0.tgz", + "integrity": "sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==", + "dev": true, + "dependencies": { + "acorn": "^8.12.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-equals": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.0.1.tgz", + "integrity": "sha512-WF1Wi8PwwSY7/6Kx0vKXtw8RwuSGoM1bvDaJbu7MxDlR1vovZjIAKrnzyrThgAjm6JDTu0fVgWXDlMGspodfoQ==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/form-data": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "15.9.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.9.0.tgz", + "integrity": "sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-binary2": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", + "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", + "dependencies": { + "isarray": "2.0.1" + } + }, + "node_modules/has-binary2/node_modules/isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha512-c2cu3UxbI+b6kR3fy0nRnAhodsvR9dx7U5+znCOzdj6IfP3upFURTr0Xl5BlQZNKZjEtxrmVyfSdeE3O57smoQ==" + }, + "node_modules/has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha512-g5VNKdkFuUuVCP9gYfDJHjK2nqdQJ7aDLTnycnc2+RvsOQbuLdF5pm7vuE5J76SEBIQjs4kQY/BWq74JUmjbXA==" + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/immer": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.1.1.tgz", + "integrity": "sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg==" + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "engines": { + "node": ">=12" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz", + "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==", + "dev": true, + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", + "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/iterator.prototype": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", + "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "dev": true + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parseqs": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz", + "integrity": "sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==" + }, + "node_modules/parseuri": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz", + "integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "dev": true + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.4.41", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz", + "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-icons": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.3.0.tgz", + "integrity": "sha512-DnUk8aFbTyQPSkCfF8dbX6kQjXA9DktMeJqfjrg6cK9vwQVMxmcA3BfP4QoiztVmEHtwlTgLFsPuH2NskKT6eg==", + "peerDependencies": { + "react": "*" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/react-redux": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.1.2.tgz", + "integrity": "sha512-0OA4dhM1W48l3uzmv6B7TXPCGmokUU4p1M44DGN2/D9a1FjVPukVjER1PcPX97jIg6aUeLq1XJo1IpfbgULn0w==", + "dependencies": { + "@types/use-sync-external-store": "^0.0.3", + "use-sync-external-store": "^1.0.0" + }, + "peerDependencies": { + "@types/react": "^18.2.25", + "react": "^18.0", + "redux": "^5.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "redux": { + "optional": true + } + } + }, + "node_modules/react-refresh": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", + "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-smooth": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-4.0.1.tgz", + "integrity": "sha512-OE4hm7XqR0jNOq3Qmk9mFLyd6p2+j6bvbPJ7qlB7+oo0eNcL2l7WQzG6MBnT3EXY6xzkLMUBec3AfewJdA0J8w==", + "dependencies": { + "fast-equals": "^5.0.1", + "prop-types": "^15.8.1", + "react-transition-group": "^4.4.5" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, + "node_modules/recharts": { + "version": "2.12.7", + "resolved": "https://registry.npmjs.org/recharts/-/recharts-2.12.7.tgz", + "integrity": "sha512-hlLJMhPQfv4/3NBSAyq3gzGg4h2v69RJh6KU7b3pXYNNAELs9kEoXOjbkxdXpALqKBoVmVptGfLpxdaVYqjmXQ==", + "dependencies": { + "clsx": "^2.0.0", + "eventemitter3": "^4.0.1", + "lodash": "^4.17.21", + "react-is": "^16.10.2", + "react-smooth": "^4.0.0", + "recharts-scale": "^0.4.4", + "tiny-invariant": "^1.3.1", + "victory-vendor": "^36.6.8" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": "^16.0.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/recharts-scale": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/recharts-scale/-/recharts-scale-0.4.5.tgz", + "integrity": "sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==", + "dependencies": { + "decimal.js-light": "^2.4.1" + } + }, + "node_modules/redux": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", + "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==" + }, + "node_modules/redux-thunk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz", + "integrity": "sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==", + "peerDependencies": { + "redux": "^5.0.0" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", + "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.1", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/reselect": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.1.1.tgz", + "integrity": "sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==" + }, + "node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.21.0.tgz", + "integrity": "sha512-vo+S/lfA2lMS7rZ2Qoubi6I5hwZwzXeUIctILZLbHI+laNtvhhOIon2S1JksA5UEDQ7l3vberd0fxK44lTYjbQ==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.21.0", + "@rollup/rollup-android-arm64": "4.21.0", + "@rollup/rollup-darwin-arm64": "4.21.0", + "@rollup/rollup-darwin-x64": "4.21.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.21.0", + "@rollup/rollup-linux-arm-musleabihf": "4.21.0", + "@rollup/rollup-linux-arm64-gnu": "4.21.0", + "@rollup/rollup-linux-arm64-musl": "4.21.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.21.0", + "@rollup/rollup-linux-riscv64-gnu": "4.21.0", + "@rollup/rollup-linux-s390x-gnu": "4.21.0", + "@rollup/rollup-linux-x64-gnu": "4.21.0", + "@rollup/rollup-linux-x64-musl": "4.21.0", + "@rollup/rollup-win32-arm64-msvc": "4.21.0", + "@rollup/rollup-win32-ia32-msvc": "4.21.0", + "@rollup/rollup-win32-x64-msvc": "4.21.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/socket.io-client": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.5.0.tgz", + "integrity": "sha512-lOO9clmdgssDykiOmVQQitwBAF3I6mYcQAo7hQ7AM6Ny5X7fp8hIJ3HcQs3Rjz4SoggoxA1OgrQyY8EgTbcPYw==", + "dependencies": { + "backo2": "1.0.2", + "component-bind": "1.0.0", + "component-emitter": "~1.3.0", + "debug": "~3.1.0", + "engine.io-client": "~3.5.0", + "has-binary2": "~1.0.2", + "indexof": "0.0.1", + "parseqs": "0.0.6", + "parseuri": "0.0.6", + "socket.io-parser": "~3.3.0", + "to-array": "0.1.4" + } + }, + "node_modules/socket.io-client/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/socket.io-client/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/socket.io-parser": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.4.tgz", + "integrity": "sha512-z/pFQB3x+EZldRRzORYW1vwVO8m/3ILkswtnpoeU6Ve3cbMWkmHEWDAVJn4QJtchiiFTo5j7UG2QvwxvaA9vow==", + "dependencies": { + "component-emitter": "~1.3.0", + "debug": "~3.1.0", + "isarray": "2.0.1" + } + }, + "node_modules/socket.io-parser/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/socket.io-parser/node_modules/isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha512-c2cu3UxbI+b6kR3fy0nRnAhodsvR9dx7U5+znCOzdj6IfP3upFURTr0Xl5BlQZNKZjEtxrmVyfSdeE3O57smoQ==" + }, + "node_modules/socket.io-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", + "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "regexp.prototype.flags": "^1.5.2", + "set-function-name": "^2.0.2", + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/tiny-invariant": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==" + }, + "node_modules/to-array": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", + "integrity": "sha512-LhVdShQD/4Mk4zXNroIQZJC+Ap3zgLcDuwEdcmLv9CCO73NWockQDwyUnW/m8VX/EElfL6FcYx7EeutN4HJA6A==" + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/use-sync-external-store": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz", + "integrity": "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/victory-vendor": { + "version": "36.9.2", + "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-36.9.2.tgz", + "integrity": "sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==", + "dependencies": { + "@types/d3-array": "^3.0.3", + "@types/d3-ease": "^3.0.0", + "@types/d3-interpolate": "^3.0.1", + "@types/d3-scale": "^4.0.2", + "@types/d3-shape": "^3.1.0", + "@types/d3-time": "^3.0.0", + "@types/d3-timer": "^3.0.0", + "d3-array": "^3.1.6", + "d3-ease": "^3.0.1", + "d3-interpolate": "^3.0.1", + "d3-scale": "^4.0.2", + "d3-shape": "^3.1.0", + "d3-time": "^3.0.0", + "d3-timer": "^3.0.1" + } + }, + "node_modules/vite": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.1.tgz", + "integrity": "sha512-1oE6yuNXssjrZdblI9AfBbHCC41nnyoVoEZxQnID6yvQZAFBzxxkqoFLtHUMkYunL8hwOLEjgTuxpkRxvba3kA==", + "dev": true, + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.41", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.4.tgz", + "integrity": "sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==", + "dev": true, + "dependencies": { + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xmlhttprequest-ssl": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.3.tgz", + "integrity": "sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha512-8HFIh676uyGYP6wP13R/j6OJ/1HwJ46snpvzE7aHAN3Ryqh2yX6Xox2B4CUmTwwOIzlG3Bs7ocsP5dZH/R1Qbg==" + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/client/package.json b/client/package.json new file mode 100644 index 0000000..e3139ee --- /dev/null +++ b/client/package.json @@ -0,0 +1,35 @@ +{ + "name": "chronos-frontend", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "lint": "eslint .", + "preview": "vite preview" + }, + "dependencies": { + "@reduxjs/toolkit": "^2.2.7", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-icons": "^5.3.0", + "react-redux": "^9.1.2", + "recharts": "^2.12.7", + "socket.io-client": "^2.5.0", + "axios": "^1.5.0" + + }, + "devDependencies": { + "@eslint/js": "^9.9.0", + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "@vitejs/plugin-react": "^4.3.1", + "eslint": "^9.9.0", + "eslint-plugin-react": "^7.35.0", + "eslint-plugin-react-hooks": "^5.1.0-rc.0", + "eslint-plugin-react-refresh": "^0.4.9", + "globals": "^15.9.0", + "vite": "^5.4.1" + } +} diff --git a/client/public/Chiller-OFF.png b/client/public/Chiller-OFF.png new file mode 100644 index 0000000000000000000000000000000000000000..d521b8136c640081907a60ec6eba0cb3e97c5248 GIT binary patch literal 10955 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 literal 0 HcmV?d00001 diff --git a/client/public/images/Boiler-Cold.png b/client/public/images/Boiler-Cold.png new file mode 100644 index 0000000000000000000000000000000000000000..fb3a16e68965618604f906d71851715eade27baf GIT binary patch literal 52000 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

NJ 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 RX`KK7002ovPDHLkV1gkUF**PM literal 0 HcmV?d00001 diff --git a/client/public/images/Icons/Boiler/Chiller-OFF.png b/client/public/images/Icons/Boiler/Chiller-OFF.png new file mode 100644 index 0000000000000000000000000000000000000000..d521b8136c640081907a60ec6eba0cb3e97c5248 GIT binary patch literal 10955 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 literal 0 HcmV?d00001 diff --git a/client/public/images/Icons/Boiler/Chiller-ON.png b/client/public/images/Icons/Boiler/Chiller-ON.png new file mode 100644 index 0000000000000000000000000000000000000000..2e20ff68198bbcf64c004c8be709ff9bfd225456 GIT binary patch literal 12063 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 JPDHLkV1i)7vi<-7 literal 0 HcmV?d00001 diff --git a/client/public/images/Icons/Boiler/arrow1.png b/client/public/images/Icons/Boiler/arrow1.png new file mode 100644 index 0000000000000000000000000000000000000000..3e326f7cabd7c9e9a804c90452f2a52aa6475d23 GIT binary patch literal 4412 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 literal 0 HcmV?d00001 diff --git a/client/public/images/Icons/Boiler/arrow3.png b/client/public/images/Icons/Boiler/arrow3.png new file mode 100644 index 0000000000000000000000000000000000000000..0c702e0415e8f8110746c659a870d6a0bb3be26e GIT binary patch literal 3353 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 M07*qoM6N<$f=Q-7TL1t6 literal 0 HcmV?d00001 diff --git a/client/public/images/Icons/DBWEB/DFDBF.png b/client/public/images/Icons/DBWEB/DFDBF.png new file mode 100644 index 0000000000000000000000000000000000000000..1ca70e4335599c45dd664d9dcb52d36fc19c57b7 GIT binary patch literal 75985 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 literal 0 HcmV?d00001 diff --git a/client/public/images/Icons/DBWEB/DFDBO.png b/client/public/images/Icons/DBWEB/DFDBO.png new file mode 100644 index 0000000000000000000000000000000000000000..5ba9c1564c0dadf5aca98e1362a0c34c068d2673 GIT binary patch literal 74528 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

9cH0q0ojfj9a09b?qCfx{zFLX{$0xk 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

Rf813P9`CKl#@ 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 literal 0 HcmV?d00001 diff --git a/client/public/images/Icons/DBWEB/DODBO.png b/client/public/images/Icons/DBWEB/DODBO.png new file mode 100644 index 0000000000000000000000000000000000000000..b8d42e9a9859cd122dbdc7f5d09bd12946532184 GIT binary patch literal 74444 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ⅅ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 literal 0 HcmV?d00001 diff --git a/client/public/images/Icons/GPIO/GPIOF.png b/client/public/images/Icons/GPIO/GPIOF.png new file mode 100644 index 0000000000000000000000000000000000000000..8601c0868a5c3a5f97ae24c6d81a946327f2d917 GIT binary patch literal 68578 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 literal 0 HcmV?d00001 diff --git a/client/public/images/Icons/GPIO/GPIOO.png b/client/public/images/Icons/GPIO/GPIOO.png new file mode 100644 index 0000000000000000000000000000000000000000..e664157af562901bae7efa9e30484ebd0f555352 GIT binary patch literal 69338 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 literal 0 HcmV?d00001 diff --git a/client/public/images/Icons/Logo.png b/client/public/images/Icons/Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..adbe4ce9992584af15b366fd4c4a7cf3b46fc3c6 GIT binary patch literal 59428 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

gFfqkc~GJv48cT;6i(@w zRE8zM6(EiEN1ENJVUUO*f;a&7STFsxXV^+Ks=Qe7BnfEorGfb{h~6urJ^W=~sOqfTGzoAp>~ zINKpP==)IYBwVi=ShSokKBF~doP!t{^~lUFcnpdHkosASWLy&IrDh;$V0vO4!Alef z`{}c!>K3ET87fUpe(@~9&>lXZDiN;N^ zr2^03TZo;|p|3^|5D*Njm~03yCHWjOguUGrvaixED0Ne2x}|45>DDzKRWm9Ul=7#NLZWH(7# zw2--~IX)Z}{HS_=g=3vtT3Tv4RjgF*sQE#k##fmoo>PByjgn1~BtFwEql!BHHKk2C znE9{EV@a5vR#sM=>P@`LNb%5hpq#Euq61@>fKf(una#YsJXxo)dyvu_cioJUBrHPm z%n<|K{!VX8CcM@k)@YwzE1{4qQtpxnx(jhREVqeM^r`|UboSYmr!)g_B_$=ZdEcVr vOQ9S&@#4~NVFZ4w1Bni9IVU*SBkNna2Mb@aCQLd#MTuqoDr-LIWQ? literal 0 HcmV?d00001 diff --git a/client/public/images/Icons/MainImage/INlet/InletCold.png b/client/public/images/Icons/MainImage/INlet/InletCold.png new file mode 100644 index 0000000000000000000000000000000000000000..93c64db687d11633a899dc1957d56410bb6a1588 GIT binary patch literal 50899 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 literal 0 HcmV?d00001 diff --git a/client/public/images/Icons/MainImage/OCIC.png b/client/public/images/Icons/MainImage/OCIC.png new file mode 100644 index 0000000000000000000000000000000000000000..40e7207c676819ed73f217158fdde42e08130c1f GIT binary patch literal 65793 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 E0EI53?f?J) literal 0 HcmV?d00001 diff --git a/client/public/images/Icons/MainImage/OCIH.png b/client/public/images/Icons/MainImage/OCIH.png new file mode 100644 index 0000000000000000000000000000000000000000..9cc6b4b8162822dd89f069c5bef2b207e97c5851 GIT binary patch literal 66880 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�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≻L72-#PO}RipG{(#&5AFrQe;2dRMr8Z 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 q$l%Zf;UZ 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

!J{Wo^tRuvf}S6)ivm(@mvH}Ihq(&b(J=bH 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 B=S2Vj literal 0 HcmV?d00001 diff --git a/client/public/images/Icons/MainImage/Outlet/OutletHot.png b/client/public/images/Icons/MainImage/Outlet/OutletHot.png new file mode 100644 index 0000000000000000000000000000000000000000..49226677e147d00f15438b3d0f1b48dfd298d775 GIT binary patch literal 50066 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 E2RV9Z#{d8T literal 0 HcmV?d00001 diff --git a/client/public/images/Icons/Manual/Auto.png b/client/public/images/Icons/Manual/Auto.png new file mode 100644 index 0000000000000000000000000000000000000000..c2471c86adaa62ae6a12a24cddfd9e8fcdef54c7 GIT binary patch literal 75319 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

}^ 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�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 Hy1xGhau?%1 literal 0 HcmV?d00001 diff --git a/client/public/images/Icons/TINTOUT/TFTO.png b/client/public/images/Icons/TINTOUT/TFTO.png new file mode 100644 index 0000000000000000000000000000000000000000..24ff15b27faff42e7d815f67caa4e4b1b85fc461 GIT binary patch literal 73506 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 z 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

O^9N+L&l&D zOA=_a8tC)J^+`=IB%tvP-O{^6B+9E}hFdnZnJszIr*iGDs+q5*^uLIC3;f21K17O8 zR%~3XJc1o}#SK4tD~tczy%(z2;LpOcQq>7V-+?IRw%In8^&+MCFGTqhv9@WfcVU8- zi^5E(VRv1rM08^tQR!DEo>u|~i*T3CnH@kOI|7^#m z#*>cKa&|CFaMOD_hYZz{%9mQl71z66bC`cG`|#EW@h~@FMt^Gc51PD`Cw49H zJgjYFmU$1`2=y&J%B)DhZ2Hwg6C2Vhe9yy2QNwhVnUn*`t**6rxAyrPs$S$PmP9G z8w@%Z!CsJ{&7I#XVI=nmq;In*)O`q>Pe5^*1oi1_Yn?-_hmeXVm z4IBo{S4W=4zFT&Hdfb__H6X)OF0f&Aogh(tg`prGH)0!lZQVLuh2ad1* zR!4-e9oa;?{)^g%9ZS7lp_fOKAlNaCeNlUI)j>Oz<$h)G;-5NailB`BMS6VHW(`B@1Ba2}+a=f>DqyFF4)j;SaWn~9qc+BKh~IO~Vr$Am%hLG!=R9g|lMqaHQWNSvA$@~Xgn~zd+WG(izFpP4iQg7! zj5}Lqb0spfKP2DsxDi{sM-#!;QHnd8T`lEC<=>f+T|&>MpZt5Vju=7M8(B%+Y8W*q zGaMt_f&-HmbuT`LHrgAx3RIUv==9x9mFKx5Ch49QR^6#KHFq;pd7d$eOPg8f4~jg$ zcKKc5H;IBx*FPik+v5Gnjp54zuGMB*J0@-w#Zhi({Y zu5S1t{qmNO4g4*S7TOjECNGf?UvUDw-gC)Zfpl2)y-h6rZImO3R}5CywZLlx0mMST z>hNwTAOv6U#Mk=1rtSHrhza^D?#jdEGiOtw;ZJ}Neox28i|q zqeU>}#TW$oHLJr=h;$ER0$MZ4%*&G#!WNIfu)aY8YA;3YwGdRz1{o$U-?T{S7ko=503zMqUq91T9MWvIAh!Wt(-6Ozrv}hGu(2% zC|o~=Z4ckks%{AjHSj;wjFz{X4_jpC!G`kMFR&BWzzFwOSN9_}sQ|@!ZZUI`Lz#EZ zmbML@h7r3&fghW^Dx0C`u+?rofnH+SMmhbnt~|4$XG)1jMaNMyJBor%tHPzIkG(~M z{T*ZlZ7;v`XNiShDRyT*qW-oA)(Ph%)Ymn6_0)62{^?y@1PxcAvizARlykO219Vn5 z@%JLDuT$fpp>*{^pEZUeq2rpeZqnxIMn~?}Df!7Ad@@B8G&Yo% zWdW3LqFy?a<@BAucY9-8HwWY?PCNU7>&1c|QhD!;_Aw(tqFUA0{NJ;_Ff_01@P%uD z5c|?7+c#l0hK=%PFHUW|hyV+`nC!&;g4je@Os{)HzgD~4mh|p4w1kb5Ze$$(nKhji zZ{5*iX&6FQ#_NLEc0P@Mjh+b{ou+X`-FC`)SQJ&5^xsw4ZFeKrCOFvAy=Vvt^jX z7@3X=*tr5<;!qbqEdu!?-lPj7_6PUfyPT_xHA?tT@xlY;3P>TWYRu~$ zQ{{FD61Sbg_-tm;;SXrM9bBR(PS;;9TwLs`77^*~f-S=I{NX@;b~W>WskcRzTQIB( z=u#s9^E`4dLBz*6%N?Q7o^53OxauuyV`bI}{2JECwpK2D^`GnI8Rs~;cb;~~8`M|+ z>r+u{j8C|F5S&=gnPt;U4feDOeeHFN`2W`R4H(k89OO^aAWj!cre2R$F3fy&`Sn$3 zm`brE+LQW6EUbcS$eKHza@^2KZ7kun!{?>dRj`*n<+Wk_8%2QLAnzIN?ZUOh zsTJ6{@hi=8Q)FFHT#S={uQufsu(RtH*fq2{#gM(t|CQkbGFOKChVLxp@- zMZ}RAB(W!$sOLz}FUECJ(n+PPI=-ugvb21>007O?M29sY&e+`i8&1O3+=ch#rFw*K zShOD|d=tO9rKctlfqS)9Hv#O%FxrIGekz~;<;Qg7 z%Q5!^rhMJVF%q%No7rAsA-20Iui_c>VZ@lQ zVyiP?98P7bhIK-9tIX~P?%WvT%9vD9{I7c2l)UK>G3s;ei?!uft zucPCGZY3WY4XDr(LYZ1dvO8Cr(d4du$LEaC{Mkv2bbXZev+gv@_Pl}Fm2uC^K*Ym@ zH1r}L@55i*rk(8=+2(2;9B>$s*fBZk=kcxSy)3EHr>wflNoH^QmjYuEsX>hO;f^#k z!aeO`(~C8@z`M4LMB(Vc#G3LZCW-8pT{@C9Qb#QBi6W>ET z(>2Ss;W{_TBkj+KSKoC10=I2u3DjxnTZmUUskQcns74q*1fG(YN~NPrsOKlS8vHru6&%kTld2Rv8!^7*I@GAKO|MWwLE<9(}3 zhJUs@?3Ifq=u@}LRK&!yv8f4olt0yk;wIAD7gzj>=OgR>Mv~SNcQJu$E>A%O$!C)u z8~<%5pexUs5bD{`2*na>nHzXuwK5WfG9wXrSxQu^gZ+;E$jpXM&p0dzW+)4{wMAGpS16P zPy3#1A@);c)s?hw(61|RK9D~jERN#cO!Iv_G}BP^QS#J~MT z@n0XS4N?oRQ*T}U)Xa3rt>LH@gQ69ZYO%%^GjA%HX&y*Rc=p^YtEWOXO!t#8$lEbM z{Ukaa4oxvI3JRmKDn>S50=%|HkQP-Q&2oZ4G5=M+Pdg!Jj4Kq`D6N%r)+vXUH^~N27`dj~xbYIe8 zj$J2{wH~7nL*@><@x|%trEHk;5OlV7q5q7NxGE=4KJT9RA<^wI`)C!GPH}5{i|nVI za=WI=m9B=&N1cOk#{hKMkg#`4EogHhV_zrqt#q~B?bf{;ja`1As4fpvR=vDqn@S0S%Nb%J9G}4O<)%9YPwD6*JM{C&} zKRdoXtM}duyAm2UGvY+eiw4R0gkiwEjp-Mj&v*>`sQSbZ%pUSV-pLjm_%)~B)Aq0q zmAf09K7#%t2=^c_uK^6+&QgJ=i7>qFN;k6B0KJ8~hFBB}d=W3cRu4iyRp=Er z*!?YjAn>}Dqy&ER%A@=6m(zuRTUd3;(U`2g6n1(>y`{7SzJ=YDWQoZdw$k`XrNgfi zzhl3}k3l-x5|O|L{!rp->ULLuT##t7oY3)5OP1eIUMP zmixSL_g_NpqW0Ea_Yj`*Ghj>iP;og+*!Q38TmNVOwtlz=G~`|$F}hJBGX6*QZHhhO zyd*H*K|RGi4rVRt9x>tY{YUowm;3uQiy9yP@gwg{w|(>xa%t^Ik&Ex_pX~D`+*mu} zmzw)Z2vT^8IDDX8{x`5A)Hy=%Kl?}U_#LwueX}>#&NeN!RxKRe&ZxM${)_JY_t{vU zu6u5to8$)ig81Hl5yZ<__y6X5pcCtCn|<66`#C%nf$PAk1l;$ z>~L*Kn+vH%IJN0rT0h+}sDA8RKXUui7ioWq*C$idR%EXkO3cr z=I)$SWq9OXh+%lFk_d_#f5!sHT?p-9t-|+f!O$xRr{zGBSs$=+dQ)&wkAJE)b z9*^_FZiymXc70-a=eHx_tmbn=&!_bsy_D?b zPT};G+RFm#Z?ko995A)|QjJhH>lhr-qqx?E_!Y?&vEQDAO}fr%p9Z>;LnnJ3x-ETqE*0c$h-TAHK^^ig;G6kiJ7L1U;Tu$we` z7Jk2gwMTWoqkp`kSosTQt_(@NO=!@L?3^-9Xaxwf^lodq-isfeJd1oz=-#&&_Nf() z^pw!tboHZ3A+}!LT$(ZKqh5QTw{3L2_-Pe4R+aBvZ>HScwz&4Pfo^h|kG1h`e*osA zqtD~6P#TZcha;9PId;Cklx&}lY>3+gHHz<&pNbI@I5sK++^YXX0itoIZ>orMKXW@L zSG8;}M;x?%FV`(U2jzVt3(lQCooejVhx#7Ylh_cE%L${_jdk^WCrJ!89^ISdUI8ki zUS*)=pAP!mX2p=d(*m}2%;y_*OP?E;`gKcRtcuIqG))3VwdZ<>(K1hP${AxlmPSSyj_msl1fh^K&cBeh^&ugRs1}GCT`I z`;n%UgCCga&LOFv>Tp2d?sRZRuNe36j{Cq#xr4?@Uc1106Za-?Syfxo&!u=4Lmp0tUM*hy&#WeOF6^ zh;JGNeM1>|ZUhUy>&x)fM+u$y$=oMLy`i|^mSXmI#3iB0kyFnwZz61c%I7pIIiR0U z$_-t^;uW6qeyF~le}?SYT@73d28s~*BC0z6uxO$Zps5RxPx058!`^b=tlZk@uHH3a z-y%T<5N*#G3U3aaO-`NQ)}W6{-W5c>wzF9%`m5t{4uwG;I_aVR(oM-n7<=qSz6eBF zIV!*4y9HFd9dzZm-(%P{_0WhD;y25F_M$s-InN#ZKJ}gI^x%;0J5OtnmhZg&s$b8K zBKC8XSI1FSlds622m5#yVP*%rsTOXhuIi8b`s&5R|w z)*){-Ii`6V`7ba_jxOhm@`=YFoP0hBDQvLK6pit~_G0R8F>z|0ko+_#%2+IXQ)|3f zesAttGDP!a9T`NCCAvQ5gk3{7ydg}3JS;$65r*UwRyk}Hx@|x5s>yTw6g9ARefL!7 z_mVu-H1vH4_LNlG5tLF2wB8=I*UqPU(V!voq2~f9*!po?CchrX&vJRB(Y*wk@j)EZI}-RNHzm9rx zl&GG!Tj4V~$0qZL3*SOH$(vIPgzf&Nbk3dsq53>+IF(%g#j6Yd(MPBA`&D^Ac>E1+ z`-6tc@BTbXh4-(=Xn!_GXVSaeFX}3o1z>(NSz#j{@Ni{4q;WvZxgOM*^nV_@ov-!J zd1^pfA6Dr~iV(iohEo~m2^T*H>zu_sFGz~ke`MqDXF#CpKP@1a=3!!>#Fy%4X7ba! z8y&TLgSgw>sMGJP4mf|M*b-KI_|z(P_t6-uzvAQY8@0JoNq*)lJ}l;2L}tsU9Ui7n zDU;fv9iB7CB35e^F3`sRT)Mn&F9B{E9&0%}duF9+$s4PeuA~6yf16!)2s-Q@T(G^w znF}ykbMRbvaz_?D{t0PyUQAyytVr=NPrAe!aWyyC`FV)1vCahocWTHzrq7h5>0u|r z@Jqp0TbT{Y62#Z<=|C=2{b)b=ZbOwr@LfaQ*EZXfku)+dg0*x_?&z+N#fyZ;u)N#Dt#<>;-p4H-q~Ga}me{=YKc4H!m43?v0=tskwpbCW{&MguQm=OaGUw z+#EjSHj7=^>jB+eUt!C&Ryv*?1?MjZyz*vtHrgAONmQn9x~3h(M+^d$U;Z91Q>PBb zg7QWtGCkH`IdK#X-kqI%@9&zdw(THRKsinsm&o@mLIqwm0Q_1%5B_W(t%gkq*8ERb@qRMyAcRPs{A^zfP zL&c~sewe60l*g#2BYZTx8X$0hd*uqa$6w9JUhrB4NwdhsB?dpkPZk zt&(LbGFp5K*?r-1nHItR0Rw6&(Z4T7pS1d}4NBiV8+xVli7)252AjB7%8Mu8z9SXi z?+1uq$5GKFry(373JZj2#!}$ya#7~ zH`K-`zl$l7!2RI{`JJ?6GKL)j(@^!~%VeLSDn3sc4j>3nSuxcBLE9g-QVtXyD)$8% zD+ap9wR!W+&2#OX(<;BY7qoSQkLO_+&NNHq5G5H9=OrzoDmrhHkadLCU){~ou5Wv> zF$wYHC3(#MgM7%nAjlU`DQ_K6N;mt4@PC1PeV+d($d~K`mhY!|JmIc-oL6Y&FFh#Psp7Shj~m=!gpI$COyc!Qr3W9i+niTtJ*ow{XkW=_06)bI zK@2}*H7pk|wK)LF)C2tKF9r*6pLn${wP|mlRiF!RZa2`MW%A>`>XYVs>TY$GrXOv~ zZh74%v&lMV}1bp11|-DNYXaWk3V zo~?%0-5i-8QA;fm=|Q@rVxrCH<~a~1B9llq$_z*) z5`|ykb`Y=4qq35cW$4eMBIFD5f*B~Fw5*9{!dp-g!LTV}Kys&Qi!fk>2gBs5hP&WR zuz+QuJ;{@5M$gNGt2E45rm4*WjQzkP7!@T5VkJ9;I!RG3i1Mw;ygTAqvVkvp2Gwh5 zUp&g#TYl<{k{Q|9j22Rg=LX$I1j~VQ5lF&ZqkfJ0QWmE9_Xb<~E#^Oz@9Lhwm;(ul zM#UxxZfIGDs_4Fn6_7ee8E2AJlTW4x5&jLc-ME58YoFcJe9tRW%DCc>p9tGj%Iqe> zMNL|Wa=`ogCgNrZSoBoSE)S+o)g^XRmfOWw-HYKoLXVokICNxFYJ(dX=wa7C1nxIdSdM9wqkjC7fti47 z_QGSF-BrmFnciUOU-jaSYBWKoT&n8y{&A>wC<|IV{mX_yEmBBT$EC!5q3L&W3PW3u zOC}NpdXXCUkScbtxHa{G>bMczc*Uxkb7m>NfG<6|1{KD*G2JdDJ3AE~9T*$f!uLuj zlysxaXi8*?Z(mV@G>B2L_|(Z+zR9f`F?*R$`K4~+M^3iqL02jMRRll0@@q;G!-N?|@bQth zSw!5Ikdq;>O3)%Aw#+4PF%OO_E)+JBk(w`T;5PbJmO)4nMh@!p5zWE!7fI0(#wj8C z9A@NxH1d)y$ytbzNM0-r(2e^Faj9TI9{l*D1C(ffP;4#0utFIE-!b2d%uGs1)Z_?F zTgptg(t+hDm@ytMm{ea{JUZJ8u&{FHsz2p_*IC(Uz21>XeXZDq`gY`>1=38-RXP3` z|IooC4!Ktdi~KW1#GV?G7lf`9Uw}2HAlAO@Kz5LjE89Ooi?2f$BI08LN_(2(fPk{-mYO!1%mbr#K5z3j+0^Ua} zX`+J(rqUNA+7+73jF*m9=4#`{Bg4vz0Zly7W@d&VLOw9EXEXq|DM=jios}(1KK2;d zxCadHbVuuems$-QhC_{PNIMzI*c2i{bc*TE2-KoFW+dB`Hk5rULXoYc)4bz4pN$x96(KI68BxmF3 z*cKxvXSn1NSbW@!_AzE~$R8n$4!CWx-|$eN8)=D}+fqQvLwp!dvl`A74TSnk_aNMO z+xMv=wM0DF^Ywn=f*2ScL97=T(*@dd?bS&>EwdkLKk`bH4W5Hhd~ zPNP|0L8MLvQDTbxf(KX{D^D6B7dGVgox7Ss-%JcV_rwaU6!9BNE7T(nEKzNvn=!mZ zCm7`J0NBe5%s=4QRg9)~xAB$+@^@1aK~VD$2v0r=ATgMQ@^!3o%;x#U2{a?0M3Xa1 zgdXk|4FAJljO9fCIvx~KC1QDWxkKuL+@UJ?Y~tQ*%C$tmeE3(@fv*EIRE}tL`sxq> zZZs9Mg#tj7_AfK|0>9*#x+}fT3MdG98;K(vIvE(b2y4o8$)%+e5R|AUz z&>$%&B2bQVL`E2Ee;OQC2Vk?3?m?j8?mRCag6yXW-sW8`4#G1xs9vl-Zvd%K!^oFXg z2emuWoL37cGAv2z5On?<2VDIN=3tRO5GP)w(Jd<5=js#(oE%vP4G6#{-CfPlwJOzd z3#RzPLK&fE(kWF!Y0Bm>7sOyq)W)0gg(|E9Wj z0&NDy^R>ve7e#xH25vzC5yq&LLS?vr7uT$y2OJx1Inx9;W67;W=AT?TPJJL z8VtV_NThKpXdaGGxBdBzQ-%pEh-0S8Wn-5{Qwn3q&RRohlN{*rhsQ{}WojQGj#6n^ z0?y6WU+|#5K**=L8=_fToOjr4wx$|+Ga#|81%aC&g7tbMQJI*5naA#CnZykVG9Z7G z06#-ak;l2NN?ZN8E=OrBL5dM$-$FUY(uYy|JHNJ!h&9YeN832kB?_#Lv#nvN88Sg~ zg5h@!7Wha|zAZKTo*A8PvgawSaj0C>`MFj0V;T#N@f(~)O;0!H9zsFSI!4 zl`;%z?>g|!Da|0BqSw&o*a&;YZ`EEh)Y4994_q~xZ5Fw z6+QP;I^zds7}0SSL;)zyYVMIBL&?0|~mtiqKe*Pa(_^2mZ>#h=?*apiEOfTU8sl;+6N9-RdhB>>ECG zXa*~zmKo%^-;Ou6)joqTYv4lz(Tqk;h7_^toH8^PH#>S`XQCH4e7O8Mp4JHHENzYO ztev^_(HI_gTUU>BZ#dDb*5qklGkkH2UjzK4Z4v94p#eF)z7{R{k(hOZY; zJg$2zrJTzmU5LGopC?w(5uj`O3&4{l!K{N7EKw|OG2tA<<`L8`{ zCLTtiDiI@_qi>KAHowAOVUEEvzKZ??Nz4v6#(d@D?$JUtlp zUJ!?3r$Z`krzqK0K)n*&4oe~eM{)E4yF@Fowi)I-FgBXZ)e$5BI+ASw z7#p3Unz{5IpvE@(De13>%Lpv2O3oxOKB_HJtXiE7O&Jugdm zYmtO`f!*{hJL+$^&jEp7Q&G1n@JqU5f(OX$`6z6~U2E2E-tXicpVq4O#8UgY9)sZC zY`mjIJ_znD-!QWOgL?r0NmPSsOP<9xs6pF%By8X1P_N27QMavKtoo&kvW2GQY{FZj(zX4*;ivL8GN{nPqUg)|q4BfoPdVtJuaKkqrN%7kCEoso>M>0pFC2NTV)uYH=sU z1Q!FL_gvs^o17i5*I>`5Fn8N*=RwZk#G%`U=Kmd2vxtOFJTPn0;qLs3o&94v=-z^H zc+cvkS}*;$?Hp=Rrk!$Ttq7ey0$F2zzhJ~Ez zOH`RU0TgHUAWzrX7=tF85nEB$c3v^?n`h(NshwGgW9agnlGK3*9pl5&TyfjlNv5=E z3Y({jefE=;Vrfit4c;5*Fjn$r4@^thk2UWP3ytiR!y?5wblENt_`e;5;GByVi~D-U z+PG%X=V7!Vvh713-l1`xmtpt{4(J-yt?U(Tu|1Q!ka@`lM7_wrL4(z+)(WD>u1`OX z2EmZEHywc)VXby86I_scF1#PJ$e3eb=^Kba7x}a2OJ3BGVGpvXv~r_2;Es^hhCfKo zWIL1N<4#UN4jEMScp4>l_3)4doia?t_=gXW!t1I5M278$$)GY;#fU}p^%gI$B`#q2 z`t&k+TYq7i`p{jg@U>M$>By7SbW$3LQY?W?+Sta=qAy}@IAI>NxMds*%kEMl;Tc$_ z*j09+5E>ZX%_aY&9~{?LxtJwnu%tctZI=yAHeLE9vR#^&vxYgGv1TrL#&BJAd2|Jn z`W|G_6y;LuQ*p-dwdhpQso+-yLN?YPbfzS14v>(Nh-@vz!B-6Z?!};+JPZu96y|m( z5%Ps$Zp)!m@IUG2rT@DQDV+aN`aB(vbk89+*p_m>2&~-5MO-_-RWZEO$=7*Smi9_b z(uH&i3eAQZr1pkZweqme8{30rl3FzhK|Clvv=%mVgyDv{ucE-8I*<}~VB?Cs0xH6kPS2p)5J78}4!B+i_h` zOUShG#tvILPWuq(I9m?uprjw3D_^)*nfx^A(`yx6<$^y)f?HF5|KYGq4Wr5Nrbh>u zE7B7E0>`mer(9z#mqBgyXRSZOUErzGUOEzt%W+HzEtsjpc(9P2c^nfB!VlLU-V;L) z^)T1ccTSEH-5jn{*^D^_p*`4&no|y!Xuju`8YGdn6}{Yw$5QTbez_e zwLcvqLt%-@CpNzNq(z~>S2bVX1Vv}MhE*4LW&*}RW^Xp*S9Qje_YUC#N^8Kyd6O${ zR3>GVJIy8>Ij&zaUzyoJofnm7aFi?>wwd3Y#svg=ZXF%YijQee&b|bTXKO#GU?aPy zGu-~QnI%>ZJDwQtuxfb`2_;Y;tLQeHE9Eu;)usQTzfZ6FgrMdx6WpBl7P;jKA@4pY zyC2rH=S4yC#B+a%)oetX$Oft`K-RW&g=MASKQ#tlyH5wJ;LWh zCMeno>Wz7{f1poJu`Nx8i3oEqH?u!xnJd9K^lA!apXtNs?MhyKpXtR(axa&CQvYtJ zD%$ab$+I!Cx^c5|C`T04^1C&Ufs~ILAETDPxZ33$Lehq^*6A z>rMwEzux3!ZYEIYW$;>TQzK*@ny60tj!_3H#295o@D)cHqMs!a5yx+mS0uu5N-Kg1 zFkJeN_Ce5Ysp2L%^ZV*+AL@ERvN>2XLuLhN^og_=gpwHmVBxzK3uwcq?A$iuJSYtu5c*GKssp5gEZB93 z-y2!VLq-(|cZ^p$*FnSp4G+8b8-){OdtbS8uww|M zA!3ZZrHt>qhxBN+gOh2KwgXJ6DAvh>{=mv=g!31P?2m2Ic-=?k0|jn$hau?A5g(kW zv|R>=&lb#05AohOtsucGE%KD;nA^Xo~uc6M4k z6x8MRcy9a;7JaPW@dn$3s^LP6ntrHX&?{?JnWaqJHULAG)%Q}!=4rnb&apC4)Co{| zua^nGiWzIEhi(;zRm0jo5%XY}2%Q%9T|*;q|FxqYeC$hx@GRyw+a>!*uzO{u2Yvnu zi3|!F2eDindb!>A6nWi1GI`z2gtCC^+}^I{o~nOK4J|mHvoE}gVNzh?G{iB4!UP?g zzrWJ>XX!*S+xUq-t%LN>Kk>K_Z~ne;ejkC>mTlQwXwb%64~#ER>H44j<^&iqHeu@O z^Lk~f?_fP5RcM!+f)Aj<#aJHluHqkkfnB}_Q*omMn=ArDxiJl9`%C3alLo8!7LiyE z#3mj3faFwH!9aNH+F0OB~=3BZshZYUCpwW_B;u ziweC`GD9G%ul!-q&*GW;LZpCC+2bA8*xC)Ee=iMb3`6%mr12zJto)F1O700EdDM+| zqN)g+#xu6%8dO={ECkxV`C6%Kj^-o71j1<&7*3>ze&5u7tXkY9Z)%r<0xjDiMqhOH zA^JdD44W9BUy$qAl<&pYqCsT{vv#l6)6{^SgLXBTyvtTOf4C~aP-Gc&91$t<<#NWi z*EOJp+GZKOx3O%ri3syQOj zT1<9?w(m2x!01MHkOC`yRB}fQH~qftGCzsu#1oHc?f#?pj8|ie@b@R+p+&x@QIloz zux<#nX-yANUOM>-^b;P=h1sI@74d{*mHEl^Zb}m=?vyRAcn?E{w_uac!tiVp+D?Ku zw%qKHay!h7agYyHU14;grDnu!brHi)y!C_Aq6(%$Zi0i*XtG&J+}`F0ksXsUwp6r; zQT7QhJT4fe;L;2$Ipo~IQ8c&?CuN&@Fp9x&qMW6+zA?0liJ}YkK4HIJ-JT}&klj4x zsj_%Nt`aI47qpc(8)wH#2ueH|eA$L!&xv9i#tx|Hh0Kbj z!@BouhOeTO0w-38tpch9OCy$6g{N)L&00@<#rERJD2kAS{s_EV_hfT;bL3vTM{~b* zeY9h{v;Ca6=RyACmhq_yxPNB8XqgPuk>4|{3jbKz#3pWS-K`6feH+Q0YF6yK?Mf& z6(>$acVF6N#uXu zCJ;Qa=!}*(MY}krNs|&rsF)#)Psl#CLY<#)y@LorK@ywCm#=ndxNd=wc1m$HBZR53 zBzZ7nZZ#Jgw?N=s#Q^H3YR!y^5@7w(i+|9Q&$f8c^|C&<0~Qx!zK5#2lCVC=z`v?Q z+YQN(gshfJM$XNCx{;hcRHN)A(Wpg>e!qe)FEi93J%`c;14C#5U5Wb345<8KpjPMq ztJ;hIy|Gu$d2W328V{0`nhb#~87*aeNfK6yl&XwFQnu&q1)|KjPCe0@7pM~TNn{Be zMiE%j%d;z9gz^76dC39-KR?zkM-xdtiMpsY5_~guem`IB3_AAK8}@!wJ^le$zH9MT zAq~C;cLR4Hu6}%UbhRcdIZ_AKNoyhd3I)8aE-%S_TzuLEzT6$JY&mWL-rsKaCj(!K z9&lUgZ)oY5XZG<9lNI0f>iz&5|2RIUdgSU_e>YreGzQAe55ZHvNAnV!h@z0tMrDxAeq$BUY27%R#q$__~8Q!O~$G3dIj$YIA+y`e} z6`m`BTEEnjJM zbT(;GU+fR`SG*ZAe%09jA@zx19Y6W`-)-q7i8s2HD&4SB{(0-je5rG@@j|S3V%y1e zU*{Dzd30_A3p}ut$-VmV0Ohs~&|50-62e~=!<^0IJlF3x^u8BA=s z-&O1d*L^~|TlH)M?1dBjef8sJnF7ZAXFUubKjrvOy$&6xEae_f?{xH2Hk(cZMOu#` zna-+dvvwSv1I2&5^`;8@ZwZNvzG~<9&1_}fP&2-P{aqOUr0LO076v|mszx<-$KDOE z;U2zh9>d&4ufcZ?cj9?`jHLAfPyZ_AOk~}ue&nn?4}N%@>3$Q|74L1lz?!JHRbs+DvSw>8(@iEAP^lwr&)ji986AR zzBm|^`vFMEX4Zesk#;u-yR~EDwZcn7Ipd(hHg#@9>^!0Igx39Y5x0_KLt=-kEW| ze=|IWY2y|CB&t@PTCeBa=+Zma?b-A8+x!iIH+XnI6wi~p2;6wew*>q9+B-SXDDV4M z_&@E!f^>*yxNXZ0=sS!MYEIdEg2*RaTOYxF^7%_pJ^ln?7@GSwiu?4Yr}nXj=qFG| z`)T4AoH#sj$PMWGA75$*rj~TK(}*v|ff&MeLyrdHd+A%~9=5eLt34ET+n~lUe@(ie z{cL6zU^iHST_bGm7_hynF|&I%4eY0Cv-w7!owM&4NN#@fBEYmak!O_Me_}wx?lW}* zd^mDP$nP(+TchXddfD=5zQ`8HidaD#tdB$n*mCQCGTSYf66zYgEB$$Ro^|l=SvkD< z8CHFX_`k6BoncKx&B7F=2nvW4rKu=I1O%j)P^2hLKzdUF0qMOHkS<-CfFvLyNDI9~ z0EN&aHS|yoJ=6pel6=1R-uHdK@B49|`{VBJvuB^@?4CU{vomMr?3tN#%^~D&N-b3$ z;#aV58dHmnKXOA{5D1Vrb?f&&lPtL8^4PG$@YI8e&x7{>xUSEs>G}uQ;6Q9rNGsng z>>fVGp*2{9_~WvjP;fcPHr02395TND4S0IJbxG{<*38L9&yl7hg0vqZG?7Z#{0WHQ zcEtxMkP{TcG?zN}<~91u(rj>oJZA-wO?$!5xjZ*Cp;?!7kag`nvdWn+V;_2};Lm+ElPo4tQhtR~OW zuK}9>*UkRi$lt5-CwlMCOcf?*ECzLrs}r#NAsv_+#@-b#6CMDMW$X@EMy!Cdx>TPko8B3&>aP);gRsBr2IHu0&?z86>08IyHeBSoQ4Z2 zY2m&X@jSSO+`9^Du;oE3+yBe^`{VQYgQ`;ZQFBXq&izu4KXT-PKxKv&;n#>#;aTa# zOM#Fvj#?xn-)LgLbP3n44C!s$M4o}QH_);?TL+gjh0wv444@K&9N4`_Vw(kZ&DN4+ z`v|z}=38Uuw)ay_X~XLq$%xpHtdnuh2%}M`1E6jyxPMI@hq&J(^(rZ1QA-NP9a1o$ z{KYz~;?(C7yG305*KifG5;&ZcYt;u_{^bnzUuj@OlqDg;?Ni=V zpgyCH4`$*P2a#^Kv=XH-dv4ukBumoL3t|i*Equ&JWc}tmWzd&#Qkq-T)43-7#eFnO zs46$9%Kj2`j6D}cozGE!Cic9QBrXg>2ZD%8=V;@9vHX9@#Q&6xPdY??y=2V^XSl*c zd^9sArmShT28M1dY7ZSQGa|jU%}AdceZ+xlwF1bJV^mwpi`~6u);5{Ulq7zowNGZs zYuOz)#tbU)2826ri&y5oPE!hw0|FE1_TFLzGoZT%Ew)42p;@Wv{$p%+mlwrQDbud&8ra_tuooWKqdw~z-G9- zoZ<_G9P|Q`SR}mXOLo-u>r;@P$}$IR+p(RfMogi#TE*)T*35>qcXE6L`L}JfNsdm*HYZ)*pZMk~n;O$` z6P2|OYRcuDhQN9C;l{y2TRp}kfcyc0`NAg!^*1weIJf`Nie7Vm+_M6d^dk{-R0W5S zzuaVygZ$~a%y8KE@NLpkXiRgR(9iVc7(Jpauy|#uJ1i?iwI9UmO9k2fj0ikPTc57- zNi`dUxox!SxBm()&mtIZK!-@{k8EZaFlQiBpZimQ)DgYMAU zT^$HkftD_xwx6ai%TFEzprb2lBVe*QmCV6|KEbBYOuSb0my^8{lejm55+t(154gK4 z(1*o;6%Anuc9Ove^kPcjqkgWbpTYUuZ1tF; zEBWrm%V>k6yRp#^?|I(?(FZ)25dkf<%eOcG-4S^IX8LPU@$qlPJ-2=YZJ!1lpITTi zEE!KvN-Ry|pN6(9 zEA2yFJQ`Ka+HKogu0v^E3l1S=^vN&d<``{FVf#^0D<1OgFP?S{mm=M3gmntuosXbi z-BE$%Af!KlvDH^gJ8TX|g-$dS4l$~S8GTtRdpl<<43^6WlJ{SLeDQ}gQYKJ zKX*ngdv-Z2c{_C*XErzF6MO1~Tzako`M2+Qx(PQ$^*Vpwz5z_B%PkE}rMskby;szA zILmX3VrNFr!aU9+j%sp7k#?46?`7NA4H$K+O1n$it7QY8oT>m5!ri%^i1{=JfWD=c z@QLvwv>Z{noNbn^%J?0eXL0JNd$$lXkzec{pNodxAO z3>EyS0#7=~Drz5*9z)KCqkn7~+i@uK^oun{^45ZiFo!3}wD=$+(D{CUvOM1z#U<5T zx7SD70cMcf6&Fk3f*SY7O?SWPr=hO*grYtCVwUa`5LxK z(Qb@J9EUE;nzwclQRvB}0-Mmv%i!hA5Mo_D9<3?4P~*f#Lx^^;#XtBwIM)T_bA{!E z?XS;vn>s#)6^r@n!b{!PuU-#&tm#9KI#n}e8}7o~KOkT-^7bi*#BNVja>rkUoyN>` zEDqmoA{{#?w=jnF-J+W+;dUAdCw-F>DbK(#%^#74@+v~)8ffi;7uZ-0R6#oVyL)cUJcYv!Lncp&RZPbB+yk{)G*4!Rp?A}Sx`|r|Af}gfn@GSkTyZ4 zJjC%{M+l#TDA~rroO7df87~)>VF8MLJPxdzQ$z%LLyPyT>U75Mi1Df3H z&flG8`9_OL)V;`Ymwno;)UNPNtE)w}zrPbB%%eV&iof=I8l^<+-Q5o}C*7MjyX`dCuG?*x4z3#Dw2-fGQIdC**O956%L7*WM0soCuF2#n_QQ1Kr<1tA0Q^ z86Ir&6i64I@Ra~wHc=adZw1XiQQ{olH8?#1E7tqE&EqsT=Zv?IT4i*6MNkvV2warw z0Q1hBbD}EjMDi>r^(n!t;d>$A9M-yjeJbTfX}ea()q4#grez)R+*g zpi+-oqOz=%Mwp86*mdVb+)u}n#o>bI8-8ZhP*OIun3=Lcs1o=XlmBkXmXaX<(UEoY z>ML0)1x~aYNVC7wH*x3WM>?^(yz`mZKO*xp*a6j35Ux(c4z@1SPJ%ll2BBt0QW5Sc zwr|3^BzwmP6H8E*n8rtEnw8>J;ov((u9UN10YfCA-F)W;!4!wJGElxGPJ+3_wZI%W z13q&k{4D?mq~Z3E;wIN?(7<7&N=VK{Ufj{*lXuxii{;e-ENO#UDlM1cV~`r*J(d)h zPW;#bkq(~|^51KwY6)~VCjePbNjoW|#dC8=O9v#ckdstob@(Wi)Sym~=ocr-9$10z z)OiItiW&ijDBVrXNM^*ix9)0l2n)%~-Ph)6q}6zw5U#E^<=q^@l0{=vLy{q4CdTto zCE&Lk$GDb`w!B38y!%a=|PF9}-6L%@Mss#%xpv6r5nqA233-DbjlI7|`jg31K zuGt9$e2Nru8`F#P4cP7&xban1_4&!wV%axsF4wkp0Hs^}Okq&n6R6!T!0P2jV;u3i zOId0K(4JByo9`P$1`JUFdr6+ML3v&Dic*Nhb&!D!W)yM0f%vn?&E@p!2dwTN^3)>W zX;)q6LZkR;mqlzJ}9mifFrMLHSjH;FZc_ zy=Vf7)OLUlt%p6bh*eS+Vtx7>udYwT45{Ku zq8^o8VPaUGHV4d0I}P7k#K(D{51gy;x?;%gUQE|VGxzvEUHS>(-Put?1V=NJv1UjQ z+Ef;1$NBaw;!l@HO(Z_NzSbe1sG(##OIM>8Zu@6|=pk48q%V5NUnNHQ3rQXJ8tq+v zvfD-C@Wf3JQ}4L-(ws8<4V{gIhj=tg61(3-s#vu_&)S_G(Gm6Luy>>6 zLNZ}?bvzA)Vb=4(ZNHAA>D|aU6@YF_PK%zZg(EiRi%985Cm%3P8)vV^seY&Ib+&bx z$8srS$8r04V)QPMHkAl*%ykA zq?}Iv@HAgi&fXikXhB3OIK2U5*I9SB*9Hibf$z!{y>(QQ(j{Tb55f^g*xs%&qS*WO z%@UQc*R`L?WTV%!dz>lTOO!gxY#~EoY{quqMfYznms)M#A4WZh02a08jhpFN<4^c? zzltgsyi}KuI8b$kJ9Nn~iUvLRk3d=b{{=`i6D!~mXVje<>EV?a{d+Y8|HY9 zLOT;YL--YxipwA*@%(hb3TjFjhjVN51{kW)Z?{{!|Fn!$+pm_|{^LB~mo~OP;pk}Q z@qf*B{%hLve{%6?fJBzbBbgXR!jf#GUPKqTpa) z=$ah19JS_CQc31;j_n~CY+rmNN`#V#gw4rP{r{*I54||vM8ZY7!tfY*bd9vbl~cT? z#uUB*lm*g1gHlM16RR<{X9hU`tnV3!edI-f^{eB`jVso7I&DgZs~z_{LX2VwuC1L=SS<<&cN8VGEur`a-H1U63>Vr zzT^0gRyKzU8!a}(S&H2E;(@7(VR=p;)kA4T;$1t&5MVd_fXG}#7zY`;1 zrwA%x@O3E}NW`D(c9YWk(f9bnL@CeuM~`Alw2+MO$WTI3x zk#Q0`CWzy{iV94N3H?H8zFj#H+0WAM$n6X~UH@X$7v#KXWB11xH+k%_I{8SEshF<2 zzW3zb$q@0^{wvn3`bqN=%0__qyJJTpX^19~~akpNK0?a$-1@1T8f} zQ*MJWuc%8gP?jB!l{=XMkWiy{Y}NS1o=I>fPzXG;Em+??CV!i)VQ)l(e3P}lL0&HK zI(~O{5Qbe76phz68lwxU+cm~z{G<2c%VQ3dLxLs_68r(xnW%I}O~>36Mf3||waveH z^V+Yj_=_(e{O-DZHhx^L&Fr(lMMQDWrb|Y+bDRIEevG9;y)_F6p$A@F7DmMCM+=hzKXlvifdp-k1mGy?U!Sc$qoD5v;H zd2=t5!87-i)1VK$dNQDCN3_T(zbrVm>MtMJ!KHNk;xO)KuG~WwG+(hEnYa)=m)j?8 z4Z$VsQSyToa*nF91BM031E=UvP1EqKoC8F_?F#XVUHRj8!3rv{)O6%W$Gttk_e%og;UkOH3|g8J6#j};*W_0h(;(`Q^k5{jU^9HcDEQz_eheCs?(!rGW%JAAN* z<~%JYxhz|gAb)_?Bt+eRw!QqG6p&ya#eUGf(ZN*fA!aFSy3SbCTqcyzO!J#sAO0z`iM zQfbp~(=@2czH+Ft8Zu!Y%=u5|d9<}?1u&KA)-3)sjNsuRhp$nXx8u1-rsX~mCg9Il z94jz(U5*NgbR!sXp}LlcgSlw}iGSC$k)>9u6XfMS3l0HMdvE!n?gz9eOuTYA9TUmr zKD8?J{+89{zR97#f=5p)8SkZjW)8QD<9!7vJ`$?l1qETyAsq%6y^m8L+Z1?daEY4r z;r(UWL}q?CGOr>e!uAJR)+qE}UI6z}>BHS0t~(i1FKa%%QHnYju*JvtxQCjCy>jFW zw6WVg&3LS_Pl#!PU9i;r9ItA*aa?iQD75~OPN8Rr#48jgx^5gGqdI2jWD6fcZ;Xew zOGw;faLe|#k~Wr2a@#=)g!GLUcoyV#`8zCbQUv_ow!~NB0wKFMG|SM9BRFUZ(wc;< z1vtu|Jw~}BCpszTJpyFftgGuM5LrYB9QhWAB@G;`18^{XlkE=0ix!JH+mo?=5*NOh z7wYeD30U3oZynRKHSH%A)TgkNpFzEs&2=Jn=RM?87%ytTV`BA=b+Vo&Hd&gD;Yzud zwtw$$(bI1>!gAdPvq=1NEbIVwqqgSJ1}&eOyDZna(OrnyZd!i_puW{D7aJL}natEO zN`D3NU5mHDZIHSJYAf=T)mwM;_dH8dAXneAcDX+YXFUw7?79K-*b2^)U_ToFeBDiZ zoo=gQ-QT!>jA(7s?%bf)#<0BEV#=k0Y3FUg2Bz$0R%}zG|9Oub^8IzT$4Tc!ms~GL zT?~b*EB?M7{BR})>2)EfW_L7gPTr{A_xB%zS8hY~P>`V}LAXfBk6wU5+lm42RQYm} ziN9p=k^<DO* z)14OFlGp?uf2BZPajALpIFNIGm)R39@1d-O%g-G6yiN7WYAS^w#I07FL8bTzojX_& z`WdQu_<~EnMQv!4($xAQnxSCm7R zygV>jXCVjqfr}LyV0RVxDlVZr6516(%xXVc*hSeco@N(wdcy>r6&s0*RmR&tav&pliu+Un! zCXf6k3jQ^(w|iClUndiX54;OrI{^1~9NyKESW>s7u05eHa}E9k_EA~3t?Q^@uQ_0t z2$Zg!*=sI-bYL8od{AXr{qW?rP-hENt(v*=61rfEqHUfBhd;L>7+?_LwJyL*s-Pcm zUfX8Udk^aHXFZ-9R$qdLca;E>+WzoOIh7{jNtn7^^T3#Gg*&HE$T-oD^iy#Uasu61^e(K=$9j!s zbdA(oD=CqN?Z?B|g*wkK;hT5<#t?`(TU$AMf+4kwT@wGHq8`M!5}H3cL^PjPU!*w7 z#Z)8Oj+#CefL@y-u#Y8%_16Ivo$2J(IbBz+WbrQ}&k+aVqn0(rF8U-Iyy=DWo~9j3 zc)#E}4c9MW1<;Lv?;Rq9R0*$azbBYD%7#37PPk}X_&9G-bnC8H`zz0_0Sbg`ulpDyId;ZKy^2><}KYoQBYkV=AV(PXy^{H#B>ZF5|Ntgo$+Zqq5syH?z2sF=b{~TUjrZpiV9fmL#uQ-c# zqn|F}dC+fw_Ft=Q} zJ_lA=^1&4^f$vBumZ7mEEW;VrrzZH|B}(wN=GNxcTu*sehy@~MOroMb*Il~rJ(0~5 zZ+Ze93wXEbi}{;r4H^KyKw82&5%N*km|D_nSHM4|=069yf7la;*j1*G@j3iydQUhr zsS?v!51T+bGrjiE!30Gs`FZ^KiFCH|O4!pr2@NCBpvfi}@Y0|`BY!{HQBCar(T_a{ z)ULOS7c;l5)chF!-s7<9I3VO~Iu^&x7&pVQR2Qd%zjC2i;bywEb37pKXZsD4TuG9d zg=BATgWr3A0PXV}buPf=;b*vWB(k;$19a<%B@hCrr<6{A-q_=Y z$}CMmxDO+kq|WnL81AKLThv7sRNkfAzIcS1nYIzI>NBzjD{!x^lR$Cdb&NTwBFuIVxmx$uDw< zxFb#OCYH#um1|&)d}&(1V}jxk#~W3rYzAAyOM<}@K0F14^uYy$#P2?9e-vx_LHXiR zV88_EbV+VLM`=Fj<6o*59Wlf|c>i@bpp%u1>`KtTP28_i|4SxrUV_{16UM97|IhNI zc!1Qoor0^@T&?|i9yPsh+FI?f+WkhPP)VlY3&DS!2nZ||OWfUcc@cw*s^iYl!Qb4r zH8KV-xl3=JocNG%IGj)TuwN;+@r7ceMDcJ{Bf1F1SC;qiFU7k-t&fMSv}9=<}# zRZ>z4pC|JncPp+IO7idVi&+{9Rsc*p5`{~`D0DLojsWc?^!spvZQ)d$r z>N1^R>!*FF&O=Iox5SHje;K(b?v1xy%X8GuGPOq3f^tXI&AE^5T!&5`TYd+>`eM$Z z)&8pM@9SCVKhB&3Vn#oEY@;sz`V7{-!R+qkpLT{yvnR7$DCH3Vu(VU-?1#hh73iC(U#l)t zMUUJtjUYXs=+^r4l*T#iyAy+%sLSAxfg^=U`;l#_ZTnpJ3;8X`{1B<6&Y+7j+YKKQ zf|cBVKSou7`>{myrLU6v!xN9yRKVb`ZUo$=to0Q}ZT_ zW3wCRz;)EwCp>7e+YdfQG`~}l1(K-fldw{i(b-bPvBFk43P|w$~AUB-5 zo8Xsv_HHH**Jc=lm7D3*5ppwyo!(9}wJGK<{T2KW`#h)fphO&8e30YnQA~tea5TLG zbh$jmn073}gtvGrPpW7ECZc;eb~dEud)Rx7A-DZT8iyK;zt5fAnQJC7t9%(Jq?0rq zlr+PLfIiY~AcmOczxJi`cFMT~Y0!*0{Cy|xOHK&IdGM>!Q9a;P``o@;MW4U!=R z=Mq?f)T}6=%h5eIezzge+yJRq9DE`&5N5s{sN->Ib~qNL5p?!sUKyFF!@&$V0cEvf8?~LBJCzl?PNDzBkpIDz*1Gac z|La@2{02{4PRjc^`IIkYWaLKw7D6R4|4Tw>X4N_B^{rR~YA+^gFGe;m#(!MYc0|%O zf4@iiNQ;V8%h$*6>bi~@eR}Zx|2ufby*N=_XnmCIaAN=#+NO{7utxZB!hG_+!{B@D zgvZ#aPCwS+It3fp6MA4*oG-f0E-S45jepfBUa=84Ee$0mAJ{hShM36if;WQ;!tnib z&^DV%!mv*l+LnYs1%=N85PPIBhlSt+1bU%~fE&T0paduc$Bn>NV3n(<1Mpwer@>qZ zmw$B)ho$--qvl*0aP6Y9#c=-7yT9oD`ET_08~=~n_-}6fy95={dBqj*j~Z+}qJ65dgoiXgmA4tGr63oD=2 zuvTT|>A9s44wkOlwmY!?B8`sX8v}#&u|tfI1sSQnMvDs`K2i{aPDt*rP{`mHKBY;; zbRaHeSajDOZB#`}BPn!^xNBjeFBuMEE*JWORybiuwz*{a3+yoPesBC@^MLuk!Rdcj)gDfUvE>ZiI}1}IBYVX5Z*oo@{(X%6 zzkBq5QumjfVL~l?0yCITT90og{JNj6^?>#E-;y`o?7_|33CT%GNy(3Mfd=?52O!Y) z#T02O-oj^F$v6Z-TO)#Q7kTvu6($8Do3Bq7?nh|6jw}92;c4A>)rAZh6aMq$E!Rrq zHAeELYaG8p4|)QYGUjTddyYm!eJ+pGJjk;0msEtNy(F5tT=iLQtppY*uL^8GIegO! z5dvUoZx$}Tdi>2cnGzx$+2UhWu&@mOY@_NbCU~jFbdoi}z#uf`vLJAv5u|rt<}BO( zrP_$CEbG98l0MZFKG%w;Eve7lgop>b?r8xB3z}@H-hDOa$+;`!3I^p-UbGD3w`heR zIdw5w8DaFeqUs)pqGm3jS88i@c=!iPL6KrfyQl=I$1}K=zV4n6ZZ|+&SN!w~&(USF zo>u3R1O-tJ22nuAWpj((FS(nb4Bg)RtDb^QEO%KjzrF}_PIHTUcJnjD`DuH-rs!%I zwQXLR|I^JgE!vWcm%4n)r4UXQL)XA9Ep4>J5eZw>TbfoiK&;N}pX`>FW%}u^U_(+< z@R9=$MO44*4Su9!cadYKb;;N3?r@8gon^R0Q9LU3i!|;F6)%gOdniASW{S+O;A*kf zSbc-|BnYP~H&lP9Woq|C*O9Vcsr_6~)YsW5pe4(<$_k${(ZDjWXLAxKOn-E8v5De$mP7d&Qw$WC(NfvJ6fu zA;SLNK_C+jm{I@~2#ak$@GQ_LS0p0<18?2AnM6mLC(!a(E4=XSEowG#%+Grr`uwrN zMoU)MipI$egZI|IJsw)Vd^1iUkC!5_o82^rjw-COl>->d%srgQA~Zm3mrtamS0k%< zq+Vzoxlp@9kdW z_8_vX-v%K&7L5*8)r5lz4HQ}W-QO{8xI{nO!BjfPUsEU}oU^`}yi|JJxb_v4|GppX z68A(EZ0RX*w)OzZMb;JvD@M z$sXR|7hMr>$;zXi6_VBpr{9l+qn+KjoK(7ZE2XUT`v}CFJ@%~F1WOCH+j2?@FkR&r z#j+<91d7VF2a{gbEaXLGVTxKYtn@BdeiJ47huGWJAs5?qZN5;03`O7v^2fB&{V=LV zWIJJR2jz49mr~mLSBdi`^zx#V<@a&Ntg;+>L!IQ=I=? zY6#5-Yslm^#9EH=lqp3Wy>#w`81TJI_y>nfJI!{eH|sF$g6H@8vsn?2n~JBy+6{{b zyEJ{uOQuV(THTwJ_$QkYX_V{u{jH6TCu3Gr^T&a}w3BLoxEE5-;wzmJ@0I@RQPD{& zs_Hqkxg~;GAKLhWW>vy`Hvy{n9Xj(pH-TQ$=bo#PgSE#IM|3Tro#Ht{TZ9!W@n+23 z{bj*4*F~A;8DCfStDHT`79y&h5yfcsD_IUlF^S1hhDONK$o?odCHv3MBe#jJ#M5Jb zz3Xpc?SFmMlxTgJ9NWQLAqd#&fIqlO?!&{0q@}c#RAjE(H|K<@8uALe-1pLaDg4{v zChZ@gTwocMBI@%7?AY?0g-xACeDiTI<%HNgn{OnC+$R^E{z=qW z4^`3VKIcF#4Z~(}qNd;<&Z&@_(nB7H!+q}dW#`|vnh#gALX^GFUVc_$?04x6NOD1R zb`{a_wlKJuvAqjQzd550!{!aB{1{d3mF@M@Wvp3Pe)>|e)%MDy>!-ASN7K~m*|;UW ztXtE(*|zSvahm9Fo|K++k1b-jZ<37t@}&kcus=<{=TFwOY(7!fPM3ZZ+Du@#hJ+Mc zN=s^3ZBI3|K=M${z(C9^C@b!`L(T7K^bx&)QPKQWcRAXY>`q# zwD{fIFWVS#UL=GxH48kYo{lhmB{ya>$B8Kk1;Ra8HQdpb(}w2H9EOB*UzzLoNdm@8!2^X z`fin)DugA*zdqh!a!rr!bPY56(f@jPbyki`d8oorD_4Z_cn07$n);sl!q*vbRZ?79Y!d|B;t)`~VDQDC1>^3qJyyB47qFmjSVK8TcOSnB|A6AUW7*^{N}Jzr8vzwUUG8{4vNqZmyc zO&BypHQBPop5@jHx)n#ml)9fu@N)MS(|6eNUq?MB_HqqY`7w+ps`U&B8z#FmI;=yY z>+9erJU%{I-3L1G5ru&&QRc?KzOsU$I=;4I?c2va3Vvr{>erqP1iSVgJ-DSc$#g>q ztw+OU%Obu9^`W*SUw{Z7duyeeh!ozgFNr_BLmHc!N#&17M|Mib{1-&R< zb^E^V1hLLZz8i6LgkwWp`CVJ&0o@gJG^B95`}0AiB=qs!O!cV1O94Q+9CMRnxAAUc z44X#BQ&8?s_g&hp6;_&)Mr7+x^`}XZRQIy$y#S1^8=tAu&Qz+;Zp4FG&HuV)_{g~# za+eEeQj=;dkU{gBUeQ7UPnZPtg7FyCs$abMsc;`(R%z;1_x-QtjI@gU&tnN=Tv0NI z&0Fjt?YVC896F-m(XFYsqk8WVQ(<_L$hs=JdS!NeL`AU-bdKuy>mNEy9~yk+^ib|y z0tatzCD6mERov`->$v z@kt9rU*)_omRF@H`s8{ySYtO3kwR4;`882DA3J=qhjjjYy|&Z0 zBblN_57hOtTFb9#QK}%Em+=O4iXZ%hc|>3RF;ICXn^9ag;W)i#x_`Lx(A)xDZ508Y ze=}9`ZCx@=zv{hr8N=}S(T{V#`?BjZs%7?yicoEUdP2v}6e>s)+mKc&B*Xe1X#65NyiN5gT_cM8l!RO$@zE zo)khyu@ulnO{qhgmQUl7F5`QUjv@x)?B>sZ{(b_ci%bEzFJTf+_W77_^L~BGl0Ir% zx74O<-M$?0$Y`-gtvkFsLbvw&(tjFLc=^JDbedA59F>YryBJs`ZE+Q~vpy}*4y{h* zeSL#1jO`8Bg~?EFja0~=6aL)zUa!lsDS1SsPEx)F;_TVyD|*^lJtbGMBSpsRRP@DP z;J>hhCHaOt$B~<8o$xmT)|-&!d#dmKw*n^(g=srYGO4U4`N zGEt3DkWD-8Vm}|;(d9XyD^rk;qt{PtmK)d~vc$Sc`R)5-QkG!y5-EQg6$dU40=TwI z1Crdix9||sIW9Hl%C~P4p4!AQ-LK!8N}|dtLQX`;eCew17g3(L`{vyNFt6+;+dCiC zyd6=Ksy|Vz8B(XMzg@^(#XWr^=5a&`$9T2=z_q$BXHQz4i2iZIe=Uqp^4yAT=rdiD zhb7DyZ2nMry!T}(S@%Zo(*iB_>s&J48*@`s+Iz_ngMn@PDx9ZsL*m!xnH;)BepHep zmcUQ+6dVh7H=@pS`QyJ29gIp9Z^u3C`KdV~HZ#-g7Isi%^S;`Bf1-2Ji1377EtotJ zwy$FrD?#`&U>t>s)|I!px<<5N2{*H==}d_re?xv}%b!wH>#E=VRn&E{k0&mA2yMcv z4}izC^ShFxGHC0AasfBj3Gz}zMnbmiqO$x?*Xm2V;5@bkOE1WNPGp%!i3)l`%+QgbT0!!Ay z*~l&%U&!#xPZA7#UP9JeZ|2#uj6{yz z1<*(Ysfzzf3kmHaU6rgaZHWsTRtgO95_kixTNwZFrU-B~BIP&HAmib2>4G^b8!G|wA?^W-+?VRvsk@|uyJ8>nmW!_zIi;*%3-*Gjo?wm0(sb?( z1l<@lpnSa$-YM z>T>1udV5~Uda1xhSK;H5c(6Eo+$BN~u11ZO6PQbr&*3zXQ0gQ;T@}PVjK7$AD|Nu8 zDnm}ND!j#0Pv+TpmN&Rp;h?b7wr{lE%9!?Hc5hy2^1aXDFVCdt78>M31-{$9ArgS3 zVw%cOJt{#@X{NWiQxw31^=-h^n{Un=&zKucU1@-ySjmez597^pz!cpU^Gfo5=LLe_ zTs$ZRc}-UbMvd~^tL+Rs15YzUEW3To{KdXi%1S0M*;d}Ee4@S0e%8bOk*R4qS9)Fv zME1(FNHQ+5Wv=0y>m7*_qs#lV1v@$io$+RAJ29w&3d>bVH%!s_4f-~y0h!``zc5UC zzbE|jqrl|1nCXPJgY}$sUT0mQ`U~ZDi+gFb#AbMP`1_R!^US467WVX_hKUE<0LhP8 zg>F>7JAU!jcjF$WD5qeTV&rZ-b&^?#YWZB$?(4V5CebaAyEc}t|4mFq)H@M+r7QR9 zHI9BJxZxwo?!QCY@SgJ`-+SIG=G@|PZ4WGH1m0BH|4~LN@dsZ6-J*&{=rC47>MIv0 z*mmQZesoG%q>XpWgudqJms+|{v6*B>E{3#?UGvx7`j`Om27Fa7o1Z}QxRU(ql+{?IWo1{_gsQXM#aeX`!Z|^My!c&Q$)J3WL zB*Q)HA{|_N7c2#4UGgM|&ORE}xu1N?-ZqGy2Mq+f zJbrpWr#X^M7=Qar>2VKS#KYz0eZn*O*ih+gOA!{%#%D8X`)n#-z)Tyw3C^%T+peTb zNCF&O^n9lBH|sIY+Q~A{GpJXmwa_xVgF0>2akg!RuyA2+)OWi18oM8y`Sn|<2%B?g ziO%WG&tA1+;Y_=XYH3Kd3{vJfNG(IQD22vRFPUlMgh0aI$vD#*xFVy<>f*G6s(8_p z!fWwO_%+TX(xWt2clga+S#NeGwg+U)2h(l0C@q9LoK9Svj(M)}0Ms%bG}Gd3vX6X! zrDCD7_5$fLtS^^htmm8ZiV*>pH@}hxxUz4<j05V5BoW7-v4$@UlYT6exL zM+-c|L1G|(VRFBGK5|zVy?$vcKz0$?apU&koiCr*4-O>-rEY48V$Md)N5$e=?$#O@ z{z-D-dF(zsgE!OatfCr9IJ}V_H8c#kr9@)SvwxRyg&f5vRS&$p?6gq_vb@N4OT2lj zeA{<@age{M;xpS^(!8&M}#vgQ=cOC-BhJmU98nArRi zsr!hAdo!sg;9c1rdsjLBY7Gz)CtIwM{m!0{p)?}LpXx8u-i&w+$!?MrNZ&;+W_&WmC4@;pQF0p z3%A}ixKTdROQvt1Ej)8&rbkZi<1Jcy&C;CV65Tms$ zRaOIJvOWsRplfo4=^`dX+vyB!qcEZYWJxf+&ZV%?sM8$_Bgh3j2(9rjkN6^NV6DJB zR53b#Z}r|Ls1<*x0q6EoW(<>fS7dnpkgNT3vIonrzm267|EBVWJUcr+A~FaK>xJ%_ zkD6cRrbrRqbL4naij9l0xI8__IrEzh-oAVnWhJ-hP`%uNy}KCR`cgJ;b3$w%nVedG z4Z{=5C!Hc=Q1r&r;S6?!j@`nbpsKsDjgyOFk-+W-NC31kKcO8Nil3za8JZ4bK z_)v|1Ql`B1bRUL?(os$?bK@mjC?p*lvjRzWDf_RWnx~6+4)4s+6TxwyK7Zr(YU?*z*F<-U(95G%~ zi7o0!d3ZVbPCi@qIL%uN3m+QzzG#IeEd5^T*^>OAlb%3Qcsdw`KDK&$^*jDArec|L zo&l`i>4um{J^Em@p%9lpx8RVQ{N!=ry^7iEDhVnOHMUtVe%Rp0V1JH!*N(ePk_GpoE&KRx*$G-#v^LzVAMgggPUnM5;vH#hw; z+w0*__4vm}{_;dE{x&G~HOiYHHnuju#S+DvH~RPcG&IV-v&6`3-j<34ezH*I`t9^9 zG&``aS?fgky3~Ssu(K(TYjl7Ca}PZe=W5u8ATI_spOvb;`g^Y{>UqM0c)tqkvoFz2 zrJz*Qi$A9gG%Mh4L`c*&5F)s#-Y^(VsO`*-K zMl(9#o<+$krC@$0=?jCnNH3=R=+>03*1@EG3SR9sLy==qwTyOZlbJN+0{Iw`J7 zjP;#2vtb@(kG3=Z2=)5`qvki(G3Lp`siiLksS7aj-&yS3NsvP)3I53L>fZCr<_s!W zNC)RF^4dIZZh85caE(HY_JM@-ZXbJ$xj2GGT|49CZjPjro+mHwfAZj|Rozoi zu}VqGvyw`+Kinc{d|&b6S%DV~#uy}6t~H7&xRf0%>HSn%Cgm7C4Bh=O_B#vhL;lLI z-_@b#?9GcOay$DJugkgC$V)mPC}d}0wc9@G!5PBu8bxmIWS#Ody5OaI+aipS-vf$*;D@m z%avZ4Y!EYJFD`90GFxH)#VDO)P|>PggQE1^qmC!r>0Fcx#bk>&^j}h@;b4*i-q9Aw zT;@Q7bVdtSC7P0O%|aCiZav|%^$XH_^V3D?oQW=Xd7L|7vi1JUW=P;f7;9W})*V(x zF3}ae4GcTkvZ>tCN4|y}L|5#bT;P5BovM=YC`S3%Uxuh#`ze{NZ1j=Ub{qLIRZZJJelhh3b9alqiYg6rpS!2V+l}{Gf^|9g zhUJErG~HXs;ePufXV1(M?nDhrnz`TN%bcT!bT`bLV9<)$v zc)x%Dm5Kc;SBy-2K3$N?Q2z$oqgqo&TBf3U=7fkJ|EImPii&I5*L@QbT!SV!1PSi$ z9taXha0zML8gC@Q-8D#X4Nh=(4bZp-m*5V;>DyUrowfGeP`TkWk zfAgC)t47bN8pV1QIf|Wd{y2t@r7q9W`@_pKFRcnoLjD~z`{hQAI&$7}B(Bz0xw9l; zcc@vVSF%^+@JYfe!AOggJ&g8h^uU?yRlQ8rDd!~ZkWIw$NqY>>Vi`$-+GYIKRXTqF zLr^@WR90Puto5Y7nEsb#9qBSut;?pFXVjwuL?O|gqaq7X&i7T1i;BQ0Q>6NCGdvl@ z#82z6C{O2E3pMu;j!Hyhj6WshRQEwQx|F5NORaimo%j#l^pcVUwmd!yJEFP8p$PB)8Y11HDE67`5FI zqr*hKy%`&QZR#7n>*CXP(RK1&2N@{OLV(<#rztbuFdKR2ANF*_l?F(OM&ConxH#f5 z2d#10lS;FtOL9R>&^~J{C$@dRZjjES(b+h^yL;aSIh$_r3yh3L0Z13U~>}fW*6E(ho@tJ5Kr1+Y9&3+toImL-Gd{ISiz$veR z$)X%;O+(VF@hzxpf)x7=}P4iS&X5g-X{@Kc#ey)K$c(S}n|G7R~SttYdUBo@}6 zZ@lQPNpaghye752O?ZR^+ob^G^oF(6y=#f3Pz+=K*bC*e{JPb-H{3TYVLj-)x@M-W zKV=o%Q=FU?K|-Vvf9c?I$PPUav95{#x$_UO@5k)HRB&-T^{tVqib>h}^cCFCxu1qD zd>fTF191iY9Zsnntxo8YCW&FD8^XdO&|{9RAk#EWNsCAmiB&rI?{!%1J_X}(VW(57 zeQ-7YMdQgIH_@@#-?ZKEapuzGNGRI9N^UDzhZj$=2rc241sspRByY@IX`GHfF33 zK5py>(0(Dv#`Z%VyyKU{$>>&ms!jHz9KQm&sr)K;@e zRQbjsxy>rbNwHr-f8gkSdVurh$jyp7y21w}bbA2)6t1$AbAx}+bb!E0>p4)pjUbfX zTIW&1q(~w(VyeZ-hhGWl>>G!uaWk1u`>4tgO}EjH&Z{s71ws*!h%vhh0}yXBWgm^z*C3kHUJ+hxWB1 zw>lGt?-?bDHrLJuqT%vG%V59Tmm+SZsKXOP{J81U%fi{b*Z`w?N{&6NQa}t`#=p=o z*5?(Z{zwYI;nm+w46=Eue8T4Mx4Q4Ee%ESgwdj)&6KpKPnR?sUz~6K{;Ds5ZpEVxq zM1CDXa;>l=V3EpiGdSr{PKL2U9Hu{cxomGf9c~NOeIXr?^@$joiPzv#h(0xS&G>=-){A%e;nYl}o?$#MP6&{h^H04?)!t<21TU|qXE~^3+E%PnYgzO9J(k~peN4am~-|alVIQDI7cpQ=fE~aGRtXPrc@F0xE|PRU8)-gU(FEb_QS1sqj6yZf~ts3;l&Z>C0Mf1qqgV0 z>*Bn{NFjmpGx0+?bNV)trSas{dfNpphVN*b4*66XWN2@7$Hb8l3({Cqn*?TJ!9QK( z_>ps2f3&Aqwzr}|_XUXV6F#;AI#a-wJdCpc{w&j=hU$ij)eVT=*4uhWUF9gLE+Gzw zlcVJ+wl%25-M}~JvXW>jV4g|j)?ace6hu_owjt-B0AC%yCwDp z7=#mdISzan;-1`cb?@kABiN<{_;%Xln$x1#mGV_JN=x<@y>#bCTiwK|PmAZ1v6|bB zab}OsxnvTtNBC@KAVcZm^sd6o#y~&?6Z28w2JCmgPM>4~@&U0l9U6kGx)>CwNElTo z;;uFFk3H5|BcrgU${0g;5Nw<8>f%xg07Xx^vYzZq;bu_PPHz-*NoONc)OfX!tV_c) zo=Vk9CWS{$D9f-%<|(gB7O)zEow%51i{txojtXgki}I3vI0`kuvdW4o{`Ota$ajo} z-CLs@NH#>xAJY4QKp_&>CwnmA$+@}M0FVcvS&Iy1O;;F|v&rPcFO*Ka+oLmkWOj8G zdpvm)_&x3gq@Nq;wD!EVWJIniakCoKX8sl2{0uCi_M0|0+ou89n zq@K7W9$2t3bXPcXx07fW<_}D6`lBsNo+Sb~Te_2HPlo5|4SnOpsVF`zK#hcZ>x7D0Zb_>8Dbw3S{IE%$#tk>fU0`^T4GPIP1V+;T7e!VNDx_L%q>MsPKdM_OWCl9_`g}qU$DfoVqQ*Z5JAI zn4AZJ9*x`$k?3K8`So@hDFJcwZgqqOhEx@JgcL*m4ojc%8Lhir)TQN}kRsZBHDaG~ ze)jn&cpWCr@Hl<5q@6d=Oelg$pc1J<1DT81Qi#Rba{DA49QS$soW#09cb6RH*%E{5 zkFiEZw~16hDa&x|iW(r}x`9DZ5Pf<8DZ8WT+e$g3W07T1a98DTSTi2!Gk3hhxW>29outPpIKy>OC{iZybiJ* z$`2pMee5l-#yEt!G(-=(QSY2BmghdbiF9szSGR?Okj$d+<7NTAvwhi1Cu zp09^8=I6}=TRmqJne7VuqR&@C9mc(@eVyPXJ(_QPFkB%FO8zr+2wpU3xg?Ft${nIwyM18h7 zlP&v&u*+_Vv;b(!8ab-)wwid5`%lK|x{_z<{R#R|8so&Z33Hnx7WJ9&ubO!OMbD`glucPhejJ5-#|vv>KNcxf{g~=eo4~;_r(W2e7-G=d!q z6au+WxSM<^p2AxtXC5r8<`a ztAdS$k*S%itDTXmtKwUrs|AqHkWxe#MbMcamVuR#g8{j-m8G>kzq1hKANlgb(!US0 zP?G;4aj+1g6#HEuxrTx=xdh10h@6X=l?lko%}UPA#>~dS$-~3LNY2j6#>&FV&cepd z#KyzV!OqXhO8(b}QWyo660|ck=2wxF{;N3HHz7(>2L~H|78WoV%nasW2HBagu<`Nn z{mzD+oe8F3vUjm|FmPtFwx{|tlmE&`(#RfYXJ+GI2C^pqov*jov(!jw;7zT=yiIta$gY_*dFFz|c z43yTt#Q!P!w{QiJp_#GEe-qBm#m~X{SNOk({t6dl`OW5ESp9J!exK&Q9sf@Z4S|0n zv~jev{NqX)0$GeKjjW8U9qeHk+5T^ghCqH}ke!u*gRq&Efr$}|jkSp&%RdMI$NK$Q zYnW4DCT02CrTjBrj2;58j;I0Q;_abmF@q@b_ zaNUc*y~Gdhdcbur0{0R>xa$Gey$IY({NSz!T=ybyFY$xB9&p`@z`eu|?s~v=F9P=x zKe+1w*S!ebOZ?!j2VD0ea4+$LyB=`ei@?3a5AJ%vbuR+<50oT0<+)Mo6t_NKA zB5*J9gS#GZ-HX7z#1HOzz;!PI_Yyz2>jBrj2;58j;I0Q;_abmF@q@b_aNUc*y~O{c zyHNg__hDoWo9qFG&Fa95RlEfNF!^3dioJzRq|x=TAzDv#Z)7N@)~q(_LVl@;an@U{ zyfXbN(f6tMIz~2S)50_BTp@ALhy8?WAA#pJW21^t)7Kj%>xBNVXsA~dwRU$W?SJBnMdqp4)h_|%CenEhhxHgM*TVu&dgoekdR(D%9fLyaSM|e&p6PZFNvgm^5vO1HBBExucLO)`>y^&(l<|cO8^Ul(RQo5KeITmHn_r@Q=ky__a>p#|=c;Dd0eL2J zzq-&FaV!ipm+iDZzBbEOTNQyc9@}WI6j-{K#dtM;nXKt_)3^4 zWL1(*yq)IN8?R*Nf*Tb$OA84Cgr1=qlpJ@bR}vozh<=NjYeX$qrwKH7>kQYWSW^s0>WbQMk!P4 z?IuDMHB4%BYw3-fYmAt)C}a1HlT z(fw|lOLe4c5M#g9URR(6NLM>>xc+OfbpF6K(5q1bFbNy3PB*!)bGSS4)!|^BuL0)C5z$m%3~D_2rNy9rS*p~z zPqbjv>qN>+V?^-#oES8K;84JM@!5X;{GJ?9AHDlJk64eN=~D%Xy2gH9W6Jj0nKlyM z#vKURbCeRSLqW2+Wv6-IT7^U+qas1K(=XM1{EP%CvRF)CQ?!gw_v_*A8GV+3wfg${ zq!zih_#ZqizYetycyNWp6}}pWV3_wY*2AZ)?mWr{^_#wcSO6tN4qyw7eVb*#5fB0I zM3t5t-E_Ggp;X=Nn$55Nv7N zQ}uUxOjcD)6_p#8x!GKhXXCOyYs(M?r}^u!ctT(aGNJt^!yLGq7z_{~-LTO6IBUTn zRQ+IDJ&$E`QxmplGX-0|Vq_Djp6!`tbB&m+CWBVVw`mNjx;XH3Yo5v32USZF%cw^$ z*WxxlsWD6~+qpN%TFa6KD-H;Mf9dI0lBF&TYm>&BX7YHiWrpU?{Nm-_jU!2T?Jp^( zYo~)?%O6@-a4=y5bQ=%@u8SvMA*XK89-MIA$|)H$roNRnYdZF#8Ihix8(rRLG4O?Vf)F}q))`>mUVJ!0I%jyomZGI zqR)wX-}zdhLuk(^vEF&-lF><$TxvKorVfAV)ec&ViKElR_*#_|g?d0rybs5!qwvW& zm7rRxWJocm>+=Wp7m3k`Ut9rbjAfh3G=)3dcLk|#Ez+y~^TRa@aJb@c*4a#f^>|%W z`0|IEc@jLjucJtI5IyUUj%>+1F#)SD3t%O8K;1XOK^hr!p3yy|MV{~K{Cy)+^GbAt zGU9vedZ%c}+>^XAebP6@%~uBNIyvw+Yw250ZeC?2XtkMaJjy(qlg8<%DNI}|fBG$I zRr(B~&#d8=XBP5ndYVCvt|qB$W*zGk!hlv20~f{@_VbbM>-mHy^~Kze@sPPf(hnC& ziM~n^QPVEGuR)#MRBN@pol;-_3P7%;IYZg>H^mMDcd)MAbae{pdU z431@hGltEa^?GvQyZL+>C)2|BBk;nVK1_cIKP__4+Rg)1(QjK#qg6~?BtjI@@|B0` zZ2C$K@N@(lFj#l#GSBQxWTG^`IKr$^xbYoz%A;rxv!xG9M?3z=}DAkP=keOE;zR%c7M zhFUxu%2p#{VK^a&23ke41IKb*J&6MwXOI&=YRJzZglxR8ar8A>qDWh8Nl{wwM;x}) z9%~$;n^Hy(B7A>i{_;4zFhu~pwNyQ|*8+GVzXmg3tOPn7Ye}UeACoonyDt;LsP;ik zt})ao%umvXIR=zcb`*I1IW&KGqzcu{jkcL%hzCOVB<+e*2k_%ng$0pu1M%0CexN=| zx{$?%7F(jLBWKR+wrtj+({{X%@rhYP@%(T}MDYSCohqt-+0EmsV&4bWip-rA@1;RS zDuVG&JYaX)lL;C4F1sYNTvNO$1n9c3$Cwx;OqDV)`Bh$i7Hw2|&@2c(LkHu0=>sLt~=82fJ*4D0kdD7cpp@0(}3;%wgZhG#p=uH5HEBlKK;JiG-uQiXaQc32KBQmtdz zUjok6DC>@T>v+gqPJdYq#b-IN?UE9IW)OW8EroQdG0$RnkRt|)n)-itD6hc##%LEOUa=93!wJ?VO4g8*H8 ztf0cBkb9dcHKJ`{}k%B~3PFYhGO67N^dS;Pz;aH0ciWSo>mR zaoGbXM4F6KE0=^0mzsE_V6IS8+M8Lr5g;2BA>E~%jK<*+@Z)R=>@?@DvvZ@eCKeCR zMc^9=SvK8;D*02^U)KHZsVvqix;MNlghc}| z58J&mQ^H2E-{-1X!%CD&J>&L68H>|C$~JE;OlF2e9@j?W&){VA9-eHl?6TqN8Ar}{ zp{h$TQ$@e)2KRoQtel}Y$nwPXBMkEaJe|qwn9`5Rin_eKG=e@SBRden3r}^iHJ%*S z1*kM5IOb)szM(EEdgKG^|DX}z_tkdnJ^xfz)m6qkr{aaR5@cK<6Yef}ojwCK16hRV zh|SkO@aZqYBU~S~luH{|O{%<#ngcKR z%p2c}DNpYd((MoC;oEMxs)8^PDCoa^f+hZOEc0RxsuMD2F&XUjy&(C!CAgnuf;;XM=Yo_>okFhbjywX=#m(ih?IO~fp zglfX+C9DcyoO};{9s;NwpXYy0SlIHx}j#r&0`liI`g{5Hx-IIwQ_C2w@agf==q_*6MAS-*Y| z*YIl%VibdjR^9nKB9o~>rxdx6&wFPphJ=p=!@g4t-c&D-5Da8 zf{Yrx?YCNwGuCNnqs`>!LK;a5Dh2W+7|b6c@JdQivPAs7_x}Nk%65SO literal 0 HcmV?d00001 diff --git a/client/public/images/Icons/WinterSummer/SOff.png b/client/public/images/Icons/WinterSummer/SOff.png new file mode 100644 index 0000000000000000000000000000000000000000..ef97be1ea5d27205b4128269179c55f3bd1ca630 GIT binary patch literal 52355 zcmcfI1#lZnxG3l(jwz;?*^Zf+Ic7Vi7-D8-X3LhDnVFfH8DnN$A!9+}!9fDsQ5QU)ZvTJ>7aCl%bN`)0;`akbwEc^Eh4bYWzbnc8= zdzz(lc1$hIZH-+BE!Hc{6;aC}%TXdx`eLH_+fozd1Ve{Wpvmj~;q}gf_g_u{pN(;` z95S<5zx@Ph^6`M5L6_+)4in|h;H%BeH;7-qTY+Fu29L`p{-@QTBAw6Po|Eb0UvR51 z=;bgT=DjQkTtEV#Hs5Qy!*uEQgqF;K7Xh1g0mG@d!);dSZW!qvMgTTFxA+*#o}rzy zjn(=YbNd^5s$8Vw^|RLnE4)w-7xT((hGNn1p*fKGkpEyGoOwXl>KZ?p<%24_LA#gk zES6!8C&AYVQnl*iZ5SGz1R&i8g~9>67$3ifbBS}C93Ubf%FTn!F&=US#$9j@Zv7gX zc<4S!PsGF>wgy?G8LOba%)YrG8b80GYC?X3uDc}}iqb53pFMlw{HPc>M#-8~7SP}* zEpi!OY#gT$@Bu+23uv8e-!7l^xJMD#IP*F*ERHY3e>C2n{>`7J#ZWajyR4?p`A37z zgisKe3T(cW0)Twu_>cw$IlrK}i-pzAPA+UPOR{`)37G*jgO@OD--e%8*y0SQ!D`NL z1cuF^wy{axrcn^pGZfbSCt*)>Qh{5~J)T7elunhO#O;T2&$gso{1ITt5eCwoqKB^N znJh6OuLHLchQe)%3vj}riy?^OkuV=rC%NSViqi2p-Q1F+=*Hz25d2&T{#^<}+9GoP zTnWVK{CxZl$I~yz4KjP`xsKX=&jj1rch;cpUS8Fqbn*-pu(@V17{TG#y^H6A0!u&n zVPt!YcU-)TKC`MUwV!}YzT$-Jn21dp6Cz(BbS%?dx=W%~f{XjJFg}eSCbpB)ci$7v zZh72FtqsgfBQwNQc3}u?qYUi@L282Sn6mmPwpf;@LHu26>Rmf1Q3rmpSt-A@z_}Rk zt@nM$*u<1aM+}E`THkviqBwjhj;>e)BuQhHr!YN@~*Di?V<&DyH7cn~f>mpFB6Ff`lt!A`)!!p1M+QR(qF3$(8 z3AFMuWkcksvimkU8Bf`z))N(twEK(@R{v=+>jrrL@EH=6cMT+x0ppIH=9m@t=;XW& zp1@}%X@E-a{o=L*W}?1& z&EYRu=l8?=m#m(lZK+bH_rABSN_JO~Nq$YMYGY-R?@fd*m?eejEpI5R2X`)O8#l*R4*uyhoZkWVizhVc zT+n-)5*K*ui*7%@w<&O?=59*JX_fSe%llm_XVRTftmj_5 z0c3|N;p%MTH2+V$G@j7n{gC5R?@`rD7Q_-zbVSY%Gt;ZXy^l0Y1c;rb0sf=t-7(Tn zv01*sJX|ydCTkIJfrQhT=N*sOH_wvfj{s439(1OrQ7VAcow`Y*a>1k2zz!-?(*?CC zk9oHNpSr*t@rH=fW_J!t|sAX=l%cZP>+)Na# zk^qtq!`j#qsrs8&F{2kdnb!p+V2@tlaq{);VuUFU@cA8>+`p+K--lk@WG<6%kM~Uc zVsVw{@q^m1ERv8eAp*}0?_FnAvU7voF26Q~#OkOk55NZw7;%oo69F&YKfOQ}=QY)) zlAIqg9FWY|D98(&Zjw_McG=U3b5DU0kh`YEY)PmpKQ#*pj&*6b#E{5kcSUb5alQyh zzWJ>l1XmjD81E}bI_84yNwZc*s~eMs9rL%8ZKSQZIB zcwC_%ftl;W`=!mCFKD1g>Nu{M2#`F$iz@>EZOqW1tTvuRM;OfU2T&oEIwV!peg2DG zJW~WnCQt!%r2sU|q>>Cx0m;UqS~6mHN#0gR@LLXwrUZPep64j=v9Y__0JP$nVqn72 zr|7roLxA@&I zWrDwP4o5n&GvKp#F6+;aBXMpsQ6Si-X#2OO5h=GDt-C7HR4~qB7pHYno!brk3&o!B z&hlY7cz=Nx`zP330eJtegJ$I{p2-^of_+}=6D&V!jN0G+@&abf=`w$h5sB-t?)mZ2 zt?1gOhJ%(e8$5|}qu3wZVb%lla`^?=v(cyv|Gw#d^``AH?+bgk3F+14IqoZYS2aB; z=#KnGpx487{1r`a`W@r+>(u4QTd&uoFBJngoD}G9;d7wVWTVO$0g44A^6%n3hu$7u zLVH<(XY9QkZ^06`n{T>ESvrnCgeNxZ6J9tBRx`S6R+?xJqYt~t4={xR43@9?kYsmB zdr_R2&(&#MP(kaLH5lv4iRb)q+CPDkAmUrPm6}1W%audgA{suRB)`<-?c&*IxPvM1 z;SPY^1LKu&OSnz9hxcQUTg*iCj7l0OaEx?4T&ts?Q~e2q%^Ig?n|O}mGwBICVi-o6 z=rl{ZobNJXP@9N$2ib((1~p^<-1YQ`+Q++lBYU>I-;HpvUR8sm&*>rsrnmW;z72TI z`Hp^cH97WrcR5#vOPm7Z+wo^So=03i?u3*@Y1l%(lRb-CL(Q7Dt?2bg{d1IBzg_U$ zd>%%7_{Z<^aAE~5Z;5?X^@@9#b6S>!7>=X`*m~Rzx@L4{nc!4eOm?Uun!w-Hdjk)E zKk>C|hCABE2!Bk`B&;li#9lT=Kp*eFew6=L8&y6_&ZkeDO;#34iXYQCPYstvz-+u_2JIgbODpn*QKU52w%c789qeQKcbsYAtX z2E50G(EUdBPSbm58za1p4e(3BMT842<)3+6jiI97o9h9J&3BWy2tkWs7cii^Mv5dj zBbgNH$QxN~Du;c%&J1dk4bb-IxpLugt~t{Yf$RsRXSfH>+rjrds!aRW=!td&I`#vr zs@2UQWoM-9V|p}45-p1$=UONwlXLlL{F%WE2Bka1XIN*bI}hHR3@EJ^HY`QEzwGLH zv!X@EP88+#y%YR3OQMKN&#EoH()wSzOsas^_z~!>DAwrwvQWBl%gO*9QeE z!1Au*^yb?qp!zpqivx++1xq~*Z=wPIW8tjT%VD=lzZ z>`NZeT&Bu#lbz$Yn0_U8i)kUSGoUQ3RlCqFM>g~Me=T@~ z%|UW}gwJD(lqZaC>7Bk>P^F0L!>`jHQov@V_7gLjDu%~N5X{5yKPW(o(1GY8&;C`U z%bULM$n>5$Q&;1N9=khNRLSmH&3P;}bR2+I#7Akhul{`V1KNYmJdhnr8UZS9T(=fm z+McA2Qu=d~fQZpdVx@E%)rbg*mRtA*;A~Q;xaYe$qdyL^KRc(;YBnw=W3S8hrHP3D z?p^$@k~FY-oyazoTsY{&fvwoeINWA$HQ;;dy6xE_wh*`QUqhG_c%nEiK=C7T6q1eK z8v4?2DB*1mxu2t;FSy$*4sW$F@uh0)(dt3MC31D?hn(>RYlkDcCmH&>*7l4Z*|sKV zzHXO6xSh5?yY{_7P>kB5x|ZWuk#xwZF{r>qT)!Z(m$FP7n?DZ*cg{>-+jv1!75*yD z6d1`3_<_p+$*)Dm$myL5-6LP>F}@rjJ%Qw(lku;2%?q#t-f?BvMpv&95_&|08Ncis z2N;x=ENJ9w6C^X$s~MdQ{^lV&n_!ujI;BX9zTjGa4ryyEVpF8~EhoTQ0zH;(+ws2*EPWU-M-|1$d5D zs^Q<*eHHuhm#O4Y46E%nI4lm!&64qzG`ZvHGNUA1xjnbkKq$Jvd&z!`7#Okf;TV_RB0Jc*A9Ytrjl(6Q&&qNJpR>fGvy1b-Cl}%pjBY2aA?Xb@k z<8Z4k{K2g>_j(?zrGT7kwvjM{C6I?~a`E`o31ht}77SH^`)qUGaJBx_7GM3dw-7(9 zZ-9eZaAKy9vY$9%kBBbFB4~Sl&zp@)U#2pxTzogF1UF4y$il5%972PMag?i7ULfhM zBJ}eGF&}S;@#lFK$CMK`u2{Ukta$JI^tQC+@pA8-;j?{_Hy$b4nlOL$6C?2?PsTWp zq?7nnQPmU(F@8q&l@GhJ;>-6$L;MoyHfx0)95&F($Z_vnD@pRTgK*-4g|+8Q3!!?X z7oR>MFIuYWL8#t-onqqstLliWvw(ma24;{Nr`9qo4qrmPSZdP4g&P2%jWP>NdN;^FI7xE>+W=k{r zI^w$qE3(CH%Bdw}LqVhya(s{9c(4Q~d!O1Nd4Ar|+X*&DQwl`_i)vprX~4=hmloop zQV~9f=hdhxK+>2Z;+>&aS-d6M`}dEr+nQMGR%x_TB6+k~+qT@mxQw`>ZLu*|OtDy7 z%8*&q!ZzjZ>7EJ*`iReQP$h1Gznh^2)ZY58raLpLP8bg7dZ+@k&^WN%3Htn2LP(WZ{&18{@Yh z$A&I3D7%x!_1Zh8Y@3k09IEq|*SvJhn(PD*?vD|PCzJGm=EnpC0z220C8tO7 z$~a}3%Aw-39%Y!_NRUfp2~ppi*=WQp;$tp1FYTfk^KI}LDKhg3)It{w(ZE_6U;rRI zVfyfddOjCW$nb3&YksVRRgmpKT5>3h6_<)m0xtt*r+S)G8;f6$X1g`QVPK#fRg;v| zPu{}T$x>{7nw}|?qhPIgq&WuCzidws);PQpFwMoLVD@|X#VQVo>e`M6zrOn?7}HTJ zZSBSKm!*;nJS9^y<0IeRUVL%`4KeY3*g0* zP2t7oG!O<8nG9+vpCG((iU> zDeqSfVHl98_6vsFT>(?RW*&;#K7XWfrXh#!=mIv1_VMEDPrwPlXr@RENS^&RJae*TpbFSM*A$YBjVt z9)t=;C)i41cinEnuX}dp2tjt;7Y5yq#@#CdOGI?o;ji_hu45+;s&>8s958Lp<$?e~ z)>hjZ@&JoSMT=54NfQ}g{Y9H;8q=s<0dM`mh|IF7TQvH2y}@l3OH&)}k;|VkJ9g-P z>x-Y>^rA8Vgq@d>SID#w55edOAh#T98KvvPD&2M5azz_2f{Gm~5%f3mqxRsVOuOlO zQ_)xm{BvpIP9|uk68Y^^^BtDtr*L%udVkaK00)#eUb7i|MSB#i-7IE;W!CPOS0&W) z@vjz(z7;=~oVs-Me;`{mT~!|i`iAFTaOPE}ev%>oS%9Kx;$8y} zyYc7q{tNm-7V|=FK2uO%$Hsz0VJMco(rY_Xr&gp*&(%%Q{U6fdtb(fS-bL~;8+9@r zn1&xXC)V>)C3vLsGt~3ZMPBeR&63DX7~YjWFX})$Z9n!rEtv1vCpV|7Yohlz9Pk7z zIV?fc?|=ZmQ6CTeQq6PIn5M_gr`L7+Un5X34?~a{{@W1`q)l(tO*yXS#e4i4F44+g zoei7+J!LKOpByvQ2s&v8BTC0{BK%W;*5uUhE2vch6D3s(5)tB2HD?w?y3n3{H>1IC z%p_gp(x2MU(5iAP7=%||upe+{sdG74nfeZlATrqULucgYO9+(F?u*2-t<*w~Z0SNN z?@H-wd9AAaZ_BVIi2Mf{S@VJ4R+#@dt;+i89SAwq*P;qAqn?xL97Q5yrgjL=hO@?r zEwi@8D?p0}Tv?B#7MBI0TIIgPZD2I4)X&ZoPOHxjNu;IGzlF}RiyF;l@|0p!ShCH? zl@Dm3CGGTCfbdTT$rlmIQ(}!Zr$>fe1>(Pym5Sj8{pPAJEp<6l#;N{kF#c3CUM{SG z9b|rufj$%FvHr%h5LPwiT;@NEGc=q#WUm#69zScrEe0)i&Dy}?^p;<;UeClTOWtVFYpR% zYP1UHlry)n?-x^r_}FyrQVw^jiJ43ogC}1wK2p6Eu&)!$6P9t9`2)?J5od1yA%Rrt z>z$uS^l#2A;ZzxRO9?haB+C}FyFU8#Tzk5wDqEM9q46#X1F8i8F%&{nL7^j~d5R3( zK_)gRL&n64!nm#JeWfsOl8uYh!G+z)STbZo2K7RfnxR?AcDh^qmqLd^>9#^gIu+K`sM4Qn_WbC4eK6zKBBv8{8+j6yy!)U&5j4DPg1Nv=OC5R zLNoEMMa(TNQ)N5Lkq(11RL=1nS5AW**9_MDaqp&udvkGeP}=Khk>&o#Dz@5Un3oMS z_)Vy>RJ7!fCA9sS(&K%@g8KzbX?}IxJ{5E7NJ`+8FP#83N~9OK2-#6U+eWEh57V@Y z;w2?#Se{?oLglhYsB{)1>D5f3)T!PRe-|&;nvBQi&Q#lgzKhQFESP)*b&Uv_$y+H- zZ{<<9-XJ|)bYr{)t{UHQcd=Vq2qLsSLY*)BcHzuzF)%pK)9>f#$df0Es>Q05SZN~h zQCX#7-HmNN+So!0oAp0D?tgoUEZeG#M*@ItuITkuuh~RGJa^Ak;W9XI=P{9$9tCSH zpO>hBP4GM?murh5zuw)BsEHNNebqcbeD(S+ZzEmMf%}ke=eI?8%khqJ3p0oL1}gnf z#jkb#nH8e<@KesHk0S(|Ua(o8?S3g}EarNWObcZ8sTp&!&loV8E;HXJu^1(WGHHx{ zKOUOVX7*Datva@d1Lrn6wB8f|Wk~G%q4?A;6rTBA=XXRFmxcvl2UC zcME^4wsv=8bt7RPD9F+cv1_F6`>u5WXA))W7oI4pn6vjh!$Yz02{xX^GtIhNKZCzc9Tb2((MfR4gzCi_Nh2j}r+Hj~Bl_bpD342K7e-d#G)UB2pNgFVx_gQL_u zi^xi@mma%2_1HW@GGSac;YD~Y7RT`^q{N&dTLD+TGs&o!oV5QM7OpuKAD&VlpZYg= z$7f_3qI5demYQMHKcW6_Lg~E|KKY3~6HW(O|Cynu{vr2m<-u8Moy9~Y*Xy>ebB3FW zgX8!#oA@H0Cy=XkqP+~e)%Yki$0D%v5?;$>WB%V%*n~G#0xMZA%>yg{t-lP+d9B85 z-hsJB3}uc069u?hL5; zZ&A$$L_NU@pbSpzHc`3iQO`LC7ajE5kefwpaomktJ~eln^{)1HtX{1KY;gL$=e<2_ z+7{63?xVy?OKpBO#>_9F^b^>AOo(E!@9XmH&zwqVy0Y0TmqX(j^xEuB$kV)1NoJJ7?ZnjlZ)v&?%DH zt&nmLwp8qUEMNBT2K8O*iErDHUxK?Ne$Yo7iBmQHn6DnTnve zh9XfnemmrJi&6i(l0zP0&0Cup;&Pj1yB57ws?cLIaB)Lvss;N<1;P=Uty0*TuXX`G zAHC^*m7j#Tj3{e-3s|qi-NcMhDF!9~Hlhb6S=$e=DYHXR0AXK#PB=${_$}sGG&j2Z zH2wLk0ftcb9eyG=mM+hpD;FM@v~D$eoW@ibCB()5PQ3ea?a;?i$64PLoy(l9^|x&1 zzT-aj9FY9d1@6qFM=dGAz5JUyQ;_Fx3e~9jPjHGe2KPMYH5T5aJFn1hp5lk!0BvV{ zn>4fWe2XL=vgi*RjrC)}SDlyW*X&Nu8&zACzfbA^W_cC?wo;>cZ*2Ngrl-%0PNt{X zF}M;VLTfRG#A~pRkNzAbQ;uABVw~w*Tx3dBq78LQtoGVRydKmx23(3QRF0$V)mGjS z?K9T@zLH_iA) zrt2n0V*hzZstivtThonB@U>=H^xAT1&#yg}hI<_TsbG1YN#Un1+Vj(NZzK6+>B8Eg zoeuBu)Vab@e&uWBp4Zd3gUMhg8x2yJe3mx7QkZN-zS}6sbosNAF*k0%^8Ra?1Rh+X z%F6MQQW?(ew{d7+?|ER+=7rSo4zZX6029*rkcx>$0wh_`_jl27ZTqp$PbYQzFMjdo zb>UdianCA zF-t_ot|aIKA?{s=7}v>j>%3hvaV@@(vatwbSZMz_Qzfq|9?R-}zJ8XzjgE)z&!u$; z9Pd&I5p0Qn&GAK(H$EC~W);90vn$!#&ZfOw=u<;~VaB_i0uGae>`1CQ9@+6XULRa{4|?^cV1ewoT8Pl(aZ=U4FO2!DLl6cqzxOQyj9M?u@*ZFce1}r zlvh(-#$|QkoI#w`GHv9i^NlHVBil>OZT#r;ZN_EQu#BBJb@ZBZi#rgP7xWuzH|;Zz}VG3=pD zEadi$n@L>$u>#>jaTPnI0i1)vG@<1zfpf2{=KPv54$kme`2^j4H?5hmMQ`AZa!J=J7rHB+z{BM& zjlRcnxJ$`-n>TBCmyc|H{LtsIhNKrJIOe!6i|v+A;+f*++l+vbilx}0f)bE^;OSR0 zzmBadQylVLI0EaEXs)9>W ztAKZtYG4^}2HMY(E+{JasY&oOPvn46UDcs>b_%l-LCa0@reCeh0bCho9&+|~vOT;C zuX#P#qm_2|txp+WjHQ3Tf#IQefbjHBV3c)&UP}>5N)6xaBKC%Jq!%Ew!Zp&1$GIV> z4uco8S2SP6BErB@s_{&NvV%=@|4Vqz@wpV13oh)i4}a!)`b*5X?Sk|h8OU($HY(pl-GL)nKgtBDWBgUC_1k8Fr;UlM-XAr==VCFgm1~Pw5c&hnwiRy8A#u4p_$k&7t?|pq zm)5Iugn|nN%cVVehM-A4N1@Z4C37$IyB%wl+bVO&-S?Qw$9SaM01JE#x_8LVG&~p0 zw3@zs0s=^;!f~;r6RyuzJ40NO2?Ir|tW8*vavW4hgW1o*Z=+sm{g_B?mnJ!CT4D_P zED@;Y2#v3md;PU=gq7(x-z(_L*lIQCli%HfZhEYcRQQ?E@|d4}>_=tM+2QmAab=%5 z>f5G9VWsxXq6wSzQ|f=B(2WF}%NwJCtYYcrvXQU1M@U2Tl!zx`Ub&1ea+Bz4^#-Wl zk)N?u`a=lO9xUbR8>>om0;;qIK;6%&T%z!rH-2`;*0SO-$4iF5`eI=58`n4PCS~s5 ze#@wTG9P0x{ygz4`^f%H3-{bmvmf*P`v{(Kj0~3U-5dkXn?P zpX=!PoAjiZ%I1N|>-P8XCkOI2muv<0V^ksBJg#(Wk?I+IaW$eWrfp5e@UhS>)Gq%y zGeKP|pK`kHwv24+BAoL!#nu}mu|QDT%f9>dD$Ijf*#-dv#exQB);FDpZF=(8_gT@= zj1+plb5na})rpYyjJWB0ecPW_mk2|u;emG+^)f$@kZO)eN`2$P$=^7Bh+i%RGSbYEe*t#ZcOIs$YB=36%2S0)ad&UT_QfzJT3cr;;_f_oE?6Z zd#sx$(+wgKy8DjXWPxC}I>kMhI~kfIigKg|?Ybm8*_*}%Fxalj5$$>)hjxwafF<$c zkHMlo$Wl@;uXbV1_LM^`evf0yK#c6)$?uY(AWZLuMZ3J}ZrAS4niZYR>op1({KlsI zldJn(&=ZFM{by)U;>d)NS^J!u+3yyIrM`FaRblgqBMw^GE3u!p>jo=Di)0n2PEBSO zz%;LWq)N=bo_?)j0k-zx>0nRn%Uim2641bD#`pe>9wOGut!lZ$y9Xo*&b)Ub8rxg& z6)U|T)VH*@3H($`!;5&~5GZyo>E>V<2rR^wX$cRRRA+w_(k~Ua4?)t=Ha|=I&N-$k zfXf32Lk2TdM3*sLJ+OuS-`STrF*j@_Z1Gg8SMBHbS~SrxNT+V?CBD;q((azKs}XR+k2)zX(m;XwSvU7lowT#=G~I4 z#NE%@OUj(b*!ZFBxuJfo`fQ6f4{lrC>!A@L?B%J3QN=r9y<^{@is&~Tiqw78IjRe-X>OC*m3P5aw;Ws5Zt9Av zI3vLO0q25rB-Xlscy5S1?`-!wFjs25W%WHEbc0CXGwytw0nXPp2%#dLANuD6wGkNM zf*FO2M$SK7{!bqHnF-%)s_H*D(kJji7?@qx+ucj!KL#9*&S{`MGzOZcfK@Btfu_B^b(hJFxhSym5XKLf9#(1VlK($yeDQXpZvud7(9|sr&>eQIKQl zm7Kv8y&D=R8?pWW)Eo_pPZ)ND+$<;K!>*V=C*+@Xl22;3tbQfv; zm#dMBzK`0fUh;U7h^;wB&oK>TIqgpiB5&1)^P#g~LKT{E%Ck+=Qnigpn__r!9A9Kg z4jMc~nT8GG`2K6{tI5kj`|7v`%`*u!+FFf8e4(1Y8Vnjb}XS4)?EJ!fp{gr&|3?;o$w zVYW7HsLEt|MX&<+NtE@qr?-VR@ggDe|4VCp^Fbj2GR%g-eO4Qri6N29z=qB^o`JR? zmOAPC^4Bhz4Lhokgc{5KX9$c+e5F?@Ak@hz@Z{OPNc-C$!rVS7>ECTj^1`(?JkheW zbp1&vss4wDC+e;(s=4Gx@-*EdAD=tCplAihLgo*8ptY6C1O=P+TgVv z$>%PL?$9A+JTw1aleT+bc-nkBnwdr6kZ^r!D3#(`)l+KZ zYl8>|K^d{RLpa8bzwVn6tLlhY6cYkQBHMuMltDGRrqMG+`?DCGJglCSB*Nwn-eq=oqdI}QjrvFCkVWw@zyrcxGubGlH$UWSYq!51m zohnzA7V$oP%0LJHAt0q4?~iesX9F=rf zSNAJ3U@47s4v}xC+86sX7(x3(lMLw>qk-do*hERpFTY<4HfaEfkf_z;Y{-v6=s|!l zfL8Gq=MO5xFL?4XPb4lbGGi-2o`U$`RcOGgx7A}C1Hv2~zibm0O{leWe)CYegc?6K zKk~CC>;@Nw^dkkHn((noGO-2v@Bj@;7E5lQgA&BHHkn?Geq-xKqHBc5*bS9mT(E2S z5)Sa&LV}&k-sg!iwD$freB$2NmH-bg&*ZSs(Xm*B+@*#1Dl9z8~rf1L*v0}do z@&)WAmS?PkFkm!q9;-r3_MTd`2{aRL<5jqeki(|LzNn zN$M0O@HB&`S}Yb(Zi&iEu}M$*6Xe!D8pir~q!>W9r*jt_k z->4+c_LJm^tY30t&;KDmbKiy(-E;M7^sj9fk5cfYx#t)J80){I<>&BC=Ki2&4}UdX z_|h&oiB=W+B+-ZvM7O}Q|B8pXbSM^IX4YUxBf-wtW$FG&HG1;whOzNqhnvHZHjnsl zxbG{$V=@%==Ii@0IyLW{MjmWA4armL4O7-X>OXrBMIeQJm#zM9@sz2RhAC>8b1uvk zM4jE25D5m$F5W}^*mJw|HgUEX=VS?<1__$rJ0AKOdYK9Bmy$1)U5F>Wmwwk3^Zomb zc3ch3)WH_xF5hYntD#K?-k-C{FD9Yc=0!LRa?|E>+j@c@(|R+b2?(!!&xfd1%V4c0 z{MoAloFQ~P(WF&hWqVp}!~;(wSx!n}r;NThk|3;JHNX-cZ%~8)vY#E9*of*Ww1Mf0 zIu$WEQ3M9di$dLqFYbFu$j?S%UNXs_oT(_aMKyE+>+f04*b4uM*qG`Ej*midTS%Z6 z3Uyp!&uFPE3s` zybQ@#q&lbYN$6QUf(o(C$RldaoT&;BBfo90$Fs?+AW*D`+*5SWnKzgf70Bc@6h_6c zb7(!Gmso|46!N(!(Wx(+=Vz&gHBr(J1TB8BUxZ90t||-Jcyn$-+_e`ar1GB#cElWe z-9LXWmnv9weFjsn4bs$t8krI2cj&0|F&|r>UCJ?aa?X`ui`XLLM5FfgZ5T$5+3@oq z@?29_Qn;MYuI^j8@5rimGOssz2RKJY9AI90-pMM*>!&lnr2UiIEE z^k)owP~G=$d{_u4_OHKU$-cY@5=&5~PZEuj&`K!sgLooyz!(>tjLZz+q^c&h-X>YOB`HSo{Yt!bfl55)hKD( zmTcwvM8)U37vNn}khf2ouy*9FM98KdNMnIIdL*49ul=#9x1_VSX7MI(J4lWWOs_ARGnM`$Q`)~YwPCpxU8R6fTFi;u-7PJc> zaXc={EsrGZMZ{wiWKL4vkb5xX;Q)v)jWml$u8T>GO5Ygj938YB-ognAod@^H+EQ@= z`j^%9raE{?^ zD4<(SnKKpAdnj`a?MQ6{_LJrHn13jsm*`2zmlp@ZB&b3l-I%48Vqh5 z_EHWvmZRILKO%)IkaZ7l9;O2qPYFOI_))m0)k8V1TB>96ih@bWp-Q1k-iXs>b*0Ix zj*<`$qbQp$|4DC7vXTmm>CTuV!pV1)?A`wX^7-0aCFsm9l7mI94juQUz^P(;!3gfP zYXvtRC!lE>%Na!~&|aPzcc-4_&J#b9S(j#EZPQ>U4AXySd>*(}O+XC&wTkbD?lF%L zm?nozWU(E<__MX*z}FWa*>J`AiiTJ zX2-h!5_Y6yf2YJ&|38?m2%av+{Da}@ZX=e|%KptrafvH>j(Mr&gX8`q#ZI|1%@2-C z*ZNlz1@I>R;kXYuY(4lO#7hS8#T1wSB*MpxoPRX%L-GE1u6rGs`bPo(Lkrg#9SI+L zor99u6IXj`7=|b8($fm8{@}i7i8F1pK!mSI>Gh^D4jAuw?YH^>iloGd?a(}&jk1x> z!#!_nzxKV7yRCR9vRaF-`a@ZXIu@5Vc5JO+@RESF46D-2vb5aAo`}phfs_>}ttMV% ztxdyD47}EZ71Kpt?cL;tgeLV{rxPrZCIPfVDDz1ReHK!8L>js7;T0BAXqVlGijbQz z=rc*UwyXzL+t{ZKKiI@EcTMvSjuh}J$Syw4c4%Z8_j8sp^IaHBll8P#?IS^^Xgg=v zciw{5D`bIf@!lo3H+Dz{>3|i)>$&u&ancIpx4_O61VT(s8CQ>H7hJElDO{6kVEiTs zw{i}$TvI64?3kzf%$F72=!)X4^Ttlh`l%^u3AObG0~C>dAEH0Bbcx$+9}kyFUFU1( zH!r~>$3OjQXTKD9*Xo;SDY6hqKRe3Mrd-rBB$6a1jK`vJ#iR$!(Sib`#d?juoz|PR zJ4qtN&{;45@8QX26RBI92)NRUX(pw(%|vnQA>HZCU~dqZe>;s2*E)}BH0Y&D)#-(5 zd@*Zu12tQ3_+pIQlb8D7PDvSW@d3y+8--kk9WPg}R?@z4b3nYCdtYP^I{mE_Ur6<- z-)Zz(H4!mn+pEKVi+YecR37Y||NA3UhwBXJ-`0L*#a1aeBCyMsU7Ml*X(ad}-kl3q zfZMwRV;iD8t4B?#)<}t7JYLVw&>6SZ4bn=2_&PEg1oM>f${T$)DhpphEM6goIWkS7d0MLw^+%B5pc?7q>uC*+uHG;Aa<3vjXM|`G0NA_h@<`LiCaL4l z!zi`((A{vdq<3RAF%cVi!(+?lK-p6E#*G6v4^Do!TMI$GtL0 zJX9+$zp(Q}$xedb@eLnUlxt(r_kDDI-C;OkX9?3xL$%UwQ*)v5YW?p@LyE8FLV|Wa zUYw^uTI}m^oZJc@q*dIyV!Nl&RJ0a@4tPd>Y^LB&*?4oa^x%B&O+B(;v3E$BpeYZ& z;uU_q_&?wqM2)RJSYfo>BL3(ggGE17minrlV0YPG>O`)?JuAK+4~Uksarx?f9!b6! z7N>`_sqz|#u3ar-!@8vWwnH`nJEL>Ll?98SeWJ$UyU{jxTluRku2oI8O^3?Ee_H@O z>_ALlHbLHG>QytcaS~v)c$w1(+~SVE1m}@O_ZR<-VK6Jq1*GdkL~`bNzGH_kX$_m) zspNg!X$9#I70?>li470svFAK_uDRoMYU$#$RF_ORePa0aBrOoEv(hOsw<7R7$ugo` z@o5mfc2^#zdJZQ3D@MSW={YH~+Z%KsnJbFBTGp zptJ9L-rTDAd3tNH52nS}1*v`G6tWIk!R=T1?&4=0CNtxfF%iXWGxH|lH;6BSSupF} zil`<;37Zt{Vh#C72qS5C*gMq|8}Nk%A0A@`{wdNpRd>sc%5a4TuX;4%_8 zOO{OcoHRn8e#qk1UXHhI)0=XdNNsnr31To zC`Ctof9X270%`Om>-E$+Ph<4aDQHTR5UFl1d1&Yc97mvYiabITsf#?vk*i^2c&i(j zB@5(Gm}Z$#kzH6@!A4P1 z7JtZ7z?mleq8nYYe}#+;W;gYW|BELEXCdp1^U~XtL&G4M$!XzqvFRjF7lZ$tl60K_ z(S&O!mt>>_*ZIeNZe+6hvOu8D&u#qd46|Q*X}5{kLwR&9V|K-t{O>}}A6l$k7~*rQ z8JN2??wCKcPhC>48fs^RAP@D7-wzZTZTY_1Yv(HkfA%dl37@^>rojxFr%Nl*3|H%W%?9Kvh)Eu< z0bkXxEbk5PVNBDANgQIS>jqcRBw;mnWkO$Y(dc@*&YC0v*VV6H7^(9{cf=SfDZeeM z*Imdc*ppst_v3?1ozyB~=$v~FoGyR!8|x3u3&%#m4-`v#WvA3DUO1>t1uB9N7BN;? zcQGXP%@}c8{{^*Fu-P>4_x}N??NepH(;R>XQuC3Y3qC;Y=^Rz^D1OPF#{Qi80ouLj z14y+}xdu7=(<8sn)C_}6<-xz7OPMk>Xz+`BRP7SxE6g51o5P5XLSCW(cKttP0V6-~ zqZF!5;zSl>LW_3Kr#-#OvqW!>GDQ_GmJ5t6C+~`4)*gOsxUy?sC$yh0%@a(Z=Iu-d zX}!-%*wRyfu<2>yuG{YYt;FxyeT%YvTG~uvPl>}J&H`GbTH~FnkPzI*#1O(4ha3VL zREn%lMF%_Iu#V}6J@@Hz1UXE4@FBtygBHgh#YZTTtct7|>E*U9Ghu$6HrP)7|GREy zOGBG(cY&|krODuh+rw`)zq-5M?+$mUxIN0hHelEVY&C6RnJu8elaYlQ<%(%?U~bih zM=UMw^s zHvpLnXM18))9;#&_xw;feRl8(k{98g99m7?m72?^RC5NuQ9?Hh6wCGHec_(WDX4W& z!(njJ#!qeuz$Gc|iz6ZAbpD`I!80>?C>WzHYU$vRSC}?sqz1%V>vrB8OmO z&#JF8_zIAE3X^RRCJUSp50#l~h1Bu{dw*qLA*}u4@=l1A zYxm3SSIHY98Rph*u%$X@zk-EKs?v;^tqB~LtwN4W2&`giB(v^!JoPDkn z&$lG4_Oa_^$+WgMVa{9306q{DDG#Y8VzL_4r%yzSukzBWkc7BdWRc4x9*c#9OhzB>h+e+4-?7@?#03mh32^FXQ*K z@y#pLPkvj-BYlAtIK{~AJ~gl^GO5YqpfQrvmd8lz*!gxTg#QwLox9pi{k z$U(hjoS0}lqWO50L3QG$PMKHre!~R~j}&)%jtk|EJUDyNMhB(AH$12P$>A@&dBkvE#zEcVWq{IE5@y?f5=%%_v)jFK0Gu`>tH(AWRO{PlDB>OG2it=s=3g0tO zp@!pq5SOA}`DHPs<|TvohpX!x$08LZ9AU0TSvn6I7@Uxc0b+I)(<|rfDLB#JbHYsK@~znx>h6deV2@HL$52-**7F^9!qWD$_>^uPVie4!((!5x&s7 zOcO9YbP8RI;%fRUkl7e`q1>hd)ThX#y_qunEa=BH{kX~PswFQ<`P;$F5(i+S?C=vm zA7D0N71*1W3HKgn8Y+8X<9?%TH#mzE9y{^8zC| zJbQ;wK4cU9f@A7fGUQI{SAA0_n7<6x90iR2^~Xjo(S|B&a)(4lsm)PXtNMIUaN9cg zYS7BB2I@WvPjzr!3PN9W(#caBUF*`o*sT6IcA>DA;Kz5$XA*CZ=T9TQ48wYIFscf~daY|-#RwgfgGAayzQaRUh#g`oLrNu|gYL3s-;3&* z`Qhva?R}HUHH;5{?Q@LZ601`*#N_$y-W;|?DY_LD75HgB_T;%SO&8Qi7PG2y@EVc_ zo=mBaXhBcbmm3s)t*dehOfSx-C2kZ%lL}h5yrq3iluRj<#V{Q6aw^zB(p;X?4Vav9 zqce93T4og!6vj)vCPGq4b}B@>=|YNa6dcH@S^RbcV1itS?3)3;U)#X_->jKjkkj3U z1nfaP@NjW$A3+N}5gn9UT$9a{7m-I4q5R9xvo6RU2l)Y|@%IVt1H+FWt=1lPvY};? zi{fmcBzLd#C@Gc##pu9_1|E7J5+O%E z{(xzRHH=baKhOXiVspXy?H1+MqV+)CwD2PB00qYGO^*ko6l|u*h|`%1TIJk0Fdr=h zP`*K;I6JK43j{eJz(3J={u2cl;_-d;J-KP9k%Nlra>KvT0BqX&pJ@IJ4f5iX7i1XJ zjWlmPyCZNf{(I7m6m>&Qx1=1uLkzv5yZS%t zJPW(CfQ2UV090omhO!$UlYp6O9cqlry$&O6cBU@F@ z!)oT;Pg8yKES)TDr)yrpw8ru%qH?ET3h5Lsb*v8vx1=#7$%?-QAzx4iZe+nJE^J56 zWA{N#%=0vx960obt@y!7)z$_~Y(o{?z>w_Sz=Aj5fJ&|?b;?C5Q4QHCilOHQfpUue zsUMbMD`3M0Tqb-QKHn%r9x)q41X67g)AN0L{&?%2^1@S$tx-yvw)ihy0Vn1uP~X-& z3o*xWo3^gKP7Hvd&l<(Mp2vFBEZ3E%#MY50U~axFz({cYYYh(&%B(GSoxdFzDK@y1 z{olOwf65L;q-s>dOMpXnQLOpF5`o)l$GKJNxYGaA@Ye1-I@n)F&Ahz~TxVMb{xFXO zo83pXF=Ik4w>exo(a78*`dLS_+q`Js z^GE|^J!2})v59M*0k4{$#d?52&t=&RA$*QX*TX6STA#NaE1j;OgpeTXxIZGH10jEW zZSjDXJjx&GKH{i_Lmio0r!3c@z{-u=v?Ay-fvi<`Pq11B36cs5K`1FhiDm^|V~8&Y ze8MEEjmbfPzr!>c1j7+>YHQkKkNOtakc8#!3r8^vms&TFj z3qS3l_@XVfL6#~Z#UNp_A8vQEVaj!UI++}zpfO;#sr@M(A{G+eUgER4@BddPaQO!} zw=t#X5yL}rSD(?_mFxV9UUikNGmg!wyr`y zAs4%jgjH=&ht9T+ppk>GRqCMJqPnu%K>8Bg_fc^0Y{DOoS+F9sL=*D7AG6?y^hP(W zi$dS>%qH(Yy8?YrUJPY}2PGdM32rteAz_VJi@zs~tpQK+QJIG@bkm{aR`fQ2G#dmL z1E#)vN5v)jTpR+scZoH2kH$EMea%-=XZz?G0HnnMHaK*p#rD1^?7Yy}5!l1(!|-5B zz*zO!6VX3|+w!9Rk!&-oW8TLk+wBWYvLJw~?D@!ImE=;J)vjg7dO+~<91VL9^0+r% zCT|M1bW-3*wLydo57p=dZGirZFOL|I?6xb;5}jShNTvFe^%I%`j)ld3wv)h(TV;bM zG`8V+Bq-Yn$;ybbP9LmLDFD0<4omDCLP~db{cBRYi8Q3YM@4eJ0$&HY^x|#Q*3%K! ze4Q)GXFGT+SI(H>Kup320QC|I5;kzU1&+p+-_CpG_AaM(;O+-a@3aMTayQ+HYf76hf*2ngSLOpZcUB%GN07^ zVfm7*KaV^8;}+5ZM;>Ht^VCjk38tLFfLLEFTd(tOHzMkbhSoGhS3S7Wg1oARh z2Wa_YGB`1Wy|HjJ_mq~F?rs11ccbEM*Q5vKiLDq5>G7_Qul;CMKeH%x_w2+ zj>5I!k?zm5wFx2aR#mAgXeVCU#4f2yMz$zZ*6Y#|7FO zSXrJe3~A;oWUx6Eti&i+;MOg%&4RpaYYEss1fyKvSKGOwd(@ORJih}*l=^s`)DtG? zMTJ@r^16cCx5V)(w>!XZB}F`PN#USf3JR7#U5Az(d6V#4l*NB;t$O=tWA?TyJQ`O5xD1U1oqKu%tza zASZ>6d5f%HpQjDT9S4$J!ynHz>M!nMS%Ou$feL$4{sI0(6nQd7_l45^T9UFb2pI^V zES+GD|Gnh@8x#L8GCpb->3zX<<}(SUsGb);Z zV`L9tH3rz4O7lv%dW%d33Ve-G540I7FQ=%bkcnMDPzr_7@2U1%ds71RRF*lQ+m3A% zHA=!It5u>NdChD{dneOdfN$GI8*sD=T|373`fWt7WiA_z z5q#adsL;r}O_(4akH0Nzr{c1HAEeSar$zsWa25m#`|ipS1<6pL=&)8dXxTKAo1940 zGH&W!o{KhQK=_(knKFl~!aI4!G0Lf#>%%|Q7 z$VL0?P;TG-6}_gMs3&4zfb$TAK=U%ANu2l=BDncAZ0{(++Z>-M!(bG%s(0@k+nkuLU;GoEpPAYH@)0}3h46pfRzM`eF=`VD zD*y+t$>Dz?*Sw3%sT@x5-GIUN>1T>WFhC)1PL}BZ*JJVE(}PU}Or$e}h?B=wOFNu9 zB5J5l5$p5Q^YxD*G*aV~N}TPn0l_!@M=E?5ahhlS;-Gxvob{~^o8sY0$KCcIC69N= zvOpA?=j`81pO$*}Ant6&fb+j7RRIpi3B&>rn1T=55}qKR?62cH{3BaSMd_c&b#QM> zJfY-2IEZdJ=&2HU{T?H8Dnuk`b^LtO9| zJii=;3-&|c6v7BgISFj?W(L>>=e388Pg3N+C$<4B4hlNZA#L6qm9D(AE`ip!H3<1rK<#sk-EqH(;LPUE z+O{Mp<`*-*cP<`?C7$SZ0m=Q?JA5Icw8#BX_N{-s#7_rpp=yLE09#v1lFR&gwB5?} zuW2GDgU?(7j~=*pD>i=;lo39B9MZRt|J!b}x7ZA3?->^K+L*F4$5Jrk`6co9&#}s_ z<~3LBowEMMGRKEwzYchetpb}!mZ$X^Dw{Kk%r+&0UOxMzpaztV$>ubPatUc%3=#lL zlqx1t4*U`?-^G%u!Y0C~MRaHIf3+}X@T)7(t&nV}97&N;W!spE$QCUZO( zvs2#98;Zb)`oJO?{EHS=mIBTcv@E<;wxWI%+81zMv&>2-GxWbYJf=SpRTTG@@kla% zsR5F3GavVY?kvbB%Z~fXtu()?V52u|mBhvF$$~VnV8P6`KwZ852_f>Am>!m;>#QfQf?ypI>DfGTBkXF)Kk4t3|1_ z`S;qq+}jy_n)}h`w(}QbpBx2%F#}`QgN7fOiL0`e@;edu6#Uk?;Deu6l|JTS4A)&pO!?>Th9F53pI%hpHaVmNu zw+n0y!6fXF@`Gh^j;gW)hI#P=N7!Hu)6n!x4BYQ#nRppW{@_iZf(kS-8S&W>jkete zBVDeY5=w^I0{)N_U=x)5zO}jo#j3ozPsUl($6Nstiut!WfON|vDcfCQ%RC@qZA`Wu z#-OpBN525)Wow}7FW4G@*Z$wOm)`*&5`>i^R}0<;Z=VQeI!RK>7Ttgk`Kx7P1&*y2 zqvpX1$6|T`edWPVr76yY|4RwJ8gyJa0|bgX=PbgNHWad9fMWbua)@5R=w=&x*jU7A zKJ`tK(x%U*X+VX2`A~Uf)r5T@=f4)u!>vUtkf}_UMp4QzoQH=Rwnk&#M&urumitJa zfIVSxEW_D#Ix57{kKn`wYnwk{=BCL2AIh|WrADeF-_vcjASj>CYs&|D*RNS&;)V0k zm`E1)k=0kP@9CXxn;iNpMC`PZF*@-JbEsVu?+Z}TzF;LPKLCdfYBxCjEtDu^ljo_< zC2H13^p$B9nfd9+yb6~H*&S$JqtSnU3PvX~gu2~de``#)tnv723G#&BmKfpf7Hk^w z!tsH>jUDPJRY-l89MK3pWvT8NuV}t{Pn&D+7Z7dt-x`W^k>Ko7V$jj>Vby(b_@%yuFNh~M$SD~(Ilwuo32#^GX zHGrrAIm#akA>9xY9klcAelo4rm30&FbV?Nr@fwT=1~BU&0#x5*yIt|L*<#N2aI7ET zA{OyNd>u%j)h*waF+E$;eju+df#ugR#B14H=L2fqT|R;7w7OtStj@7k*2BamU85mX zDa+FK?EPjv{U#$k*UbVJiGS^d?cgrt);!jrIi;!7a-AF737_q{h)R~mp7YDxm0j%y!Ckh1XNntHcj&1cZi|)y~k)ydQbZJ zIyt%`2<)lipDTg)XCe@urvhqr`_tys4Nv>d6fMuJ`pTgILk+TUp`Z@~Kclu4Bk^td z^T}&`#fuMZW(#W}HdW}Veb0GC*XxP_!PIc=RAtpgDCH=tVGC38~Cz);f2*y0$Gq-ttRz?;zMlK zU|H}Nh{m24mwvO_&?c>^^=Sr+e}b4uT^6?CE2FIK(}F)WKi95wkWI**Pzv=icxYX~ zcY+^Ty8d-2IRu7=SZZvZ+dt*9)i9*fDtc z5amRCbBase>BWNrzlVr1KSESfR;t{EsSB+oP^crkqA}HoqF=a9=RJa6ewVnk(~7-s z5pNl4J6vVIJyY5AeZN*PFL!4DsAa^@dJd5O??FCk`-)<>hAldC&+R^o^GWIybSTlW zF1wB$oB4>Pc2}`UL{?+u6*UYC>p;0w+rH?k8rB(k1w89fz{jTB?yQOT^e|!^$ognS zIYjYujLA9+b-qtQkwQK6w!(ul5@bh0yDWfN?PoK)DBJ1dj3Q1isDP7V1LdJ;@K}OP zlJ&4bi{76+G0y~zmW%Pleo8$pL7VBT^a|>~jt>vx$GS}@1zxq{9d2{WF7Ci={A>v{ zxW={7J*Sa|Z_V>Hx?=a+Wb81;EAOQP7`@~0rUqb1+>*Ndh_2KnFr~m-W!bj2y^OsY z!#LqDT{DAjDtd@94vEK97*^gtyeZhx3{k6OE+;`2Y>}6m<_kifS&A;nwf?<>rXj0o3wkfC5NI497D%UhHW?SaQDHt?P@d0`i(N%|#okg#&bvby? z(bUe7I%_2*VAy^;5V_oH2eoG9Tr5|Ylio)6~p{pGXgch96IrQGdS>bURf0e`JmZR>BK zxl%F#EB>=1+DP8CId%wej6W_l-kxqfg-w6u$>fWb-SGo~wdE)L zUv=vl`K&urzV7zfVF-Wx;DEr5K~^rNHF5|8;4rIWC4#DlPIgpa+B_RM`80I znjS*N{N8N7$6=eFLi}K-2uo-OTs|BhQ3Jem0sRX#|Fy~eqfhMNSFZ()&k>K3yF;0Q za$H9pbOPaY?WMa8F5r`rkNeLagp-wL3|jjzI0U$erJ7(QO6Lz6`TEF?YT$SGf1;}( zcE3A$adX>BO+v7D?t2vnenH36kpyn0s2Pr>+9)03xl_e5SJSPXg8^|L+wZveazJLb zDr0lI;GKIusBNC3))~A!{Dg3VK-3iCz^?6)WU?RKl+sbpRWxtq*N~qJ!>sV*rl)e{ zX#IskeR&0-9PrK~1!U%63a3JHsONJ!ont~m32~U3>EH(4lt?U}%uTfyY?R8va(BT} zOVfP9#}Qmy$4R7d*2YgP)*$Pc?8S$}cVMiL;0iuu%KO|G=FKp_qt7FOB2NyB6-yUQ zgC_?=Jr!*WJE;PGb?UY)?jz^ss7ImrjH(T2qBDj1eF^rpk)rrtVsP<94J@EuZ{9XU zzY603KTZ3a+_8{|TOseg*ICImk}B|gsRrzhyyJXBu9wK*9o}B7K2rjw#pr?UUCrGp ziZwnv6&XW5wz|7(Iy|y$y?IzZL?P+RcZ%~VccRyoL*Hv~jFIG8%SgYFL7PiHVMCN1 zX=+!oSeC6U18c-{(>xv%B!@WBs4`(Q&>B`8STNzulSfV-T!2gb>9h7lvL<7GEiU={ zP2?Xf$<1df%?Erw8}-6{#^`(RzM=d&SkF#u1O7+F{dSfe;eTJw&SdrRi+)Gju4OxFr<+>CYx1*3pPF+Y*trZH3R(Urc#&() zq1pDL^Xzk18*@&9-QC^2gy<0eA9$z^Z-`3H?e>YaT$~0e--K&ex;-=51|Oo7>NJtx zS}Tm?JlUcYIQ<3C@*(*;S|`K7emkS666=lyj4etQZ7fJa!-qgXXe!9>TPa^ z4Kg2A@$<|HC}Q-B`!@2_?Za-(D;x@)bJP(m%^uHks+3IzL6eS*Gwu(|mtn6beyboQ zitfAO8uInPqFd|F5*p_4Zw?J+!byQa1N#b-_9NR;+xA&*r}A4>^Fu&!twASkhAS~B z2rs#NkK9E(=QRGq|L+aJQKA3d!QD}t&ijfxq^kcKseGf%dF1GOtb^$3Od9HTX7#HO zj?qqM0)EQ20T<8!Dwmzg9&{NEjGq8PTzMgf8VHiM^PTdXqeEx@Vc8uG(z;k1ByD*s zFas`BVE}o6aT#?o`3w0>u3aSZ+Ri8(4 zoz9POrtOPR;Vs_s!-`8F6H#=goej`*2Y-ht=%&v|!%)5PkGaEJb4>uVO71v08PIT0 z(g>k|`hc5Y93{zjEw|%l!ifYhXvQ4+u7i-98ANju_@d-UrAglgb}&>uuEdP519|5K zBn|~vHtvBD8Uh8+e<+BG&4`7HXN>2=BMS^gf3r)UBvNrqb~1Up;=w%LUWo@^fK%|@ zL;hpp5>O{zP-aJgwQ$KFg{JrjAMXo@l0kVV z5_tZ^^l-5A{vB67*P;Bm0iZ~{;80{B)N)23L<2F_`Z{sk?CGLT6%tOKBX(zd{La`( ze>D}}@|`G+JQ$Z|hvAXx0mqN#l@YNz9L%7@{PY%lgZ5je4rRs8BglU*$p2cE*1Gc7 z{^KQCeuF0}GvVEwd_wLS2+{vPKuGp~4?$E^|Co&oYrlBK4&CPz*p++t=l6k0z3zm^ zD;(V{Ptxb9AK$)tP4+V^JZY|@*YxccnW`K%EG&=C5N(N@H?IHnRJFKRN>TriGgy8s zj_%UmT#|?qCv2B15+PfKbv3aU&tlO|@*2xymS~(N7pH~Wze{Q__#DU1c4Y%n{{Go= zfe?7fHyHpIKJl^=oQR#;Uh=}6S&}SZXy8A}6@;5UA@6lsSXeY_E0y$qm^HdxbxW3_ z8Qip+p#U!~&!rYL9frdM2!4Gun<=B0f=Z^n|1ll0_QJ%y9mDGlhh&rKt47wp<;va8 zc$~>Cwz+w%GZl64Fr9qmbvl=5>aLu@t=7ur{KBv00)hpk^)i#%n>TEQ>k_{$9Za+a z=g8a^iRE}b(3sg9ilRHW8`p2?xp%|4$3iZ#@i_Ljm;!x(=HT~_`;$`bHuwM%JwXwD@quLxJ>j|hb&u5wz5B2yLXWks zMwRQq7ZX0~iY#Pe50}^B-y~nZY1?dVTJ9(j1`FfAgd~J6tBenLKYxMUUBVGPIx+^I zVNdJ~n8gHl*As*AxY>{nw@|A)rAA6g;JXLlwQq?_Q}f3y2YBe!`n?2g z+{i3jIZk8;bSqyjKXAPnb(rTpcUsWGiHz(3m`8wnv11G84LxureEmL>JT#D z#L?gzGA{{Mzo$%H%;!ikaS!i#%cjntos|l!N?pA{u(bc zAdi7Wp*7eeR&B;3z#{G>%9*jpf25EEA=FE2+$wBCsb?9TsEz&y7K$VO6CXH(g_%{S z@Rv6t4d^_t(Rnhlc{2U;qozHKzUjvu;PWM9m|BiL5vA)gW|VU8+5e~VjC*n-JF)sm z+2IC1Jfu}0?`{qE=7f4@|A4~K>|`PQREH1iaIJz3^brHNGwMCI)-FAy?v-!FC{eKi zJS`2O#A9q5Q9&lMsDjPFybxml9HiA|l059)iM0jb$bis!5F8DJI4lHW;Mj#mGGPRd zgpeUs1a3IK46j@{?MKXgI$gj8cm8+R2>Ad1#ycmIp;xqP!2sWenXK*Q+Lf2z@?ym~0;p#7=ih5`~tozP8Qz0Tkdk$Z7t%O}> zqHes*@hAUYx8G9gT+OHM{n21=(!QEIReH{nir}=TL}RCmKFf_2|2*YY{_RJ5uUe`E zLHJA8zb?KI`feLfTO}RV>}{2|unhZRqv|3iKvKJQm_EVCC^+T3z>iT6(7P*hoMHc5 zZNyfVbznkC|H7jOE@h9K6Q8*XQZOjDBtOi823w+6U-e0R)(W+P!LM-7ON`?;E(um; z)<$TihA%@yXH<`(zp;$w{R(e`{v(^)@i z+q5$Ow~J?5v^k3?MS9Go5K0w6U(YQqZM4G?23^%#npQP{ug>fqqDo5Bd~{dvL5T@O z$$|SKsz3AwKhv{2%duZ_&e7{?cMX%BWh5bK9+voo8TSQ?mqyOrmmkMo3(G0vYPMEi zeFaYufYJXle0pEg)b5e4BW=G@+lhead#AUlZ@wH)Um9;Vi&PpK;w-&B{B*eQU|oPE zV@iQhXj=;B{kU(n3p^v46S(qv5A^+;7SG-a&Wc0fraq_ceSKbj=?$qBxe`{zOL@O` z$dj>j<|;+_-{G298p|#w>3sE;${C~84L92vI90VX%XRR?vF?yRgZ`F(>VtYd8|jgh^lDfI zkCc}Bex`=yUc`AnUx93xG)RbZL)kCka{L81-4*DMC1%%=^Fz)`pyRDUo%wfI#yS?o z4@->m_x-{xqMZWOU-(}LV>u@e|KejNB>-8>iq4@lXdJ9=Y5vnJARZxW8mrU-ybB77E8O+lG9UU{87eT5n4l} z7VqncMb~5Utv=OVyt*}5kRT|3A%yOncLlpT(>j*{KezU?3Jm^-*;3A@{?f}WV)VlV zilBBPp>)gMERM%oUaPk#0c&?L+W%f&$&+z-(=sDd{x@c`mrii*+vrl%IFqu=NFve8 zt=jcoSZTivTz2deHc(XqmjBg2k)_}54bz76rzbnOatHa#3Z>)|)>o4xC8373Z}~az z`mxSYk5mgRJ@}8;?m@VyTBD#}lNWF!9^}UiZo@Z+Jzu7o^{1X*BKX1@a9iwiBL2sk zZgIqTcdr7i&JQrj^8M}=Ky!uD=V#3R4k{`$k^ap}2`j@c9R3Q;o*o%vX~A|=PDuf( ztE^Qddq_j3DPOxc>1oYET}Tz8s2Rb^;C${6MWTO*y>-3nbi20oJ;WeY5&V%_=#q3l z^g;uojf~zwdSB^PN?QLWangugUX-%@G47aNn#o|O6F(dOtMv3*1&FPQpCSH%-;#*5 z8gHm-(8Z6|Rg;(DYnjGVrZlw-(peK?;CIfUA05){G}<6uti#Y#oH`zjagloKkx@99aj3nJP~>p-{_Ti&-Gsk z{}i{P`ZV)WRq_UW60JH#^ux5z72 z;!U{QyUPMeE{ifvGw)s4&vSMwTZpK3d?>=QpG$YxkBE&AH#9;Vh4qKKD%pQ|7Pd`s zp&T9X>0NmhY2W)zL!#w=d}KRsnE+_39d_?LwKoqZ;u5W`q#|?et~n=E)sR=%`L3tN zbKyS@*C}_AZz{Sk{$9O5^HUg>D#0zi^JimZKxRr;HtS{>?DNgfLLB8=8@3PKmuW3QLKi*U(TtZ>(WE+d&7Nh_N6D^x0?1=(}R?~j-P)~V(NGP z?HA_^@8~R~=WS+mHe-7ekbHgSDHNYQpz?E6^|$PAA6=&Eh2_W3680P8=FPBm%Zk##e)pjDpck@;;JywR`{YOsq~d!_e&kG6H*Y?As+}zTFt~}# zZe10WN0OFQx7wa+Y$F63%(8q9ytDcdN_WYJMe~Ca1~~lT2|tS()x3l@>47j!$s2sEpdIVAkM6=nQG`+UCY_iqTa#1xqgB-<7{<` z-$>$UG^<>z7Bsvw?=yMOSHUqb zVLfi^-2Ux-;G&rNLr>Q%VfoZ6&ko{mP)T0_(JphZ>7)70y{^pJJ3ueP2GuVNv0d5B zx->x;F9tHa`erpVn0SV}U!kGUg~F|3CH8(MDxt#k<|+vwmg5Q9;$m#e)BU0TO6mzu z&pq_4v%6xWYui5PR`59vd3yQDK%mR-{d+ew zC$C)<#Oht-vSkrRL%iwis28e)54<#!O+>!ltSgQ_x&@3)%_Q=DNXEuxMev8vuee{T z-IcT6Dlb`(Dp7yy;#U*dt{gWJ*dHX-`rI}P#6aD6)v_a!H8L?X;)i{v>|TFFEE$ z$1Y=3Lj;?8`{Vqqovz!LwpLg#9yTCadY(Rx3%hV9qs|k=_Kf=uF)JiqM@H!5^sk8zC%fb5&@BQRcz(T?D&X^Vrl*fvc1MUYnUN8 z@Z8a!+?yB<-rwb5_qQ$LX79pIpzY6s#b#!mB$!qBgHKC*ncj%?(J~j$T+!415S^{l zHClFSUZemui2_Y{%~|(&sv3Q@;dN&{poqA9xPLB?W^FAj_DWSR-h5&`)G2x+E&O>U zRkSA)H_GRMH2kc1#W{aW z=F8D*J$gNoCR%v!sa|@^ugjXWDsZP|q5-|)M;~Dx(HDOWRG!GD7L`soPNPkC_g3zk zTVN}#J`~KqnkxRjE}5iX@y@H1ad>?H=ZVi<+4ULK*+7r*k@6W|m*NT+Mfz~2L~fSB zW^?owG@yWGu~YIrEji-H#5H=j>(lVCzI zQ$o5S>PTkHe%j@AozfNhJd*u~n<~QcYo(Q=B}-6YSyYPSt)g}F1zKOj0#iPY$f(Of z>JHVeV%TNsxFC9(CBIHOS{-0oK8Z`Z^ufJkB*mX#H-FOe=TQNDSVF$r5-#R&_rW#7 zyicF9q_^7E4YlbS*W7&`8BO-^b%!_m*p~kH3@Kv@&$TRoql9YZ@I-9V>A)he#Z}nG z`Z!NJxH6IVuba^oJr3%tf4EnK6as#_VmUvewpIu*E!V*+oBH?d? z;s6Qb$F*JJ7w5*kMXUl&2#J~JzJHhS(58&(e*4~799~)$bSOggp1$&KA?=~t`|MjF z<`q=Dz0-d6>k&1nxe~4II8T%P3YU!6#@y5eZFKyHLI2iW70x5MA@M8o z*BrV;ewI_imkJ)~DLCe#Ho{M`_@aLdVMe8jwxjNM_h^iW&CE2phF}V9-c`EoPIOEf zksmRr1yaXCcXiAnCCIr0#^Jb6y7D&X*C;kDp=Nf~9SI+(Us2!M@}}#0sd_%H@1FJ22}qarnE$?)2B-VcLyGFLX)sR!8~W^ybcXt`QD+_~`4%6@&1Vhp^WSFN{P z&$eY52^+f&x+oE#D&CtE6x<1%m#iykjtUu8@(=Rle+8*s82|XH5On@S!XJu3>ivU~ z5tr_A+~cE<-(es9T}_|CBR^>DR{c=hx;1fx7Q4Q4J>}xUb!WK23^`81N$V}gq7W4L zKsbvHbW6K6+b|m6*Sq(PrT6y$Za|;)xRg2LVL(3lH4h9NJKR2bOO!X}ihuRe_@aEjxZxQ;f5lQCuiczk)t83tetU~e zo&I8+aAj>@CqIC~IX=Af|Cx@)xE!j$xJ7CkRG`ObT<*CXyz^F_pc zg$Fm^2T6e9iY}H1>s=7=kiPahYl;SpS>Fatz54F7@r1d-)a4>Lg_XLnV=vk)vw)_{ zVqQt!=Ojd?(oO_2ugr2)(iK;Da+RSK zVnC&M*Czy*-0uPV^3Xs2HEuel6|9U#iEkTE zB!a35W;Qej^eS>7v5Vj6~(=m{I_1&)X+=QJ|H#+#(KFDx+m!FxzsRzl*7dx6drY{OKiuB>;_ggL>#p_8ljcRHe?hU$p z*3P(_!7h$gIqV1u!E}AZFWq)4uHvfpC@AY7@uX$NHytyaFMgUVZy6X;d@nHj`OY7k!QQ z_YDQ|V~K#oMX9^LSiVjel6S_B5aDWJ9}UiJLLMkJTPC*iURI^j9EEluf_w`dR?fqn z^?Tqi23w&546LB=*-ZH#)`N>{hs!)qAf6r8g3Igv;I;TJ{E}c2=3bJeJN)XltQY&WGsk0Q%voGKS_|R!w};Me4|p!~ zfYeg&HC-awWbD81O~gZF?fH{sSf4LNSkE_R7s353uYaTVb79|x$v4E=r%$1-;P!&;iMw1)q*~o2O>^jMopXxNM{p!uVTe&Ihm_11Wsq31e zxZ@G?QL(7z+cgG;f8(5agxrQ_h-R7{6&HqL_O2#}4-JEEC;{x*_HR~Y{=;tQ7fmhd)a}Rdo&c`%Pq;(^V?rxBmB@x)|{qk z39wrw!vAc9h|NEex(lzrGn05&fRf#@cah`EU?7TV-tAV<)N7=9U`^jE3Bx5yHOfNo zus+)rlfRoZ$bEt__g8_zwS_YSj=`?MZ^1m-4ECH?zTLIngTa9XRLe!<7LixZWsa|3 z`-wj;kN-jb65jPrxaGFN)n6mOsr2nLglEppbj#^|zH!N3qa<^{6ns=fwcnjP}%7Goz**=`7Ojfbr`p&GE<1en?l2r`&?~b;@w$#&l*c8`g6gn z>dEoJK7~O_XfDxXiI3$?j zIajyr{AUkMJx3UMUFj`H{ic;q^bhG{*Hy0d_B!P|6zlsf;fsO1aK&D&@7~at5}9Dr z+YW&W@z0-W95AY-eyk)uDplTkybC2l=xL{yxrvg^G?I=D>HdIS!tM)*#?d0t_~sFB zmEjbJnp!{Ty}dt_^Ccoim*%Jpd}&PMv%0#0s^DPnjzyr;*e z)yKOWmhGw9BJ;32e(UWA4gWZvYIDjNb*_>$;ku!_K}I}|U9xUl$%bYbTxubfr)9Bh z1#ju}$KI>uWQy^cN^H?R%qGgocRa9VkJ7lYu<)_|L9S+S%+jBg?k&lWI>|AB!sEek z?19zm^FN4ZoQk}b`2=MBMmNYr>fuMD4TY$jxdn%;_(wut@0876QK=uE?QBQlA~p(f zaoWun3tYeFy5@EFBjS6!V)HuA&Pdc!E52uw+QnloU*y4qXI6Q`dp!8=)vG5BLzM4K z1U<@UGx>Dwhq>v`+28IC6+%Bh^Zkm|+ZZP ztK$g`;Qc17&%Q)Io%{>eRQT+hSvo$+b!Pb54RAY!ZohQo%=tWQ{J0<(OM3XoUHMxW zhxI~gj1B+G=Zx2eJa@}}hx;~GIJ{}1-iG;N__Fm?6jeVEx#Pl@K6-3m)l#*1FSnO6 zG0f!WCzb%7>3=0_t{9H@VAxtepu+r29_&U4FiianpL0|8aL2|YYps_?f+Wg)8|CN; zSJ|P2hREd}^W?43HxFN#Vkc~)9`Ie(a(?7i9P_Q}Nwfb}A`wiVW+kebx;QfUgkjZ( zcFdE}BExDvPD5}ry}^tgjJ7C#p%ln>P5RUzD$Mg*&Zm}y&X&QrT^e5PHA9gDQMJ@I zI+K}2N2mdOpuBW*d;O5dihhj={j#|UWWTt;CKgbaw&|n0Al2U>V_{}3({p0u5%J5< z0LA*W6M5yqMQmJDg&6A_FJ{AR+HP$p;y&`vJtmFstYgfRds9ofd5H^9>Obl1+;LTV zZzcG`x+;I4q&1~pfCja5-k`3@=H`}{p9xj}iqpnONdIxpzL7EFqj1p!*I+-Cu(=g2 zs8$NTnf?7NeQ~_uDq}KUH?XBY5ebpz5OAZK_;B&(-*dRB+b&OOuWE2{1dO_LM9Ezr zNd}(9FYl(f^VF!K6;!Me;e=oYvAnE;_9?&@3q^X(kzgPAknTk*1Yp)&#y`At6)6CQ`bgMl#8WZPm?VQ?c zg8%ucnCh@!+fo|cbwBZ3$>s3|5i|DU(pDq0W%jv7$sB`_qFpGW zTD+?NoHmI7mE`yOWP!+H_BTjovS3xZSRAVHRmFi@PxyHK6nJNTv?!f9(di~na05-Y z+Ao)2T?$pAkw6Ta722j0-=dSP&t%?AXN}T2sHr$ zB=p_|q!*=#qA1e4H0dazDbhRAK|sKOl-zjEx#!&Xu6Nyc<-=X;{gBC*J$wD1XYcv# z|E!r=lRcXoG^_LFJ3HC55qK(EpfYWwDSQl!0n)7%ORi(13o3?w zc^o#Fv0t_`$#Qah!gkZiS+n(}m2x~Sn;rEx*4Ba>nwCo*VHG1L2-A(iA`KH1V9#*1 z3drKE%_-0W?wQg=)ROmmY>MwgjH51xyq7gbT;j@XdHVg#W5sE|>Y>6b#=5GF{!#*m zQ=?p8YpFEc931kP*z>r<1hRXRN$+RjJF?sWJ<@KO;P~W zz4QpS7TOOot#D!ouhXIC8W`#T^5xXB@7~?n&s6cp+gAoX33@cJn|@pAkz>{-Lu)mC ztY=vaBoVY&}5Txr}%o3tzUY6 z^?Uqshu%$x66fx5Pw>`n-8|fp&1bhhPP^$em6)Nids*JI!r#lHWx1$hpsINeygB$q z_T)FowpnsjRcWePmV=k|vIeh;0#K%cNCSG`gtfLLbFnLHE6IsRcA<$IULh?99lIaQ z&qK99Z0CDknrIHyk3TvMkG(kPEdT}533myK&I|@j;%mG%Z|1lPW_nSjo9#E0bGbfP zw91t;Zf}^H^=HJloIY>TFU}tTExq@#OSB8y!2(~v585s>DWj>=2~RY+N1xLoqeE4H zd|Jh0s}npf>TuinOv2eN?EX-7cYU25>AWernCFpahBIm19Y?z3DW8h$1zzGSw6h&w z7MHreF;%A;A&~L}tv070S=pq~*50&U-Na-FD+(^8x^j|b)8FHChO@%{ASh=1)b%t? z8zr!OEyMURnpI4okB8M{vnfnkFuy26Qz7Av4|F65JN%}La6MR>Qhb(Iw94f5M8 zusnCYboqYTBr1+@enUZ~^$>1IgY9nH$2zr$u?$;OGF@YjXhF!dO7p3- zNk7+63LCZJGML})=C5x?vdqZ!b!}okFj;7>W~#;Zyt19~H{m zuy-s`;@>d~DpX^b`W8f!s=B1S1q-DbBZP%gDifTQi3xz?TiB(9dk>E2G-Y)$0BKHMjnaBs*ziPf1%XUej zj(H!tV70Z7*-`4mWB%MsAsBijb!~UvkRgCh`xQ zn3cifd4GCsYifEF8SBU;y_=Z&@UGDa#rbzQs8I{sLt%vZne<`R41D}Zvu6lcmwLa9 zu&{L#Z%FG${eFQ?*u=N}U2c}GF6VQpX3k?z)Tu%v)?{tj1dr*ohrbMu>DW^=$C(%p zU54B88MD0QMn;s&MZI0g z@UVrip+=|goSbJu(vzZXRb{eI8tTD~->^X!k}RJMC3^yn;<=BsXB8c@!7jbS0p+|5 z^IWl(!-sPyhtW7!^!;BnBA)qi;qzGPy$b0^Mvg?S*{^;R$I!qA^L)uZ+ru2Pk|DA8$TtTFkl3CT(Ekh8I-Bu3hsAtop~P=Y$3l(m?#1u9>l|7=aO zEDz56SYq}&Gu@dN25E-tmk+*$HrAhw$wC(aK{6H7!|{Yi)uylNO}{-bJLjWYk#zPg zv>Q=!KZT-NB*kZf@co>I>Cb(%I!t^)(kVeo#nWB)HiI|3Fsq_`>NHCk*5%^4Yt&A* z!y}6=2Ui(FKem_yMsoW4Hy7679-@qW4K=lyXfY7$-i-7_{^8r5O`X!sd1JxHQ2LO# zPxHuqZ6?Te0_p=to>dM1F~5Wll)k0=-S(9#4~UWa4RYpu(?GS=Uejy!qNDN4N0<{@ zLDMS{WmTig=)l2ubJ4e~DeVlbr4CP(e!+DLL*F$lQ6n6270H&kkw+=pg#)-|ejkX) z4MwF5zWJ`>yPyU*o}w-O!GS_@k+=ob{hau=oQzKOO{|DY#)kA(h)Bx06WPx7`_Cy| zvm!#>( zK`vH``WG&oDO@JJ_iGP%!Un*q<(Lbw{isW#!K=pdw^MB(&QEMgjKg5Djg?6@{>Vhv z#pV%Niec$9>QH?uGYtTeE3Dx)k!f zH~k#WK@AI)qiizerTKDSg;u5!ZvCC6o#kX_A9Y^JNFT+b1*h1&Hch>>On((6@5;;R zy<=ctmaPBS4BbxFD|9<1P2oTmlOH!}lf})jvB*r}D8EN+CIgOI>8xLd8 z-n7dr?Ncl{{^sOD_=H;Jl|mW`(b? z!zHJ()I1Q zO!)m#|KrogMsNp8ySulI4H=RWfRbvm8ax4RGL$11eU9fQ*VVqHtvWg6plc1b`{q)o z+^;EdZ-I1LasjdCN6+_n3-$BeyN(#rt$gV^?F+EIDp3aFnMO#$BqGeil>U+ilZK^k zpXHhwGG|e$JLNubxZitEf1$Pe7uW`uP<*QBgB6_dG>y`HCqB8jaKk6V zzUqiMR@<$LFtGS_XV)vmEh`bpWrVw%Px_Q>9;#I0sqx^F6{{QT4a0A-*b6uLHMv6I zSG|l2A&YpAh`UB_zhrbpLxditOG%ClR&hk#tBSOO8@-v;i>oMijcr^m?C(zOr={p+ zMJ4m92DDbETwjC(gp3DQbT-|j$&_!oXuS+Zk3O;SB@7` ztfa0mJ}=AVqzuA1t?kC4Q&Jak+=z<%8vq)PS&_RFpBhAcK4+7afCiH1?~y${suxjG zq94UlKQDfV1n}g{PcN?wMZk1i4lQ)?r>qTQhjF@|w66NqfM?9;TjUzjM^iyF%E*&= z#p4J5j*0sH6lnFC{>}1akJc9p9F9*NZl*K)9!0tKzls~WbT(M)o@hVqY`-w!L_Nhg z&Q1FL_6XBrShvbd`2?graXd}Y-Z~egoJITmbE(To(}yMH<>*J$Jbf0JA2(Qg;&E)# z<64-)m!Gb0n?3s0cRQnL$mGU-R)g0s=CdDBWyCMze++85o_jBTX09<%Z+HUDiEn88 zq^4=Umub}69}_e>uW-1)&@XkDry^}p&3q-v#Qe#OmvUFZwx$EF3A@_0|2eN!`|I_~ z^AFvJf~!M4DIft&#~}>feIn&!*c%M(Z_R6R-W)fyeSQ;$8(Y8DGvSzV?bp-V4=={` zXDr=L5Lr&XhHCvKj7m&2d38O$FUt9XYZc#KY?05fl$?aGqNZaHJJoX{@XcQUv?^=& zZbbPniB{JYbL94H-=vOK;I#lzu;PblOCI`$2m5 zH;>Unmiql#$+h0+?~iJzyZdqYfJG6@!w*JH-%?6^|Nj?R0`XK+nH(8tp%*wZGATZL z17mk%?O(xAq_en{4bmDWj&XMR{ePlLsu&k5s3XiBU=4%YBb0$#_02$ly^S)^NLE`y z+eIB_XMfAv4R+UC#{lZ>2vx8Fs;bZ^VZek0&Mq9jDY>u#}47781cL9SyXf#?JEiI08gM%a$6cm1@k&+T4 zD8x`+2zM)t7y`xrN0NW$fxu8uH+vU%dn5wzGq063(!*UD2>jX5U)!I@O9qDF(L^`SbapW5IZZI^`%@GAqzbgxnBt#K@ zGV(G2BYT7m5{*&<{d?Ts9r-&Y3}WRDQz3wo5tC35laMlyQ~*m5Sjn0GOZ*?Ae+$<} z+SuEA{V(B?5@0FGKg0h;^k=vd=qHioLTH90qbhz?DFMSN_NT{n2ZJQwSyn{pHescKxr> z{jU`M=Kfzv|3^|%BSgU^;UeK8iU3h!lDkN_h$29gnB*=JE}{q!B__Fxgo`KwM2Si6 zBH<#608wI+yGXc*B0!XwC0C;~)@N$w)yB8mV}Vv@T^xQHS^l$hi$5-y?$5G5wLi-e0P0z`>P z?jqqLiU3h!lDkN_h$29gnB*=JE}{q!CH{}@qWOE?2Mj@&?13iC>KOAX?IWz>5PTb= zW?&qaKjIkq1kOUWJ>z73F=;Q;|B>AUby4mRrzW?nTjM=YYK(QiV z8SCqUf|Y`NLF&A!s zC5~TK7^$hLt+l)S0n4$`&Rxrv6B`+3@80`sSngncdWUJltKqwYV}Tfc3zMyq*ZT&Q zp6>k8KBLBXWx2U%_&^~p`#hEKNLI+Q>o34?>j$?=XSUj4wI;j!PC=J7n>(Qg$P*PX z`8%i8dXBV|tQ`Ph#Ux7e5Kzj%R5~|HaO7yb&)T6cgo}MqsBUb&?%7^b)y6}r!7)YC zEo93SVRfa6?$u$Nr8*)(xYpaD+9k(7KU*+h%*ZVPii)Jj@bV|GvkzUg;V^|C%Fe{= z-fVByT{U^%2Vp#C!`~DfkFI9h@xd;bm`9E*RPoQxbUHJ++9bxpJgn&&X?efCiJyx& z0H3~DJiRQ2@SIg2?|m0*x^`-p7$jW>6={0f(IP}fvB9-G@gcq6%7?1E?EnH%YD~=f zB$S!KX0w#q=S^uew>AzA;&qI5;2?{PR6lsgn%qC~{c~;k-YV`$3Z-Rh;c}-~PE{4} z(3?|%A@^ka0e7vxXE&=`D+J6oUWH^)VCQ{OKkn-IlC#a7z}6vSnU*n{+j(cmwptFE zT#>daBZGcqNBw7W?E;ivIzk|#HcPPwmG=T>y^k00t9i;=^p3KX`lb6C7}nwWEYtmZ z{VwjswqEWat+m4=VKVdJ7{zt%{H=O)lo^I zn?`pfOWJUXcj6s8mK`y7M5Y`oZ9PO(e3B^y+4||=7Ub9(t5;EnV#W`?T|;aX&F@|7y<#RtFKZba z`Ba8CItn`(h;|%oY^uiRoy)yb)(l&+*k~<_luylAkHNb@o@^BOzW!1(98~SdJnlEO z>R{eszCwn%gzoL_-CUP~w7++_XJoUKRSN_%#FFW`p-nQ|05Md=9q3qL9U` zGS0^la{S=jbQG^@&l*IMi|3_ND66RKs}9rnd~o+DM`*k0j--j?pLw=kHK@o2l& gvqN{tTlfd>c3|KBS;O9kKWC`jzNrH#zVRUVAFsAce*gdg literal 0 HcmV?d00001 diff --git a/client/public/images/Icons/WinterSummer/SOn.png b/client/public/images/Icons/WinterSummer/SOn.png new file mode 100644 index 0000000000000000000000000000000000000000..481de88e5447a998deef87b843fb323c9e379598 GIT binary patch literal 51879 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

*^d|d{k;p=%Je@v<`^~acr3ev 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 I7Ouv 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 Wf;uKKiRC|6r(M_3Q7=@r3i= + + + +[...] +``` + +Add your checkbox: + +```html + +``` + +Initialize Bootstrap Switch on it: + +```javascript +$("[name='my-checkbox']").bootstrapSwitch(); +``` + +Enjoy. + +## Less + +If you want to use your bootstrap variables, include `bootstrap-switch.less` in your compilation stack. You can even choose among Bootstrap versions 2.3.2 or 3.*.* compatible source. + +## AngularJs +Two custom directives are available: +- [angular-bootstrap-switch](https://github.com/frapontillo/angular-bootstrap-switch) +- [angular-toggle-switch](https://github.com/JumpLink/angular-toggle-switch) + +## KnockoutJs +A Knockout binding handler is available [here](https://github.com/pauloortins/knockout-bootstrap-switch) + +## NuGet +A NuGet package is available [here](https://github.com/blachniet/bootstrap-switch-nuget) + +## Supported browsers + +IE9+ and all the other modern browsers. + +## License + +Licensed under the Apache License, Version 2.0 +http://www.apache.org/licenses/LICENSE-2.0 diff --git a/client/public/images/Icons/bootstrap/bootstrap/bower.json b/client/public/images/Icons/bootstrap/bootstrap/bower.json new file mode 100644 index 0000000..aaf1eba --- /dev/null +++ b/client/public/images/Icons/bootstrap/bootstrap/bower.json @@ -0,0 +1,24 @@ +{ + "name": "bootstrap-switch", + "description": "Turn checkboxes and radio buttons in toggle switches.", + "version": "3.0.2", + "main": [ + "dist/js/bootstrap-switch.js", + "dist/css/bootstrap3/bootstrap-switch.css" + ], + "ignore": [ + "docs", + "test", + "CNAME", + "coffeelint.json", + "composer.json", + "CONTRIBUTING.md", + "gulpfile.coffee", + "gulpfile.js", + "index.html", + "package.json" + ], + "dependencies": { + "jquery": ">=1.9.0" + } +} diff --git a/client/public/images/Icons/bootstrap/bootstrap/coffeelint.json b/client/public/images/Icons/bootstrap/bootstrap/coffeelint.json new file mode 100644 index 0000000..789bb8f --- /dev/null +++ b/client/public/images/Icons/bootstrap/bootstrap/coffeelint.json @@ -0,0 +1,127 @@ +{ + "coffeescript_error": { + "level": "error" + }, + "arrow_spacing": { + "name": "arrow_spacing", + "level": "ignore" + }, + "no_tabs": { + "name": "no_tabs", + "level": "error" + }, + "no_trailing_whitespace": { + "name": "no_trailing_whitespace", + "level": "error", + "allowed_in_comments": false, + "allowed_in_empty_lines": false + }, + "max_line_length": { + "name": "max_line_length", + "value": 120, + "level": "error", + "limitComments": true + }, + "line_endings": { + "name": "line_endings", + "level": "warn", + "value": "unix" + }, + "no_trailing_semicolons": { + "name": "no_trailing_semicolons", + "level": "error" + }, + "indentation": { + "name": "indentation", + "value": 2, + "level": "error" + }, + "camel_case_classes": { + "name": "camel_case_classes", + "level": "error" + }, + "colon_assignment_spacing": { + "name": "colon_assignment_spacing", + "level": "ignore", + "spacing": { + "left": 0, + "right": 0 + } + }, + "no_implicit_braces": { + "name": "no_implicit_braces", + "level": "ignore", + "strict": true + }, + "no_plusplus": { + "name": "no_plusplus", + "level": "ignore" + }, + "no_throwing_strings": { + "name": "no_throwing_strings", + "level": "error" + }, + "no_backticks": { + "name": "no_backticks", + "level": "error" + }, + "no_implicit_parens": { + "name": "no_implicit_parens", + "strict": true, + "level": "ignore" + }, + "no_empty_param_list": { + "name": "no_empty_param_list", + "level": "error" + }, + "no_stand_alone_at": { + "name": "no_stand_alone_at", + "level": "ignore" + }, + "space_operators": { + "name": "space_operators", + "level": "ignore" + }, + "duplicate_key": { + "name": "duplicate_key", + "level": "error" + }, + "empty_constructor_needs_parens": { + "name": "empty_constructor_needs_parens", + "level": "ignore" + }, + "cyclomatic_complexity": { + "name": "cyclomatic_complexity", + "value": 10, + "level": "ignore" + }, + "newlines_after_classes": { + "name": "newlines_after_classes", + "value": 3, + "level": "error" + }, + "no_unnecessary_fat_arrows": { + "name": "no_unnecessary_fat_arrows", + "level": "error" + }, + "missing_fat_arrows": { + "name": "missing_fat_arrows", + "level": "ignore" + }, + "non_empty_constructor_needs_parens": { + "name": "non_empty_constructor_needs_parens", + "level": "ignore" + }, + "no_unnecessary_double_quotes": { + "name": "no_unnecessary_double_quotes", + "level": "ignore" + }, + "no_debugger": { + "name": "no_debugger", + "level": "warn" + }, + "no_interpolation_in_single_quotes": { + "name": "no_interpolation_in_single_quotes", + "level": "ignore" + } +} diff --git a/client/public/images/Icons/bootstrap/bootstrap/composer.json b/client/public/images/Icons/bootstrap/bootstrap/composer.json new file mode 100644 index 0000000..b3b9aee --- /dev/null +++ b/client/public/images/Icons/bootstrap/bootstrap/composer.json @@ -0,0 +1,37 @@ +{ + "name": "components/bootstrap-switch", + "description": "Turn checkboxes and radio buttons in toggle switches.", + "version": "3.0.2", + "type": "component", + "keywords": [ + "bootstrap", + "switch", + "javascript", + "js" + ], + "homepage": "http://www.bootstrap-switch.org", + "license": "Apache License Version 2.0", + "authors": [ + { + "name": "Mattia Larentis", + "homepage": "http://www.larentis.eu" + } + ], + "ignore": [ + "docs" + ], + "extra": { + "component": { + "name": "bootstrap-switch", + "files": [ + "dist/**" + ], + "scripts": [ + "dist/js/bootstrap-switch.js" + ], + "shim": { + "exports": "BootstrapSwitch" + } + } + } +} diff --git a/client/public/images/Icons/bootstrap/bootstrap/docs/css/bootstrap.min.css b/client/public/images/Icons/bootstrap/bootstrap/docs/css/bootstrap.min.css new file mode 100644 index 0000000..9bf78a2 --- /dev/null +++ b/client/public/images/Icons/bootstrap/bootstrap/docs/css/bootstrap.min.css @@ -0,0 +1,7 @@ +/*! + * Bootstrap v3.1.1 (http://getbootstrap.com) + * Copyright 2011-2014 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + +/*! normalize.css v3.0.0 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}@media print{*{text-shadow:none!important;color:#000!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:before,:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:400;line-height:1;color:#999}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:200;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}cite{font-style:normal}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-muted{color:#999}.text-primary{color:#428bca}a.text-primary:hover{color:#3071a9}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#428bca}a.bg-primary:hover{background-color:#3071a9}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}.initialism{font-size:80%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#999}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:80%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap;border-radius:4px}kbd{padding:2px 4px;font-size:80%;color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:0}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:0}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:0}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:0}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:0}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:0}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:0}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:0}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*=col-]{position:static;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}@media (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:scroll;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd;-webkit-overflow-scrolling:touch}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=radio],input[type=checkbox]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=radio]:focus,input[type=checkbox]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}input[type=date]{line-height:34px}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:20px;margin-top:10px;margin-bottom:10px;padding-left:20px}.radio label,.checkbox label{display:inline;font-weight:400;cursor:pointer}.radio input[type=radio],.radio-inline input[type=radio],.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox]{float:left;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type=radio][disabled],input[type=checkbox][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled],.checkbox-inline[disabled],fieldset[disabled] input[type=radio],fieldset[disabled] input[type=checkbox],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:46px;line-height:46px}textarea.input-lg,select[multiple].input-lg{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.has-feedback .form-control-feedback{position:absolute;top:25px;right:0;display:block;width:34px;height:34px;line-height:34px;text-align:center}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.form-control-static{margin-bottom:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.form-inline .radio input[type=radio],.form-inline .checkbox input[type=checkbox]{float:none;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-control-static{padding-top:7px}@media (min-width:768px){.form-horizontal .control-label{text-align:right}}.form-horizontal .has-feedback .form-control-feedback{top:0;right:15px}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#428bca;font-weight:400;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%;padding-left:0;padding-right:0}.btn-block+.btn-block{margin-top:5px}input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#999}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}[data-toggle=buttons]>.btn>input[type=radio],[data-toggle=buttons]>.btn>input[type=checkbox]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=radio],.input-group-addon input[type=checkbox]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.navbar-nav.navbar-right:last-child{margin-right:-15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin-top:8px;margin-bottom:8px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.navbar-form .radio input[type=radio],.navbar-form .checkbox input[type=checkbox]{float:none;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-15px}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}.navbar-text.navbar-right:last-child{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a{color:#999}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#080808;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.42857143;text-decoration:none;color:#428bca;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#2a6496;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:hover,.label[href]:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#999}.label-default[href]:hover,.label-default[href]:focus{background-color:gray}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.container .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#428bca}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}a.list-group-item.active .list-group-item-heading,a.list-group-item.active:hover .list-group-item-heading,a.list-group-item.active:focus .list-group-item-heading{color:inherit}a.list-group-item.active .list-group-item-text,a.list-group-item.active:hover .list-group-item-text,a.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px;overflow:hidden}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:800px}}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;right:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.5) 0),color-stop(rgba(0,0,0,.0001) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.0001) 0),color-stop(rgba(0,0,0,.5) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}}@media print{.hidden-print{display:none!important}} \ No newline at end of file diff --git a/client/public/images/Icons/bootstrap/bootstrap/docs/css/highlight.css b/client/public/images/Icons/bootstrap/bootstrap/docs/css/highlight.css new file mode 100644 index 0000000..3d8485b --- /dev/null +++ b/client/public/images/Icons/bootstrap/bootstrap/docs/css/highlight.css @@ -0,0 +1,153 @@ +/* + +Original style from softwaremaniacs.org (c) Ivan Sagalaev + +*/ + +.hljs { + display: block; padding: 0.5em; + background: #F0F0F0; +} + +.hljs, +.hljs-subst, +.hljs-tag .hljs-title, +.lisp .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title { + color: black; +} + +.hljs-string, +.hljs-title, +.hljs-constant, +.hljs-parent, +.hljs-tag .hljs-value, +.hljs-rules .hljs-value, +.hljs-rules .hljs-value .hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.haml .hljs-symbol, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-aggregate, +.hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-addition, +.hljs-flow, +.hljs-stream, +.bash .hljs-variable, +.apache .hljs-tag, +.apache .hljs-cbracket, +.tex .hljs-command, +.tex .hljs-special, +.erlang_repl .hljs-function_or_atom, +.asciidoc .hljs-header, +.markdown .hljs-header, +.coffeescript .hljs-attribute { + color: #800; +} + +.smartquote, +.hljs-comment, +.hljs-annotation, +.hljs-template_comment, +.diff .hljs-header, +.hljs-chunk, +.asciidoc .hljs-blockquote, +.markdown .hljs-blockquote { + color: #888; +} + +.hljs-number, +.hljs-date, +.hljs-regexp, +.hljs-literal, +.hljs-hexcolor, +.smalltalk .hljs-symbol, +.smalltalk .hljs-char, +.go .hljs-constant, +.hljs-change, +.lasso .hljs-variable, +.makefile .hljs-variable, +.asciidoc .hljs-bullet, +.markdown .hljs-bullet, +.asciidoc .hljs-link_url, +.markdown .hljs-link_url { + color: #080; +} + +.hljs-label, +.hljs-javadoc, +.ruby .hljs-string, +.hljs-decorator, +.hljs-filter .hljs-argument, +.hljs-localvars, +.hljs-array, +.hljs-attr_selector, +.hljs-important, +.hljs-pseudo, +.hljs-pi, +.haml .hljs-bullet, +.hljs-doctype, +.hljs-deletion, +.hljs-envvar, +.hljs-shebang, +.apache .hljs-sqbracket, +.nginx .hljs-built_in, +.tex .hljs-formula, +.erlang_repl .hljs-reserved, +.hljs-prompt, +.asciidoc .hljs-link_label, +.markdown .hljs-link_label, +.vhdl .hljs-attribute, +.clojure .hljs-attribute, +.asciidoc .hljs-attribute, +.lasso .hljs-attribute, +.coffeescript .hljs-property, +.hljs-phony { + color: #88F +} + +.hljs-keyword, +.hljs-id, +.hljs-title, +.hljs-built_in, +.hljs-aggregate, +.css .hljs-tag, +.hljs-javadoctag, +.hljs-phpdoc, +.hljs-yardoctag, +.smalltalk .hljs-class, +.hljs-winutils, +.bash .hljs-variable, +.apache .hljs-tag, +.go .hljs-typename, +.tex .hljs-command, +.asciidoc .hljs-strong, +.markdown .hljs-strong, +.hljs-request, +.hljs-status { + font-weight: bold; +} + +.asciidoc .hljs-emphasis, +.markdown .hljs-emphasis { + font-style: italic; +} + +.nginx .hljs-built_in { + font-weight: normal; +} + +.coffeescript .javascript, +.javascript .xml, +.lasso .markup, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/client/public/images/Icons/bootstrap/bootstrap/docs/css/main.css b/client/public/images/Icons/bootstrap/bootstrap/docs/css/main.css new file mode 100644 index 0000000..7befabc --- /dev/null +++ b/client/public/images/Icons/bootstrap/bootstrap/docs/css/main.css @@ -0,0 +1,51 @@ +body { + font-family: Roboto, 'Helvetica Neue', Helvetica, Arial, sans-serif; + padding-top: 50px; + padding-bottom: 50px; +} + +.title { + font-size: 5em; + letter-spacing: -2px; +} + +.page-header { + text-align: left; +} + +.header { + text-align: center; +} + +.old-version { + color: #ccc; + text-decoration: line-through; +} + +#github { + display: none; + position: fixed; + width: 150px; + height: 150px; + top: 0; + right: 0; + z-index: 2000; +} + +.bottom { + border-top: 1px solid #eee; + margin-top: 40px; + padding-top: 20px; + padding-bottom: 20px; + text-align: center; +} + +.hljs { + background-color: transparent; +} + +@media (min-width: 768px) { + #github { + display: block; + } +} diff --git a/client/public/images/Icons/bootstrap/bootstrap/docs/fonts/glyphicons-halflings-regular.eot b/client/public/images/Icons/bootstrap/bootstrap/docs/fonts/glyphicons-halflings-regular.eot new file mode 100644 index 0000000000000000000000000000000000000000..4a4ca865d67e86f961bc6e2ef00bffa4e34bb9ed GIT binary patch literal 20335 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

!oRptb@n+ zj;Sj1EzP&rTH|dsUF5T#cGro6G4AR2oYP4A6C$$HZsMhb-}MgVJ|9Df9nr7lJz}vl z148Mpnh9;=>i)2Bv@-|m)b&vQU&MMd0hk@(3OOg^&bfmPD_5YKI;h1GgnmUyKMvNS z*Dl@jFEe{GgQYV82Q5l}U@Y#R&i56es!fO#KF~6>m8^j5_VYi$aL3MIurDD=iV!Y# zw)C$KqzsWw6ml!_bkB58+Pnr)j72yJ19dZ;QpeC@=Ysqc6~m1XlxJ}t=Y?#A9ovZP z4*s&io?KSB=5X_Mq0Qr!nZ-97Pc{p8>NN2hw6L1$?|*wdwE()u@GV+8cRmVu4i|nF z2YCia`{H&dzX+@+F~z3}&2HZ~A$J#(3rizQU8HeGveHLO?>XOiq=P#{F`>io&|}#} z+qQJb#$=b8bg=Ps!{v58DK!Z#EWBz+L4AD9zp%|)i>xTf3e{0+~^1&1o6#K zwr3ZRDa!hJPfU|eB7lm6qeNDi)%|oq=$rtSjhii9m6^WZH{st=9fQ#dhr52sEKcDV z){U(4C-G#*1B4TJGjp`CK?-PIECS&zl`y!FXqtN(X=qEa*gBq3^TFm}Cpj!nLubX7V)$@?A?AU0HyDi|)^#d;oP?m&OB|M4~*^s!BC_{@R=DqVy`) z^iz3jFK^wAHbnd?@;r6FdFZxmHA=CJY>9NY7`vW2a@8_3y<&DFpgBkW@T`=eFK8oO zT(y#eS}lrO`ZBfcPaK>$9u2=+_Mtg1J;2yBN4^5}D8XEx0WdGci3PQk{1UaBgCLjA8J&l$QM)18CRi~T;S54ZH(@Xo~$ZF&Js?~!|%D|ZX{Jj z*pc-L3P~#WkVf!P51DxQ^K}CDD=Y?hNA?;=vpqJIB;E8gGMv4?>|>Zb{znXRL*?)Qk_|}2j?T(SeEif3wmvZ0!0BKWR*&#M-@We+n zd!Y-D_)%BP<+!zHM-WgMA-<|E26O*5#V&wF-H?7K{bi0t!Ja@<#T11p`z7kR9bL^I zxiX|bgk@gG;U~e3#Vwfd>bW+G#e;04x)I0s4A&VgI(Fju_0T|cY>fvK^f~+n#M)-I zKA?@0B{P@33F-*DS_^ETL0XcaOIRdDW5V4B_zY`Nd?M#7>oeG!Z^6Ba-dCk{J;lsy ziiSUhyO+>s{C7)Dns`2Rf*jY`gHkmU5gRa2MLAKjTZu0mAO#oAut#vEzYF_C!?|MG zQb|RYeITrDng~^K9yR@$=Tu)pB6?55gtAr{5~EPTj*pnXeR>Z%m;6GME0_TE(4-rw zME3E8f@iqWlgt=}U9DMBcpA3%b9qbF|E~5M9NWd;*ghbr%TH)&^)5!yC%XZ`v?wJT zr0zUE{g^+XtUw(UkwXI0C z{Oks!jZS1P^C2&m%)dTuRCl66MJ9OSvo;iOkk@*49_fS4UK2sIg}$oN5`T)WV_j~$ z#*y;(_hW2|toQ1WCxQ6-vCr-?6*3i$CB?T(Iy(Uu4B{Jjn3Fs5)HYKiwn<7UMvAhM ztl~cib)k*j3wl0-&k>Du))lCI$!YL3LpY?I>g)lzF_iS&;YrENcF9RH%gj>X+UNtpO7cW z=y9bt%UHUm14b%KvB>fmkT=b_ zigd)xBgK2#{h33=bql4K;;83zkU~UB12jdN28+Nt#W^PWf(SsT=lZwNXYAXwH8p+D z2T-wD1`6V}x`JJU5)g?l{KfbY3U{K*jkF9_;!&pOj7b7b<4O5g2XbEfm_g;#Ldp;i zD-*QR?1x>UX&lEA{7w}jiYCK zu00NA=#@FmB`CEgOPGL>*m* z6L!@dqJzFD(40JE-qoB9C0HFL3|4tOJ91pPVZFhw7eu;Rz0}w$sh&XNz#XOq2TvIr zi{~9k7L7M7L#!M~crc`I6W5)r$aG3}pV7pj%;E`lEP-KW&v?w!L}n}ma35b;S~Q7u zWn6QD1W4v?bv$l;!Bx=gbOuF)QJieN_M$nWNG4939a7d{0~7Bj<(#O7(pw&_f1Hi_ z;$$f3(K$+laQ-ssV9rcZ7sUxH?h(ODxMpu8`~q0R@3V<5ZUR7N0B>X7i^k1P11+>c z0#{3cU70M%f?eOzWe+MNx@4`O6KfNE}>-%Ay*gOP`j%nlT#j2qpj#O3UrUg4^id>oy3kT*kQp^XA&x9M7QbcQ+v;w05OGe_zv}@RU3qi z$Z4ZBchBcVa$fo1DFN}YOT80bTTwDSQdcHnV+giyD-Lt zKm&qZyc%9CTM%PKoN%g{XgsPsNM}kO0}&4>JwWdya=9)5Ash~^0(uV>M^ySibGCwz z5$PN+Ml%p$>JJ^#x6tLs0KGyLupO&M$44kv!@+P4tPv-(Q) znW!s-B&%k8 zp97OXN@#wwog-#6l6D~%M86snd|3)a+4OKr(u$6rle32G24##}>NW&kj7TOs3VXJL zc4+@7K%h<|@DEF@-){fDoU^iaDFf32}t$^lA zpl+iL|J2M+g9i#^{QP|PQi<;e0S?)xbB1g1_`<>Y)*w#P&y}I!c21Uq3LcPcH;4bqI0F zG%ZQswtudr3r3w}tQ`@KXB^ZxMGFdmidyI|W43A#-3$(6N2%hin*4IsSIG5R3xLv0o-OG?OH@C^*jHSMd|)m^=k z8q!UF2K{Nd9S!5tX!S5^0(g18+nY#vy3{(tRE6@P4?zeK<>TM)kmGd_VPnQA7kRXf zk$~)TlH+gOn7m=j2vbKXB-!=9II_qaR7Fbv(Ms=PC#2#w`w#W z=rj4$Sqg431ZfI;P81F=%2aAK&1MMC_yLxuW9PMtShb@O%)R9~IY2N4HjJUXmwXHl z=J7qh5e!n|i23lJ3Aori$qjbqY+@PGGUPbj6mN#$9u42-kWv1HK)Xf*7du4zI&Ap; z+W-ZUfh=WXWVbD>z!yT90&Ktv@`?P+^ljzwm*P~Gn%)O?gB56rc2k8*yqZ4@7nX_L)j_!4bYw280A2s4z^0{)=R3vJz7Qz(N>0jX`Il$M5BbQk_^? zmb=2DwO)gQyg->t3JD)mBx;B)gI6cNIfElwxl5wF%+%+FNg$PFXf~%ubeSK6L2;*k z-ZS~l5;+l-wl6{w7Dyq}{-FV>Nn6E;24mwA6(n)DhTzooXGRi@WQFLUlc&&iO=I^T zivywJNawc^=E=0XFqsVRR01*cO<5HEij|eEmVK8g?IfsAJNmq~EgQff zwRv%UW^p&6vzpem6AVaGtc3Q>G5wiRktPK3ep>JKPbd%NiVnQsT{NC%oJLL-qJ!8- zP-h)BwRyVw&H(-~!h9FwJlK~Tt)s~GW9=N{%H zkHahpK^rHdVncAWv!My;Py*&Okv>@=Pj<^*TyrRLzrxUph})=cnGJ9$3I}j$lr?}= zz=2t)jatn_^K@B=I_NPS=#K1BtCqqQnsGNTQfmt49zY^Or3XLIkcNQ*9`Dm{tm+te zGzr-e8FMH~?kI6@V_qIbW6`2CEQp*Gn9!4LSZEWt8?F-u?T9E8^I{i=*dP+gY2|H` zMGdiKCZIJ#i3pZ4sls`onRd=e0U%n#Ca`${WrC4WU~lwxS=8N0NZz6!0k>0lr7=-Wgf`_F=oh+|pA(=&dOHWYHAe`np>Wv*)f@;~V6i<7s3mijc zZ4@C`gzXJ?yt*=6ewBc>XeQn}>W!UeP|~t^p?bStnK{#S5dlPbxd9>u#Kz1>gvttK zd3?&C7ALU8TXCu$a(pA?no^B&vR|6~ij}sirp*p(@KQZ_I24%eSY5CJm0AN|Z&CLzOTfN7OG#0F=>!FqSk3<=Di4`u1Z0Ib8selOlzIIm3id zjw-_NQX_~=kIB1OdIh4uG&6)a$uAeQ-?@5aMkFz+U%>fER>c2C))6vM$q`s74=$Kg ziBjcvbZ75zzxgoHpoIECg8=M24@g-g`GL-3<#WPqoB05WJPdl z87W0Pv(0o1vBq6^KzM1C(IlMdk&y!2xc`xZBy4 zbk(td%vXIm4b=}{q%u%bFrCz%#{%S}5bPliB~ozxLV*SG38`@jJQSBCAc+;i@e`;N zt0M8yifw!cxT+TeLU39XDrBSe#GhY&)-T|b;$R9NG^AMHI2^Lq9 zN)VG}(M5cuIe|8Czv84=B1p?kNhb&-+kCJ~Cp@^WbcRlQNgg+8V1=ctJWBX)kq0fd zAfF&H0wQim;D^RNLt*)8>Blbt34>^ZniMi^9|qnB%ES;E!kSQ!IK8Y>A1x=m76zre zZ2g#{aC_l);B}ZbGf3Y$5Pf?Ha!#0t3<5F`ED$p<#rl0e5CFtqc!!Oi7M~UH7I8~> zKcNUu8%}Z~Bb?-HK-;xoKCjL8>_&0cLO;{MS&3$vA|)_!KSn*s%ug690fdLcraD7- fD&x8tjE$WbXjs&snU8)|^B;s6yTptcKAzx$Qp3K0 literal 0 HcmV?d00001 diff --git a/client/public/images/Icons/bootstrap/bootstrap/docs/fonts/glyphicons-halflings-regular.svg b/client/public/images/Icons/bootstrap/bootstrap/docs/fonts/glyphicons-halflings-regular.svg new file mode 100644 index 0000000..e3e2dc7 --- /dev/null +++ b/client/public/images/Icons/bootstrap/bootstrap/docs/fonts/glyphicons-halflings-regular.svg @@ -0,0 +1,229 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/client/public/images/Icons/bootstrap/bootstrap/docs/fonts/glyphicons-halflings-regular.ttf b/client/public/images/Icons/bootstrap/bootstrap/docs/fonts/glyphicons-halflings-regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..67fa00bf83801d2fa568546b982c80d27f6ef74e GIT binary patch literal 41280 zcmc${2b>$#wLd<0X4JKkMs=IoY9(#guC%-Ix~!LV@5XgawLzwtVoFRi&4B<;Yzzq| z1QHw)z@da0*@PsIyqA!`6G@b6oWOe_b_$P#@)GbXG2Zd-d+unfZAkvV-{LBX3Wc;?Pswd9i3FaAXkSUrx`&zn7GF0_`M^SUUB}0?t9iO6@<@rQX4MYaNTB6W_twTb8q4L*yS58+j!vF z2j3Nh`>lc?ZQXpu)z^G$?&B8=!spQk>+PGb+PGPLztt}YU&eW%aO!9EjS$4lmWxSf0(+a;I;S#pX$!?81r zPxe(ID}q`APM!R3^`f;)g#n@JcY^fY+Km6eDgyYBYd&V!e;1`7xevutA z9r7HC9qK$ZaA-Mx@w`Ku58Zlb*I{&GuRWclsyf4l#;7ri09Ui*6RHTP@wSWT=t=8ZXH=9myY8a)#IAo_0fKca`D z*F~?2UK+h1x;}btbX|01bV+nx^t9+egvQ|i`5yx>jQlJU@$>W=|A&(_6vm%?s-YdZ z;Q!}OV(bZjm;rz1-#tQ;_`j;qrV74A>f+@?>cTDSR3S05S~a&0%~;2e-Lx)tKxMv; z>UNd2#a>sPt?jDVwrIuBoW#0#yDGI^Tpd#fmJh|%fpzVw+(uuGC*n5@{id$Gt`64? z4cEQ9t}YQ*O|3)f+%4<)iFNDnd#1Lkv(9K&&23r(y9;-Z-F4Pkb*g}$v9xK8{LsMY zA#0mgiS=dLRa;x^Cc4QF@cS`UN-jvmR5`U!6_yWe-?)84j5em!#pCPhw)4Fe#va|! zZnVx*=ZWJcj<(n@cz2v_v5abIJ!>cyo0pio;gZ-;tZ<(36Leh_-5IxzZI8{{K6gW6 zdu)4x-!7pFD~8koT#5eCZPkH|w1e-s_?>1Ptd7U)Vh6W_4EWLlv~6{zZD=1ZbGId8 z2P-#E#D*5Ftc$B`-OzS)XhC9oBDQ_O_QVEi33Z3wsXZPV1}}y|p$^c7cTxw?(8S!t zhD+9u?+Ja?*M?4Pzmv$eu#nhpQDe)8rq_KJXZ&sZgaI}%ILH=#(<7WO@OQd+HCi6q zzG5hG9$KFmtiuOO41)3lD~5_fOqg~4V3EZbKGfLxYR$%a-ctNxpiRY5&;@Vp#E_7w zkT-73wkGUcB*ievEJBCIgv|7!MHb)9YG%{FPcKR$HU&+h!zMahw3wx1(~FFb=ajgT z%qfW`HlV-tm%m7{V~3g`k(p2s3i4uku@Dj(1y#tXRXLTFRY#Vo)fv@yP&H*$Z&|fu zwHnqcbawfA;^}-y$tn4eB_4=}ENLa7Skn0dlb+x4dBA$NMe@P+tN3)UA)gG`7`p@g}ksuP_r4esa$Nz(oZ#Y*myhQ zydBZ3YRahfIn`WNYqM$~qdLmPfP*d!c&KGlGHRZ;tf8!hquH$5;L+MytLn+B9c9&> z)%sYg){s}cs-;hDSBj2Uwy&>`sF=@n=M(u{Z@xE|4FyAq?hY~0;1VryOWYj5TSU%f z`^BD|*kB}m6&MwIx%*C_4-Kj)_rGq6J%mIJM#ave| z6W_b;$tSPtXlr}!^3VTT99+%bTYl9u??3I@aP6-itZ}+F;Z~$u6l4`VD`Otmv91d} zER<(S#b#32t`d6j;d0id9}tJcA&h=ofez}MOMLIh@MGecx|6jH@5S#($3Hm!f&3l$ zJD6Q&(h@95us6di-`kyGsRm0GTk_j84vH5XTyyaJs;URwjqa+=zdhYJa8^~?^^8KtwNh&Fei-jtC-6@O7#R52HmK*O{ zb{aZAuyEO0ulKHHb62|T!ydZ}`=7qNxi+xAMLg%B;s5c3YOm_eH`jzt&r4U@9n$wC zpM7|lQe8tUd+7K(@(<((1)oqStP_e*@>*4IMh%tKx(s^5)cTCd4yu8&8t{;8P)(Qv zVE3AU;@u~S9&cl)PcOVYDiH%eQKR|9}_GlobT-NdeEVO-@<}^H#0Y+ z8Q5L)1Y^CPR4l~m!D{tOS)0XjnbmLA4_v#m^vM^Q_j}*d-(&C6IsFf%o!9CIaPl&X zg|#geFV+9@;`eX`hJ?@aA^BN(won6(WNK|j6%Gd{TZs`|W+=eeBozwtMwk^=|gMSwn`IzBM5z3t%CUFVn_xPg)&+-Z}Nm+_k}F^P&%JTTTZ;stRF1+?)Mjd z@9iZ^PjW}`nw`J<%#J^P=9j)n&CF?*>`C{+zjvK zuNOv-VW}N|3CU6jr(;`3FW{u)Z?q=6LBotNQy3JAAabkPmIDEaWZ{fDos*^;yfMJ( zfi(x~V>RAAS`5<>L~AaqQ?lA=oNs!R?p{dTU_il`#v4*K7~%2z>|@S{!3BYEIG}H) z_pxnpX#C#z?d;e^VeztYJHy`@w=?040O^T8t{05-eVK5saD{M-a1YjMP6ciHrCKltrL=JU^%w? z%G&%P`t)e)acuLg*uJ=|U3XVDtKG{fM{{8sGiF08Ye*?QAHB~$=KSRE|D)H310@=Q zQ@pWVr#!_^eBAl$=-)<^As zJhjCaXt;)F)BDM{$J2alXh-S%@f4-CE-W<2@5?O&s9@VPh1%VaGs>!k%%NCOX!q7hU38p|b zovTxd{u+j_eYEZ&L7wLVxj-V2==n%JWNx8UD3m@%8`0O%MTNo`?Y_YEs;F@G1lm<7 z6B|dFie`mXi)&WTk!DpN9@opsy47=}Th&KCR=bk0jD2*^NKaw!Rn)8<*XyrZg3!aP zBWl)*%=02T#&ty@BtHoKp$@D49Dxi+JJ#tozAjnHMJVYQMGK5M)#A~d7;9g-==9M+ zC+sLPnKY*bgA}T+PoUvsAa#550cf*+sDeG+sdP`!3k^+d=n$DPfw7($6FBsXCobH2 zl%02U>xEDJ;>?F$edpDO&Sbv{2MRQk@FosD&zkxl&zG*#jvm#nE9D>W*MI%|7F>mk znUk(EmLpgb1%W{>X`^~fr%;5k(W+UUxg1kH8C5<=T0J^pMJF6Ela21U%bLQaO&%6D zgK<3auK;7Dt%RX3F)~Ql5#33aHxvaxlcG>7)XBT$-NHQKbm2UK)a&JCbx}s`1@%^N z>dh~!^F7)U+zkubO3-P(KsMA2u>BHcpF5E2BUWhiYBd=cmfCW#yk>y{qb^eRN%8a? zI@{~jT2CW}_xYn@Fv={!P(BpIW-dEZ?48L%z4>&$7n?oZ88MY%`Bd7HPGK|A;1YEiG@Keut^O%am$rsLQ0x9U0T7rgScss@?4KCe!Dc zCnPOzoBkzKkurMPR~sJlqu6;PIcA{-F)-Vx|?r? z`d|?X$B)aZ$q&7MOasjecMHWhX;F=^_B*??Sm@K4VoSC+2X&#Y3>A}<3RfGBXENMw zg?V3lkXD^WkCwy`019a$&9s)?Cn=eC2St6RCAO;o}h)=XB2SH>r+jiH(R9}{

PBK;&Wcg|NX{>QR@W3{K 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 literal 0 HcmV?d00001 diff --git a/client/public/images/Icons/bootstrap/bootstrap/docs/fonts/glyphicons-halflings-regular.woff b/client/public/images/Icons/bootstrap/bootstrap/docs/fonts/glyphicons-halflings-regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..8c54182aa5d4d1ab3c9171976b615c1dcb1dc187 GIT binary patch literal 23320 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 mX4Rtsthis.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){return this.sliding?void 0:this.slide("next")},b.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}if(e.hasClass("active"))return this.sliding=!1;var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});return this.$element.trigger(j),j.isDefaultPrevented()?void 0:(this.sliding=!0,f&&this.pause(),this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid.bs.carousel",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")})),a.support.transition&&this.$element.hasClass("slide")?(e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid.bs.carousel")},0)}).emulateTransitionEnd(1e3*d.css("transition-duration").slice(0,-1))):(d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid.bs.carousel")),f&&this.cycle(),this)};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c),g="string"==typeof c?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),"number"==typeof c?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c,d=a(this),e=a(d.attr("data-target")||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),d.data()),g=d.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=d.attr("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b=a.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.$parent&&this.$parent.find("> .panel > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("collapse in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?void this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350):d.call(this)}}},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);!e&&f.toggle&&"show"==c&&(c=!c),e||d.data("bs.collapse",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":d.data(),i=d.attr("data-parent"),j=i&&a(i);g&&g.transitioning||(j&&j.find('[data-toggle=collapse][data-parent="'+i+'"]').not(d).addClass("collapsed"),d[f.hasClass("in")?"addClass":"removeClass"]("collapsed")),f.collapse(h)})}(jQuery),+function(a){"use strict";function b(b){a(d).remove(),a(e).each(function(){var d=c(a(this)),e={relatedTarget:this};d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown",e)),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown",e))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('

'}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof c&&c;(e||"destroy"!=c)&&(e||d.data("bs.popover",e=new b(this,f)),"string"==typeof c&&e[c]())})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(jQuery),+function(a){"use strict";function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(a(c).is("body")?window:c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);{var c=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})}},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,d=c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(b>=d)return g!=(a=f.last()[0])&&this.activate(a);if(g&&b<=e[0])return g!=(a=f[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parentsUntil(this.options.target,".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},b.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),"string"==typeof c&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=this.pinnedOffset=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(b.RESET).addClass("affix");var a=this.$window.scrollTop(),c=this.$element.offset();return this.pinnedOffset=c.top-a},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"top"==this.affixed&&(e.top+=d),"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top(this.$element)),"function"==typeof h&&(h=f.bottom(this.$element));var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=c-h?"bottom":null!=g&&g>=d?"top":!1;if(this.affixed!==i){this.unpin&&this.$element.css("top","");var j="affix"+(i?"-"+i:""),k=a.Event(j+".bs.affix");this.$element.trigger(k),k.isDefaultPrevented()||(this.affixed=i,this.unpin="bottom"==i?this.getPinnedOffset():null,this.$element.removeClass(b.RESET).addClass(j).trigger(a.Event(j.replace("affix","affixed"))),"bottom"==i&&this.$element.offset({top:c-h-this.$element.height()}))}}};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof c&&c;e||d.data("bs.affix",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(jQuery); diff --git a/client/public/images/Icons/bootstrap/bootstrap/docs/js/highlight.js b/client/public/images/Icons/bootstrap/bootstrap/docs/js/highlight.js new file mode 100644 index 0000000..3f294b9 --- /dev/null +++ b/client/public/images/Icons/bootstrap/bootstrap/docs/js/highlight.js @@ -0,0 +1 @@ +var hljs=new function(){function k(v){return v.replace(/&/gm,"&").replace(//gm,">")}function t(v){return v.nodeName.toLowerCase()}function i(w,x){var v=w&&w.exec(x);return v&&v.index==0}function d(v){return Array.prototype.map.call(v.childNodes,function(w){if(w.nodeType==3){return b.useBR?w.nodeValue.replace(/\n/g,""):w.nodeValue}if(t(w)=="br"){return"\n"}return d(w)}).join("")}function r(w){var v=(w.className+" "+(w.parentNode?w.parentNode.className:"")).split(/\s+/);v=v.map(function(x){return x.replace(/^language-/,"")});return v.filter(function(x){return j(x)||x=="no-highlight"})[0]}function o(x,y){var v={};for(var w in x){v[w]=x[w]}if(y){for(var w in y){v[w]=y[w]}}return v}function u(x){var v=[];(function w(y,z){for(var A=y.firstChild;A;A=A.nextSibling){if(A.nodeType==3){z+=A.nodeValue.length}else{if(t(A)=="br"){z+=1}else{if(A.nodeType==1){v.push({event:"start",offset:z,node:A});z=w(A,z);v.push({event:"stop",offset:z,node:A})}}}}return z})(x,0);return v}function q(w,y,C){var x=0;var F="";var z=[];function B(){if(!w.length||!y.length){return w.length?w:y}if(w[0].offset!=y[0].offset){return(w[0].offset"}function E(G){F+=""}function v(G){(G.event=="start"?A:E)(G.node)}while(w.length||y.length){var D=B();F+=k(C.substr(x,D[0].offset-x));x=D[0].offset;if(D==w){z.reverse().forEach(E);do{v(D.splice(0,1)[0]);D=B()}while(D==w&&D.length&&D[0].offset==x);z.reverse().forEach(A)}else{if(D[0].event=="start"){z.push(D[0].node)}else{z.pop()}v(D.splice(0,1)[0])}}return F+k(C.substr(x))}function m(y){function v(z){return(z&&z.source)||z}function w(A,z){return RegExp(v(A),"m"+(y.cI?"i":"")+(z?"g":""))}function x(D,C){if(D.compiled){return}D.compiled=true;D.k=D.k||D.bK;if(D.k){var z={};function E(G,F){if(y.cI){F=F.toLowerCase()}F.split(" ").forEach(function(H){var I=H.split("|");z[I[0]]=[G,I[1]?Number(I[1]):1]})}if(typeof D.k=="string"){E("keyword",D.k)}else{Object.keys(D.k).forEach(function(F){E(F,D.k[F])})}D.k=z}D.lR=w(D.l||/\b[A-Za-z0-9_]+\b/,true);if(C){if(D.bK){D.b=D.bK.split(" ").join("|")}if(!D.b){D.b=/\B|\b/}D.bR=w(D.b);if(!D.e&&!D.eW){D.e=/\B|\b/}if(D.e){D.eR=w(D.e)}D.tE=v(D.e)||"";if(D.eW&&C.tE){D.tE+=(D.e?"|":"")+C.tE}}if(D.i){D.iR=w(D.i)}if(D.r===undefined){D.r=1}if(!D.c){D.c=[]}var B=[];D.c.forEach(function(F){if(F.v){F.v.forEach(function(G){B.push(o(F,G))})}else{B.push(F=="self"?D:F)}});D.c=B;D.c.forEach(function(F){x(F,D)});if(D.starts){x(D.starts,C)}var A=D.c.map(function(F){return F.bK?"\\.?\\b("+F.b+")\\b\\.?":F.b}).concat([D.tE]).concat([D.i]).map(v).filter(Boolean);D.t=A.length?w(A.join("|"),true):{exec:function(F){return null}};D.continuation={}}x(y)}function c(S,L,J,R){function v(U,V){for(var T=0;T";U+=Z+'">';return U+X+Y}function N(){var U=k(C);if(!I.k){return U}var T="";var X=0;I.lR.lastIndex=0;var V=I.lR.exec(U);while(V){T+=U.substr(X,V.index-X);var W=E(I,V);if(W){H+=W[1];T+=w(W[0],V[0])}else{T+=V[0]}X=I.lR.lastIndex;V=I.lR.exec(U)}return T+U.substr(X)}function F(){if(I.sL&&!f[I.sL]){return k(C)}var T=I.sL?c(I.sL,C,true,I.continuation.top):g(C);if(I.r>0){H+=T.r}if(I.subLanguageMode=="continuous"){I.continuation.top=T.top}return w(T.language,T.value,false,true)}function Q(){return I.sL!==undefined?F():N()}function P(V,U){var T=V.cN?w(V.cN,"",true):"";if(V.rB){D+=T;C=""}else{if(V.eB){D+=k(U)+T;C=""}else{D+=T;C=U}}I=Object.create(V,{parent:{value:I}})}function G(T,X){C+=T;if(X===undefined){D+=Q();return 0}var V=v(X,I);if(V){D+=Q();P(V,X);return V.rB?0:X.length}var W=z(I,X);if(W){var U=I;if(!(U.rE||U.eE)){C+=X}D+=Q();do{if(I.cN){D+=""}H+=I.r;I=I.parent}while(I!=W.parent);if(U.eE){D+=k(X)}C="";if(W.starts){P(W.starts,"")}return U.rE?0:X.length}if(A(X,I)){throw new Error('Illegal lexeme "'+X+'" for mode "'+(I.cN||"")+'"')}C+=X;return X.length||1}var M=j(S);if(!M){throw new Error('Unknown language: "'+S+'"')}m(M);var I=R||M;var D="";for(var K=I;K!=M;K=K.parent){if(K.cN){D=w(K.cN,D,true)}}var C="";var H=0;try{var B,y,x=0;while(true){I.t.lastIndex=x;B=I.t.exec(L);if(!B){break}y=G(L.substr(x,B.index-x),B[0]);x=B.index+y}G(L.substr(x));for(var K=I;K.parent;K=K.parent){if(K.cN){D+=""}}return{r:H,value:D,language:S,top:I}}catch(O){if(O.message.indexOf("Illegal")!=-1){return{r:0,value:k(L)}}else{throw O}}}function g(y,x){x=x||b.languages||Object.keys(f);var v={r:0,value:k(y)};var w=v;x.forEach(function(z){if(!j(z)){return}var A=c(z,y,false);A.language=z;if(A.r>w.r){w=A}if(A.r>v.r){w=v;v=A}});if(w.language){v.second_best=w}return v}function h(v){if(b.tabReplace){v=v.replace(/^((<[^>]+>|\t)+)/gm,function(w,z,y,x){return z.replace(/\t/g,b.tabReplace)})}if(b.useBR){v=v.replace(/\n/g,"
")}return v}function p(z){var y=d(z);var A=r(z);if(A=="no-highlight"){return}var v=A?c(A,y,true):g(y);var w=u(z);if(w.length){var x=document.createElementNS("http://www.w3.org/1999/xhtml","pre");x.innerHTML=v.value;v.value=q(w,u(x),y)}v.value=h(v.value);z.innerHTML=v.value;z.className+=" hljs "+(!A&&v.language||"");z.result={language:v.language,re:v.r};if(v.second_best){z.second_best={language:v.second_best.language,re:v.second_best.r}}}var b={classPrefix:"hljs-",tabReplace:null,useBR:false,languages:undefined};function s(v){b=o(b,v)}function l(){if(l.called){return}l.called=true;var v=document.querySelectorAll("pre code");Array.prototype.forEach.call(v,p)}function a(){addEventListener("DOMContentLoaded",l,false);addEventListener("load",l,false)}var f={};var n={};function e(v,x){var w=f[v]=x(this);if(w.aliases){w.aliases.forEach(function(y){n[y]=v})}}function j(v){return f[v]||f[n[v]]}this.highlight=c;this.highlightAuto=g;this.fixMarkup=h;this.highlightBlock=p;this.configure=s;this.initHighlighting=l;this.initHighlightingOnLoad=a;this.registerLanguage=e;this.getLanguage=j;this.inherit=o;this.IR="[a-zA-Z][a-zA-Z0-9_]*";this.UIR="[a-zA-Z_][a-zA-Z0-9_]*";this.NR="\\b\\d+(\\.\\d+)?";this.CNR="(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)";this.BNR="\\b(0b[01]+)";this.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";this.BE={b:"\\\\[\\s\\S]",r:0};this.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[this.BE]};this.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[this.BE]};this.CLCM={cN:"comment",b:"//",e:"$"};this.CBLCLM={cN:"comment",b:"/\\*",e:"\\*/"};this.HCM={cN:"comment",b:"#",e:"$"};this.NM={cN:"number",b:this.NR,r:0};this.CNM={cN:"number",b:this.CNR,r:0};this.BNM={cN:"number",b:this.BNR,r:0};this.REGEXP_MODE={cN:"regexp",b:/\//,e:/\/[gim]*/,i:/\n/,c:[this.BE,{b:/\[/,e:/\]/,r:0,c:[this.BE]}]};this.TM={cN:"title",b:this.IR,r:0};this.UTM={cN:"title",b:this.UIR,r:0}}();hljs.registerLanguage("bash",function(b){var a={cN:"variable",v:[{b:/\$[\w\d#@][\w\d_]*/},{b:/\$\{(.*?)\}/}]};var d={cN:"string",b:/"/,e:/"/,c:[b.BE,a,{cN:"variable",b:/\$\(/,e:/\)/,c:[b.BE]}]};var c={cN:"string",b:/'/,e:/'/};return{l:/-?[a-z\.]+/,k:{keyword:"if then else elif fi for break continue while in do done exit return set declare case esac export exec",literal:"true false",built_in:"printf echo read cd pwd pushd popd dirs let eval unset typeset readonly getopts source shopt caller type hash bind help sudo",operator:"-ne -eq -lt -gt -f -d -e -s -l -a"},c:[{cN:"shebang",b:/^#![^\n]+sh\s*$/,r:10},{cN:"function",b:/\w[\w\d_]*\s*\(\s*\)\s*\{/,rB:true,c:[b.inherit(b.TM,{b:/\w[\w\d_]*/})],r:0},b.HCM,b.NM,d,c,a]}});hljs.registerLanguage("javascript",function(a){return{aliases:["js"],k:{keyword:"in if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const class",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require"},c:[{cN:"pi",b:/^\s*('|")use strict('|")/,r:10},a.ASM,a.QSM,a.CLCM,a.CBLCLM,a.CNM,{b:"("+a.RSR+"|\\b(case|return|throw)\\b)\\s*",k:"return throw case",c:[a.CLCM,a.CBLCLM,a.REGEXP_MODE,{b:/;/,r:0,sL:"xml"}],r:0},{cN:"function",bK:"function",e:/\{/,c:[a.inherit(a.TM,{b:/[A-Za-z$_][0-9A-Za-z$_]*/}),{cN:"params",b:/\(/,e:/\)/,c:[a.CLCM,a.CBLCLM],i:/["'\(]/}],i:/\[|%/},{b:/\$[(.]/},{b:"\\."+a.IR,r:0}]}});hljs.registerLanguage("xml",function(a){var c="[A-Za-z0-9\\._:-]+";var d={b:/<\?(php)?(?!\w)/,e:/\?>/,sL:"php",subLanguageMode:"continuous"};var b={eW:true,i:/]+/}]}]}]};return{aliases:["html"],cI:true,c:[{cN:"doctype",b:"",r:10,c:[{b:"\\[",e:"\\]"}]},{cN:"comment",b:"",r:10},{cN:"cdata",b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"tag",b:"|$)",e:">",k:{title:"style"},c:[b],starts:{e:"",rE:true,sL:"css"}},{cN:"tag",b:"|$)",e:">",k:{title:"script"},c:[b],starts:{e:"<\/script>",rE:true,sL:"javascript"}},{b:"<%",e:"%>",sL:"vbscript"},d,{cN:"pi",b:/<\?\w+/,e:/\?>/,r:10},{cN:"tag",b:"",c:[{cN:"title",b:"[^ /><]+",r:0},b]}]}}); diff --git a/client/public/images/Icons/bootstrap/bootstrap/docs/js/jquery.min.js b/client/public/images/Icons/bootstrap/bootstrap/docs/js/jquery.min.js new file mode 100644 index 0000000..046e93a --- /dev/null +++ b/client/public/images/Icons/bootstrap/bootstrap/docs/js/jquery.min.js @@ -0,0 +1,4 @@ +/*! jQuery v1.11.0 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k="".trim,l={},m="1.11.0",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(n.isPlainObject(c)||(b=n.isArray(c)))?(b?(b=!1,f=a&&n.isArray(a)?a:[]):f=a&&n.isPlainObject(a)?a:{},g[d]=n.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray||function(a){return"array"===n.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(l.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&n.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:k&&!k.call("\ufeff\xa0")?function(a){return null==a?"":k.call(a)}:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),n.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||n.guid++,e):void 0},now:function(){return+new Date},support:l}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s="sizzle"+-new Date,t=a.document,u=0,v=0,w=eb(),x=eb(),y=eb(),z=function(a,b){return a===b&&(j=!0),0},A="undefined",B=1<<31,C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=D.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",M=L.replace("w","w#"),N="\\["+K+"*("+L+")"+K+"*(?:([*^$|!~]?=)"+K+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+M+")|)|)"+K+"*\\]",O=":("+L+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+N.replace(3,8)+")*)|.*)\\)|)",P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(O),U=new RegExp("^"+M+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L.replace("w","w*")+")"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=/'|\\/g,ab=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),bb=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{G.apply(D=H.call(t.childNodes),t.childNodes),D[t.childNodes.length].nodeType}catch(cb){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function db(a,b,d,e){var f,g,h,i,j,m,p,q,u,v;if((b?b.ownerDocument||b:t)!==l&&k(b),b=b||l,d=d||[],!a||"string"!=typeof a)return d;if(1!==(i=b.nodeType)&&9!==i)return[];if(n&&!e){if(f=Z.exec(a))if(h=f[1]){if(9===i){if(g=b.getElementById(h),!g||!g.parentNode)return d;if(g.id===h)return d.push(g),d}else if(b.ownerDocument&&(g=b.ownerDocument.getElementById(h))&&r(b,g)&&g.id===h)return d.push(g),d}else{if(f[2])return G.apply(d,b.getElementsByTagName(a)),d;if((h=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(h)),d}if(c.qsa&&(!o||!o.test(a))){if(q=p=s,u=b,v=9===i&&a,1===i&&"object"!==b.nodeName.toLowerCase()){m=ob(a),(p=b.getAttribute("id"))?q=p.replace(_,"\\$&"):b.setAttribute("id",q),q="[id='"+q+"'] ",j=m.length;while(j--)m[j]=q+pb(m[j]);u=$.test(a)&&mb(b.parentNode)||b,v=m.join(",")}if(v)try{return G.apply(d,u.querySelectorAll(v)),d}catch(w){}finally{p||b.removeAttribute("id")}}}return xb(a.replace(P,"$1"),b,d,e)}function eb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function fb(a){return a[s]=!0,a}function gb(a){var b=l.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function hb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function ib(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||B)-(~a.sourceIndex||B);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function jb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function kb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function lb(a){return fb(function(b){return b=+b,fb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function mb(a){return a&&typeof a.getElementsByTagName!==A&&a}c=db.support={},f=db.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},k=db.setDocument=function(a){var b,e=a?a.ownerDocument||a:t,g=e.defaultView;return e!==l&&9===e.nodeType&&e.documentElement?(l=e,m=e.documentElement,n=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){k()},!1):g.attachEvent&&g.attachEvent("onunload",function(){k()})),c.attributes=gb(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=gb(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(e.getElementsByClassName)&&gb(function(a){return a.innerHTML="
",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=gb(function(a){return m.appendChild(a).id=s,!e.getElementsByName||!e.getElementsByName(s).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==A&&n){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ab,bb);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ab,bb);return function(a){var c=typeof a.getAttributeNode!==A&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==A?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==A&&n?b.getElementsByClassName(a):void 0},p=[],o=[],(c.qsa=Y.test(e.querySelectorAll))&&(gb(function(a){a.innerHTML="",a.querySelectorAll("[t^='']").length&&o.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||o.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll(":checked").length||o.push(":checked")}),gb(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&o.push("name"+K+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||o.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),o.push(",.*:")})),(c.matchesSelector=Y.test(q=m.webkitMatchesSelector||m.mozMatchesSelector||m.oMatchesSelector||m.msMatchesSelector))&&gb(function(a){c.disconnectedMatch=q.call(a,"div"),q.call(a,"[s!='']:x"),p.push("!=",O)}),o=o.length&&new RegExp(o.join("|")),p=p.length&&new RegExp(p.join("|")),b=Y.test(m.compareDocumentPosition),r=b||Y.test(m.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},z=b?function(a,b){if(a===b)return j=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===t&&r(t,a)?-1:b===e||b.ownerDocument===t&&r(t,b)?1:i?I.call(i,a)-I.call(i,b):0:4&d?-1:1)}:function(a,b){if(a===b)return j=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],k=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:i?I.call(i,a)-I.call(i,b):0;if(f===g)return ib(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)k.unshift(c);while(h[d]===k[d])d++;return d?ib(h[d],k[d]):h[d]===t?-1:k[d]===t?1:0},e):l},db.matches=function(a,b){return db(a,null,null,b)},db.matchesSelector=function(a,b){if((a.ownerDocument||a)!==l&&k(a),b=b.replace(S,"='$1']"),!(!c.matchesSelector||!n||p&&p.test(b)||o&&o.test(b)))try{var d=q.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return db(b,l,null,[a]).length>0},db.contains=function(a,b){return(a.ownerDocument||a)!==l&&k(a),r(a,b)},db.attr=function(a,b){(a.ownerDocument||a)!==l&&k(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!n):void 0;return void 0!==f?f:c.attributes||!n?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},db.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},db.uniqueSort=function(a){var b,d=[],e=0,f=0;if(j=!c.detectDuplicates,i=!c.sortStable&&a.slice(0),a.sort(z),j){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return i=null,a},e=db.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=db.selectors={cacheLength:50,createPseudo:fb,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ab,bb),a[3]=(a[4]||a[5]||"").replace(ab,bb),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||db.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&db.error(a[0]),a},PSEUDO:function(a){var b,c=!a[5]&&a[2];return V.CHILD.test(a[0])?null:(a[3]&&void 0!==a[4]?a[2]=a[4]:c&&T.test(c)&&(b=ob(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ab,bb).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=w[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&w(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==A&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=db.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),t=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&t){k=q[s]||(q[s]={}),j=k[a]||[],n=j[0]===u&&j[1],m=j[0]===u&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[u,n,m];break}}else if(t&&(j=(b[s]||(b[s]={}))[a])&&j[0]===u)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(t&&((l[s]||(l[s]={}))[a]=[u,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||db.error("unsupported pseudo: "+a);return e[s]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?fb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:fb(function(a){var b=[],c=[],d=g(a.replace(P,"$1"));return d[s]?fb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:fb(function(a){return function(b){return db(a,b).length>0}}),contains:fb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:fb(function(a){return U.test(a||"")||db.error("unsupported lang: "+a),a=a.replace(ab,bb).toLowerCase(),function(b){var c;do if(c=n?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===m},focus:function(a){return a===l.activeElement&&(!l.hasFocus||l.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:lb(function(){return[0]}),last:lb(function(a,b){return[b-1]}),eq:lb(function(a,b,c){return[0>c?c+b:c]}),even:lb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:lb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:lb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:lb(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function qb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=v++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[u,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[s]||(b[s]={}),(h=i[d])&&h[0]===u&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function rb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function sb(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function tb(a,b,c,d,e,f){return d&&!d[s]&&(d=tb(d)),e&&!e[s]&&(e=tb(e,f)),fb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||wb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:sb(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=sb(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=sb(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ub(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],i=g||d.relative[" "],j=g?1:0,k=qb(function(a){return a===b},i,!0),l=qb(function(a){return I.call(b,a)>-1},i,!0),m=[function(a,c,d){return!g&&(d||c!==h)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>j;j++)if(c=d.relative[a[j].type])m=[qb(rb(m),c)];else{if(c=d.filter[a[j].type].apply(null,a[j].matches),c[s]){for(e=++j;f>e;e++)if(d.relative[a[e].type])break;return tb(j>1&&rb(m),j>1&&pb(a.slice(0,j-1).concat({value:" "===a[j-2].type?"*":""})).replace(P,"$1"),c,e>j&&ub(a.slice(j,e)),f>e&&ub(a=a.slice(e)),f>e&&pb(a))}m.push(c)}return rb(m)}function vb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,i,j,k){var m,n,o,p=0,q="0",r=f&&[],s=[],t=h,v=f||e&&d.find.TAG("*",k),w=u+=null==t?1:Math.random()||.1,x=v.length;for(k&&(h=g!==l&&g);q!==x&&null!=(m=v[q]);q++){if(e&&m){n=0;while(o=a[n++])if(o(m,g,i)){j.push(m);break}k&&(u=w)}c&&((m=!o&&m)&&p--,f&&r.push(m))}if(p+=q,c&&q!==p){n=0;while(o=b[n++])o(r,s,g,i);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=E.call(j));s=sb(s)}G.apply(j,s),k&&!f&&s.length>0&&p+b.length>1&&db.uniqueSort(j)}return k&&(u=w,h=t),r};return c?fb(f):f}g=db.compile=function(a,b){var c,d=[],e=[],f=y[a+" "];if(!f){b||(b=ob(a)),c=b.length;while(c--)f=ub(b[c]),f[s]?d.push(f):e.push(f);f=y(a,vb(e,d))}return f};function wb(a,b,c){for(var d=0,e=b.length;e>d;d++)db(a,b[d],c);return c}function xb(a,b,e,f){var h,i,j,k,l,m=ob(a);if(!f&&1===m.length){if(i=m[0]=m[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&c.getById&&9===b.nodeType&&n&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(ab,bb),b)||[])[0],!b)return e;a=a.slice(i.shift().value.length)}h=V.needsContext.test(a)?0:i.length;while(h--){if(j=i[h],d.relative[k=j.type])break;if((l=d.find[k])&&(f=l(j.matches[0].replace(ab,bb),$.test(i[0].type)&&mb(b.parentNode)||b))){if(i.splice(h,1),a=f.length&&pb(i),!a)return G.apply(e,f),e;break}}}return g(a,m)(f,b,!n,e,$.test(a)&&mb(b.parentNode)||b),e}return c.sortStable=s.split("").sort(z).join("")===s,c.detectDuplicates=!!j,k(),c.sortDetached=gb(function(a){return 1&a.compareDocumentPosition(l.createElement("div"))}),gb(function(a){return a.innerHTML="
","#"===a.firstChild.getAttribute("href")})||hb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&gb(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||hb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),gb(function(a){return null==a.getAttribute("disabled")})||hb(J,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),db}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return n.inArray(a,b)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;e>b;b++)if(n.contains(d[b],this))return!0}));for(b=0;e>b;b++)n.find(a,d[b],c);return c=this.pushStack(e>1?n.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=a.document,A=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,B=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:A.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:z,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=z.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return y.find(a);this.length=1,this[0]=d}return this.context=z,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};B.prototype=n.fn,y=n(z);var C=/^(?:parents|prev(?:Until|All))/,D={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!n(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b,c=n(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(n.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?n.inArray(this[0],n(a)):n.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function E(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return E(a,"nextSibling")},prev:function(a){return E(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return n.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(D[a]||(e=n.unique(e)),C.test(a)&&(e=e.reverse())),this.pushStack(e)}});var F=/\S+/g,G={};function H(a){var b=G[a]={};return n.each(a.match(F)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?G[a]||H(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&n.each(arguments,function(a,c){var d;while((d=n.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var I;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){if(a===!0?!--n.readyWait:!n.isReady){if(!z.body)return setTimeout(n.ready);n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(z,[n]),n.fn.trigger&&n(z).trigger("ready").off("ready"))}}});function J(){z.addEventListener?(z.removeEventListener("DOMContentLoaded",K,!1),a.removeEventListener("load",K,!1)):(z.detachEvent("onreadystatechange",K),a.detachEvent("onload",K))}function K(){(z.addEventListener||"load"===event.type||"complete"===z.readyState)&&(J(),n.ready())}n.ready.promise=function(b){if(!I)if(I=n.Deferred(),"complete"===z.readyState)setTimeout(n.ready);else if(z.addEventListener)z.addEventListener("DOMContentLoaded",K,!1),a.addEventListener("load",K,!1);else{z.attachEvent("onreadystatechange",K),a.attachEvent("onload",K);var c=!1;try{c=null==a.frameElement&&z.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!n.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}J(),n.ready()}}()}return I.promise(b)};var L="undefined",M;for(M in n(l))break;l.ownLast="0"!==M,l.inlineBlockNeedsLayout=!1,n(function(){var a,b,c=z.getElementsByTagName("body")[0];c&&(a=z.createElement("div"),a.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",b=z.createElement("div"),c.appendChild(a).appendChild(b),typeof b.style.zoom!==L&&(b.style.cssText="border:0;margin:0;width:1px;padding:1px;display:inline;zoom:1",(l.inlineBlockNeedsLayout=3===b.offsetWidth)&&(c.style.zoom=1)),c.removeChild(a),a=b=null)}),function(){var a=z.createElement("div");if(null==l.deleteExpando){l.deleteExpando=!0;try{delete a.test}catch(b){l.deleteExpando=!1}}a=null}(),n.acceptData=function(a){var b=n.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(O,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}n.data(a,b,c)}else c=void 0}return c}function Q(a){var b;for(b in a)if(("data"!==b||!n.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function R(a,b,d,e){if(n.acceptData(a)){var f,g,h=n.expando,i=a.nodeType,j=i?n.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||n.guid++:h),j[k]||(j[k]=i?{}:{toJSON:n.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=n.extend(j[k],b):j[k].data=n.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[n.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[n.camelCase(b)])):f=g,f +}}function S(a,b,c){if(n.acceptData(a)){var d,e,f=a.nodeType,g=f?n.cache:a,h=f?a[n.expando]:n.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){n.isArray(b)?b=b.concat(n.map(b,n.camelCase)):b in d?b=[b]:(b=n.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!Q(d):!n.isEmptyObject(d))return}(c||(delete g[h].data,Q(g[h])))&&(f?n.cleanData([a],!0):l.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}n.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?n.cache[a[n.expando]]:a[n.expando],!!a&&!Q(a)},data:function(a,b,c){return R(a,b,c)},removeData:function(a,b){return S(a,b)},_data:function(a,b,c){return R(a,b,c,!0)},_removeData:function(a,b){return S(a,b,!0)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=n.data(f),1===f.nodeType&&!n._data(f,"parsedAttrs"))){c=g.length;while(c--)d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d]));n._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){n.data(this,a)}):arguments.length>1?this.each(function(){n.data(this,a,b)}):f?P(f,a,n.data(f,a)):void 0},removeData:function(a){return this.each(function(){n.removeData(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=n._data(a,b),c&&(!d||n.isArray(c)?d=n._data(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return n._data(a,c)||n._data(a,c,{empty:n.Callbacks("once memory").add(function(){n._removeData(a,b+"queue"),n._removeData(a,c)})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},X=/^(?:checkbox|radio)$/i;!function(){var a=z.createDocumentFragment(),b=z.createElement("div"),c=z.createElement("input");if(b.setAttribute("className","t"),b.innerHTML="
`s and ``s. -@table-cell-padding: 8px; -//** Padding for cells in `.table-condensed`. -@table-condensed-cell-padding: 5px; - -//** Default background color used for all tables. -@table-bg: transparent; -//** Background color used for `.table-striped`. -@table-bg-accent: #f9f9f9; -//** Background color used for `.table-hover`. -@table-bg-hover: #f5f5f5; -@table-bg-active: @table-bg-hover; - -//** Border color for table and cell borders. -@table-border-color: #ddd; - - -//== Buttons -// -//## For each of Bootstrap's buttons, define text, background and border color. - -@btn-font-weight: normal; - -@btn-default-color: #333; -@btn-default-bg: #fff; -@btn-default-border: #ccc; - -@btn-primary-color: #fff; -@btn-primary-bg: @brand-primary; -@btn-primary-border: darken(@btn-primary-bg, 5%); - -@btn-success-color: #fff; -@btn-success-bg: @brand-success; -@btn-success-border: darken(@btn-success-bg, 5%); - -@btn-info-color: #fff; -@btn-info-bg: @brand-info; -@btn-info-border: darken(@btn-info-bg, 5%); - -@btn-warning-color: #fff; -@btn-warning-bg: @brand-warning; -@btn-warning-border: darken(@btn-warning-bg, 5%); - -@btn-danger-color: #fff; -@btn-danger-bg: @brand-danger; -@btn-danger-border: darken(@btn-danger-bg, 5%); - -@btn-link-disabled-color: @gray-light; - - -//== Forms -// -//## - -//** `` background color -@input-bg: #fff; -//** `` background color -@input-bg-disabled: @gray-lighter; - -//** Text color for ``s -@input-color: @gray; -//** `` border color -@input-border: #ccc; -//** `` border radius -@input-border-radius: @border-radius-base; -//** Border color for inputs on focus -@input-border-focus: #66afe9; - -//** Placeholder text color -@input-color-placeholder: @gray-light; - -//** Default `.form-control` height -@input-height-base: (@line-height-computed + (@padding-base-vertical * 2) + 2); -//** Large `.form-control` height -@input-height-large: (ceil(@font-size-large * @line-height-large) + (@padding-large-vertical * 2) + 2); -//** Small `.form-control` height -@input-height-small: (floor(@font-size-small * @line-height-small) + (@padding-small-vertical * 2) + 2); - -@legend-color: @gray-dark; -@legend-border-color: #e5e5e5; - -//** Background color for textual input addons -@input-group-addon-bg: @gray-lighter; -//** Border color for textual input addons -@input-group-addon-border-color: @input-border; - - -//== Dropdowns -// -//## Dropdown menu container and contents. - -//** Background for the dropdown menu. -@dropdown-bg: #fff; -//** Dropdown menu `border-color`. -@dropdown-border: rgba(0,0,0,.15); -//** Dropdown menu `border-color` **for IE8**. -@dropdown-fallback-border: #ccc; -//** Divider color for between dropdown items. -@dropdown-divider-bg: #e5e5e5; - -//** Dropdown link text color. -@dropdown-link-color: @gray-dark; -//** Hover color for dropdown links. -@dropdown-link-hover-color: darken(@gray-dark, 5%); -//** Hover background for dropdown links. -@dropdown-link-hover-bg: #f5f5f5; - -//** Active dropdown menu item text color. -@dropdown-link-active-color: @component-active-color; -//** Active dropdown menu item background color. -@dropdown-link-active-bg: @component-active-bg; - -//** Disabled dropdown menu item background color. -@dropdown-link-disabled-color: @gray-light; - -//** Text color for headers within dropdown menus. -@dropdown-header-color: @gray-light; - -// Note: Deprecated @dropdown-caret-color as of v3.1.0 -@dropdown-caret-color: #000; - - -//-- Z-index master list -// -// Warning: Avoid customizing these values. They're used for a bird's eye view -// of components dependent on the z-axis and are designed to all work together. -// -// Note: These variables are not generated into the Customizer. - -@zindex-navbar: 1000; -@zindex-dropdown: 1000; -@zindex-popover: 1010; -@zindex-tooltip: 1030; -@zindex-navbar-fixed: 1030; -@zindex-modal-background: 1040; -@zindex-modal: 1050; - - -//== Media queries breakpoints -// -//## Define the breakpoints at which your layout will change, adapting to different screen sizes. - -// Extra small screen / phone -// Note: Deprecated @screen-xs and @screen-phone as of v3.0.1 -@screen-xs: 480px; -@screen-xs-min: @screen-xs; -@screen-phone: @screen-xs-min; - -// Small screen / tablet -// Note: Deprecated @screen-sm and @screen-tablet as of v3.0.1 -@screen-sm: 768px; -@screen-sm-min: @screen-sm; -@screen-tablet: @screen-sm-min; - -// Medium screen / desktop -// Note: Deprecated @screen-md and @screen-desktop as of v3.0.1 -@screen-md: 992px; -@screen-md-min: @screen-md; -@screen-desktop: @screen-md-min; - -// Large screen / wide desktop -// Note: Deprecated @screen-lg and @screen-lg-desktop as of v3.0.1 -@screen-lg: 1200px; -@screen-lg-min: @screen-lg; -@screen-lg-desktop: @screen-lg-min; - -// So media queries don't overlap when required, provide a maximum -@screen-xs-max: (@screen-sm-min - 1); -@screen-sm-max: (@screen-md-min - 1); -@screen-md-max: (@screen-lg-min - 1); - - -//== Grid system -// -//## Define your custom responsive grid. - -//** Number of columns in the grid. -@grid-columns: 12; -//** Padding between columns. Gets divided in half for the left and right. -@grid-gutter-width: 30px; -// Navbar collapse -//** Point at which the navbar becomes uncollapsed. -@grid-float-breakpoint: @screen-sm-min; -//** Point at which the navbar begins collapsing. -@grid-float-breakpoint-max: (@grid-float-breakpoint - 1); - - -//== Container sizes -// -//## Define the maximum width of `.container` for different screen sizes. - -// Small screen / tablet -@container-tablet: ((720px + @grid-gutter-width)); -//** For `@screen-sm-min` and up. -@container-sm: @container-tablet; - -// Medium screen / desktop -@container-desktop: ((940px + @grid-gutter-width)); -//** For `@screen-md-min` and up. -@container-md: @container-desktop; - -// Large screen / wide desktop -@container-large-desktop: ((1140px + @grid-gutter-width)); -//** For `@screen-lg-min` and up. -@container-lg: @container-large-desktop; - - -//== Navbar -// -//## - -// Basics of a navbar -@navbar-height: 50px; -@navbar-margin-bottom: @line-height-computed; -@navbar-border-radius: @border-radius-base; -@navbar-padding-horizontal: floor((@grid-gutter-width / 2)); -@navbar-padding-vertical: ((@navbar-height - @line-height-computed) / 2); -@navbar-collapse-max-height: 340px; - -@navbar-default-color: #777; -@navbar-default-bg: #f8f8f8; -@navbar-default-border: darken(@navbar-default-bg, 6.5%); - -// Navbar links -@navbar-default-link-color: #777; -@navbar-default-link-hover-color: #333; -@navbar-default-link-hover-bg: transparent; -@navbar-default-link-active-color: #555; -@navbar-default-link-active-bg: darken(@navbar-default-bg, 6.5%); -@navbar-default-link-disabled-color: #ccc; -@navbar-default-link-disabled-bg: transparent; - -// Navbar brand label -@navbar-default-brand-color: @navbar-default-link-color; -@navbar-default-brand-hover-color: darken(@navbar-default-brand-color, 10%); -@navbar-default-brand-hover-bg: transparent; - -// Navbar toggle -@navbar-default-toggle-hover-bg: #ddd; -@navbar-default-toggle-icon-bar-bg: #888; -@navbar-default-toggle-border-color: #ddd; - - -// Inverted navbar -// Reset inverted navbar basics -@navbar-inverse-color: @gray-light; -@navbar-inverse-bg: #222; -@navbar-inverse-border: darken(@navbar-inverse-bg, 10%); - -// Inverted navbar links -@navbar-inverse-link-color: @gray-light; -@navbar-inverse-link-hover-color: #fff; -@navbar-inverse-link-hover-bg: transparent; -@navbar-inverse-link-active-color: @navbar-inverse-link-hover-color; -@navbar-inverse-link-active-bg: darken(@navbar-inverse-bg, 10%); -@navbar-inverse-link-disabled-color: #444; -@navbar-inverse-link-disabled-bg: transparent; - -// Inverted navbar brand label -@navbar-inverse-brand-color: @navbar-inverse-link-color; -@navbar-inverse-brand-hover-color: #fff; -@navbar-inverse-brand-hover-bg: transparent; - -// Inverted navbar toggle -@navbar-inverse-toggle-hover-bg: #333; -@navbar-inverse-toggle-icon-bar-bg: #fff; -@navbar-inverse-toggle-border-color: #333; - - -//== Navs -// -//## - -//=== Shared nav styles -@nav-link-padding: 10px 15px; -@nav-link-hover-bg: @gray-lighter; - -@nav-disabled-link-color: @gray-light; -@nav-disabled-link-hover-color: @gray-light; - -@nav-open-link-hover-color: #fff; - -//== Tabs -@nav-tabs-border-color: #ddd; - -@nav-tabs-link-hover-border-color: @gray-lighter; - -@nav-tabs-active-link-hover-bg: @body-bg; -@nav-tabs-active-link-hover-color: @gray; -@nav-tabs-active-link-hover-border-color: #ddd; - -@nav-tabs-justified-link-border-color: #ddd; -@nav-tabs-justified-active-link-border-color: @body-bg; - -//== Pills -@nav-pills-border-radius: @border-radius-base; -@nav-pills-active-link-hover-bg: @component-active-bg; -@nav-pills-active-link-hover-color: @component-active-color; - - -//== Pagination -// -//## - -@pagination-color: @link-color; -@pagination-bg: #fff; -@pagination-border: #ddd; - -@pagination-hover-color: @link-hover-color; -@pagination-hover-bg: @gray-lighter; -@pagination-hover-border: #ddd; - -@pagination-active-color: #fff; -@pagination-active-bg: @brand-primary; -@pagination-active-border: @brand-primary; - -@pagination-disabled-color: @gray-light; -@pagination-disabled-bg: #fff; -@pagination-disabled-border: #ddd; - - -//== Pager -// -//## - -@pager-bg: @pagination-bg; -@pager-border: @pagination-border; -@pager-border-radius: 15px; - -@pager-hover-bg: @pagination-hover-bg; - -@pager-active-bg: @pagination-active-bg; -@pager-active-color: @pagination-active-color; - -@pager-disabled-color: @pagination-disabled-color; - - -//== Jumbotron -// -//## - -@jumbotron-padding: 30px; -@jumbotron-color: inherit; -@jumbotron-bg: @gray-lighter; -@jumbotron-heading-color: inherit; -@jumbotron-font-size: ceil((@font-size-base * 1.5)); - - -//== Form states and alerts -// -//## Define colors for form feedback states and, by default, alerts. - -@state-success-text: #3c763d; -@state-success-bg: #dff0d8; -@state-success-border: darken(spin(@state-success-bg, -10), 5%); - -@state-info-text: #31708f; -@state-info-bg: #d9edf7; -@state-info-border: darken(spin(@state-info-bg, -10), 7%); - -@state-warning-text: #8a6d3b; -@state-warning-bg: #fcf8e3; -@state-warning-border: darken(spin(@state-warning-bg, -10), 5%); - -@state-danger-text: #a94442; -@state-danger-bg: #f2dede; -@state-danger-border: darken(spin(@state-danger-bg, -10), 5%); - - -//== Tooltips -// -//## - -//** Tooltip max width -@tooltip-max-width: 200px; -//** Tooltip text color -@tooltip-color: #fff; -//** Tooltip background color -@tooltip-bg: #000; -@tooltip-opacity: .9; - -//** Tooltip arrow width -@tooltip-arrow-width: 5px; -//** Tooltip arrow color -@tooltip-arrow-color: @tooltip-bg; - - -//== Popovers -// -//## - -//** Popover body background color -@popover-bg: #fff; -//** Popover maximum width -@popover-max-width: 276px; -//** Popover border color -@popover-border-color: rgba(0,0,0,.2); -//** Popover fallback border color -@popover-fallback-border-color: #ccc; - -//** Popover title background color -@popover-title-bg: darken(@popover-bg, 3%); - -//** Popover arrow width -@popover-arrow-width: 10px; -//** Popover arrow color -@popover-arrow-color: #fff; - -//** Popover outer arrow width -@popover-arrow-outer-width: (@popover-arrow-width + 1); -//** Popover outer arrow color -@popover-arrow-outer-color: fadein(@popover-border-color, 5%); -//** Popover outer arrow fallback color -@popover-arrow-outer-fallback-color: darken(@popover-fallback-border-color, 20%); - - -//== Labels -// -//## - -//** Default label background color -@label-default-bg: @gray-light; -//** Primary label background color -@label-primary-bg: @brand-primary; -//** Success label background color -@label-success-bg: @brand-success; -//** Info label background color -@label-info-bg: @brand-info; -//** Warning label background color -@label-warning-bg: @brand-warning; -//** Danger label background color -@label-danger-bg: @brand-danger; - -//** Default label text color -@label-color: #fff; -//** Default text color of a linked label -@label-link-hover-color: #fff; - - -//== Modals -// -//## - -//** Padding applied to the modal body -@modal-inner-padding: 20px; - -//** Padding applied to the modal title -@modal-title-padding: 15px; -//** Modal title line-height -@modal-title-line-height: @line-height-base; - -//** Background color of modal content area -@modal-content-bg: #fff; -//** Modal content border color -@modal-content-border-color: rgba(0,0,0,.2); -//** Modal content border color **for IE8** -@modal-content-fallback-border-color: #999; - -//** Modal backdrop background color -@modal-backdrop-bg: #000; -//** Modal backdrop opacity -@modal-backdrop-opacity: .5; -//** Modal header border color -@modal-header-border-color: #e5e5e5; -//** Modal footer border color -@modal-footer-border-color: @modal-header-border-color; - -@modal-lg: 900px; -@modal-md: 600px; -@modal-sm: 300px; - - -//== Alerts -// -//## Define alert colors, border radius, and padding. - -@alert-padding: 15px; -@alert-border-radius: @border-radius-base; -@alert-link-font-weight: bold; - -@alert-success-bg: @state-success-bg; -@alert-success-text: @state-success-text; -@alert-success-border: @state-success-border; - -@alert-info-bg: @state-info-bg; -@alert-info-text: @state-info-text; -@alert-info-border: @state-info-border; - -@alert-warning-bg: @state-warning-bg; -@alert-warning-text: @state-warning-text; -@alert-warning-border: @state-warning-border; - -@alert-danger-bg: @state-danger-bg; -@alert-danger-text: @state-danger-text; -@alert-danger-border: @state-danger-border; - - -//== Progress bars -// -//## - -//** Background color of the whole progress component -@progress-bg: #f5f5f5; -//** Progress bar text color -@progress-bar-color: #fff; - -//** Default progress bar color -@progress-bar-bg: @brand-primary; -//** Success progress bar color -@progress-bar-success-bg: @brand-success; -//** Warning progress bar color -@progress-bar-warning-bg: @brand-warning; -//** Danger progress bar color -@progress-bar-danger-bg: @brand-danger; -//** Info progress bar color -@progress-bar-info-bg: @brand-info; - - -//== List group -// -//## - -//** Background color on `.list-group-item` -@list-group-bg: #fff; -//** `.list-group-item` border color -@list-group-border: #ddd; -//** List group border radius -@list-group-border-radius: @border-radius-base; - -//** Background color of single list elements on hover -@list-group-hover-bg: #f5f5f5; -//** Text color of active list elements -@list-group-active-color: @component-active-color; -//** Background color of active list elements -@list-group-active-bg: @component-active-bg; -//** Border color of active list elements -@list-group-active-border: @list-group-active-bg; -@list-group-active-text-color: lighten(@list-group-active-bg, 40%); - -@list-group-link-color: #555; -@list-group-link-heading-color: #333; - - -//== Panels -// -//## - -@panel-bg: #fff; -@panel-body-padding: 15px; -@panel-border-radius: @border-radius-base; - -//** Border color for elements within panels -@panel-inner-border: #ddd; -@panel-footer-bg: #f5f5f5; - -@panel-default-text: @gray-dark; -@panel-default-border: #ddd; -@panel-default-heading-bg: #f5f5f5; - -@panel-primary-text: #fff; -@panel-primary-border: @brand-primary; -@panel-primary-heading-bg: @brand-primary; - -@panel-success-text: @state-success-text; -@panel-success-border: @state-success-border; -@panel-success-heading-bg: @state-success-bg; - -@panel-info-text: @state-info-text; -@panel-info-border: @state-info-border; -@panel-info-heading-bg: @state-info-bg; - -@panel-warning-text: @state-warning-text; -@panel-warning-border: @state-warning-border; -@panel-warning-heading-bg: @state-warning-bg; - -@panel-danger-text: @state-danger-text; -@panel-danger-border: @state-danger-border; -@panel-danger-heading-bg: @state-danger-bg; - - -//== Thumbnails -// -//## - -//** Padding around the thumbnail image -@thumbnail-padding: 4px; -//** Thumbnail background color -@thumbnail-bg: @body-bg; -//** Thumbnail border color -@thumbnail-border: #ddd; -//** Thumbnail border radius -@thumbnail-border-radius: @border-radius-base; - -//** Custom text color for thumbnail captions -@thumbnail-caption-color: @text-color; -//** Padding around the thumbnail caption -@thumbnail-caption-padding: 9px; - - -//== Wells -// -//## - -@well-bg: #f5f5f5; -@well-border: darken(@well-bg, 7%); - - -//== Badges -// -//## - -@badge-color: #fff; -//** Linked badge text color on hover -@badge-link-hover-color: #fff; -@badge-bg: @gray-light; - -//** Badge text color in active nav link -@badge-active-color: @link-color; -//** Badge background color in active nav link -@badge-active-bg: #fff; - -@badge-font-weight: bold; -@badge-line-height: 1; -@badge-border-radius: 10px; - - -//== Breadcrumbs -// -//## - -@breadcrumb-padding-vertical: 8px; -@breadcrumb-padding-horizontal: 15px; -//** Breadcrumb background color -@breadcrumb-bg: #f5f5f5; -//** Breadcrumb text color -@breadcrumb-color: #ccc; -//** Text color of current page in the breadcrumb -@breadcrumb-active-color: @gray-light; -//** Textual separator for between breadcrumb elements -@breadcrumb-separator: "/"; - - -//== Carousel -// -//## - -@carousel-text-shadow: 0 1px 2px rgba(0,0,0,.6); - -@carousel-control-color: #fff; -@carousel-control-width: 15%; -@carousel-control-opacity: .5; -@carousel-control-font-size: 20px; - -@carousel-indicator-active-bg: #fff; -@carousel-indicator-border-color: #fff; - -@carousel-caption-color: #fff; - - -//== Close -// -//## - -@close-font-weight: bold; -@close-color: #000; -@close-text-shadow: 0 1px 0 #fff; - - -//== Code -// -//## - -@code-color: #c7254e; -@code-bg: #f9f2f4; - -@kbd-color: #fff; -@kbd-bg: #333; - -@pre-bg: #f5f5f5; -@pre-color: @gray-dark; -@pre-border-color: #ccc; -@pre-scrollable-max-height: 340px; - - -//== Type -// -//## - -//** Text muted color -@text-muted: @gray-light; -//** Abbreviations and acronyms border color -@abbr-border-color: @gray-light; -//** Headings small color -@headings-small-color: @gray-light; -//** Blockquote small color -@blockquote-small-color: @gray-light; -//** Blockquote font size -@blockquote-font-size: (@font-size-base * 1.25); -//** Blockquote border color -@blockquote-border-color: @gray-lighter; -//** Page header border color -@page-header-border-color: @gray-lighter; - - -//== Miscellaneous -// -//## - -//** Horizontal line color. -@hr-border: @gray-lighter; - -//** Horizontal offset for forms and lists. -@component-offset-horizontal: 180px; diff --git a/chronos/static/images/Icons/bootstrap/bootstrap/src/test/bootstrap-switch.coffee b/chronos/static/images/Icons/bootstrap/bootstrap/src/test/bootstrap-switch.coffee deleted file mode 100644 index 2093a26..0000000 --- a/chronos/static/images/Icons/bootstrap/bootstrap/src/test/bootstrap-switch.coffee +++ /dev/null @@ -1 +0,0 @@ -describe "Bootstrap Switch", -> \ No newline at end of file diff --git a/chronos/static/images/TOTO.png b/chronos/static/images/TOTO.png deleted file mode 100644 index a41660900d25895051b98abd76dbd872d0b9de35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72758 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

O^9N+L&l&D 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 diff --git a/chronos/static/images/bitMapTemp.png b/chronos/static/images/bitMapTemp.png deleted file mode 100644 index e99f59e54a59dbc30551f181430dd3e797243170..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3327 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 JPDHLkV1lbpOgI1l diff --git a/chronos/static/images/bitMapTempTwo.png b/chronos/static/images/bitMapTempTwo.png deleted file mode 100644 index 0e455a1041857ed87a1ac32df5278b13edcb9571..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3332 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 F{s%%D09*h7 diff --git a/chronos/static/images/chillerOne.png b/chronos/static/images/chillerOne.png deleted file mode 100644 index 039e7dd9ad88b619179215e047deaf1d0c3105ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3769 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.IEversion&&0b)return a;h=-1;for(a=(k=a.split(/\r\n|\n|\r/)).length;++hb;k[h]+=d.trim(g.slice(0,f))+((g=g.slice(f)).length?c:""))f=2==e||(f=g.slice(0,b+1).match(/\S*(\s)?$/))[1]?b:f.input.length-f[0].length||1==e&&b||f.input.length+(f=g.slice(b).match(/^\S*/))[0].length;g=d.trim(g)}return k.join(c)};d.trim=function(a){return a.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")};d.wrappedText=function(a,b,c,e,h,f,g,k){var l=d.text(a,b,c,e,h,f,g);if(l){var m=l.getBBox();if(m.width>k){var n="\n";d.isModern||(n="
");k=Math.floor(k/(m.width/ -b.length));2c&&(a=c);return a};d.isDefined=function(a){return void 0===a?!1:!0};d.stripNumbers=function(a){return a.replace(/[0-9]+/g,"")};d.roundTo=function(a,b){if(0>b)return a;var c=Math.pow(10,b);return Math.round(a*c)/c};d.toFixed=function(a,b){var c=String(Math.round(a*Math.pow(10,b)));if(0=g[b].contains){var l=a-Math.floor(a/g[b].contains)*g[b].contains;"ss"==b?(l=d.formatNumber(l,f),1==l.split(k)[0].length&&(l="0"+l)):l=d.roundTo(l,f.precision);("mm"==b||"hh"==b)&&10>l&&(l="0"+l);c=l+""+e[b]+""+c;a=Math.floor(a/g[b].contains);b=g[b].nextInterval;return d.formatDuration(a,b,c,e,h,f)}"ss"==b&&(a=d.formatNumber(a,f),1==a.split(k)[0].length&&(a="0"+ -a));("mm"==b||"hh"==b)&&10>a&&(a="0"+a);c=a+""+e[b]+""+c;if(g[h].count>g[b].count)for(a=g[b].count;aa?"-":"";a=Math.abs(a);var k=String(a),l=!1;-1!=k.indexOf("e")&&(l=!0);0<=c&&!l&&(k= -d.toFixed(a,c));var m="";if(l)m=k;else{var k=k.split("."),l=String(k[0]),n;for(n=l.length;0<=n;n-=3)m=n!=l.length?0!==n?l.substring(n-3,n)+b+m:l.substring(n-3,n)+m:l.substring(n-3,n);void 0!==k[1]&&(m=m+f+k[1]);void 0!==c&&0=c.x-5&&a<=c.x+c.width+5&&b>=c.y-5&&b<=c.y+c.height+5?!0:!1};d.isPercents=function(a){if(-1!=String(a).indexOf("%"))return!0};d.findPosX=function(a){var b=a,c=a.offsetLeft;if(a.offsetParent){for(;a=a.offsetParent;)c+=a.offsetLeft; -for(;(b=b.parentNode)&&b!=document.body;)c-=b.scrollLeft||0}return c};d.findPosY=function(a){var b=a,c=a.offsetTop;if(a.offsetParent){for(;a=a.offsetParent;)c+=a.offsetTop;for(;(b=b.parentNode)&&b!=document.body;)c-=b.scrollTop||0}return c};d.findIfFixed=function(a){if(a.offsetParent)for(;a=a.offsetParent;)if("fixed"==d.getStyle(a,"position"))return!0;return!1};d.findIfAuto=function(a){return a.style&&"auto"==d.getStyle(a,"overflow")?!0:a.parentNode?d.findIfAuto(a.parentNode):!1};d.findScrollLeft= -function(a,b){a.scrollLeft&&(b+=a.scrollLeft);return a.parentNode?d.findScrollLeft(a.parentNode,b):b};d.findScrollTop=function(a,b){a.scrollTop&&(b+=a.scrollTop);return a.parentNode?d.findScrollTop(a.parentNode,b):b};d.formatValue=function(a,b,c,e,h,f,g,k){if(b){void 0===h&&(h="");var l;for(l=0;la&&(g="-");a=Math.abs(a);if(1=b[k].number&&(l=a/b[k].number,m=Number(e.precision),1>m&&(m=1),c=d.roundTo(l,m),m=d.formatNumber(c,{precision:-1,decimalSeparator:e.decimalSeparator,thousandsSeparator:e.thousandsSeparator}),!h||l==c)){f=g+""+m+""+b[k].prefix;break}}else for(k=0;k"==a&&(a="easeOutSine");"<"== -a&&(a="easeInSine");"elastic"==a&&(a="easeOutElastic");return a};d.getObjById=function(a,b){var c,e;for(e=0;e"));return a};d.fixBrakes=function(a){if(d.isModern){var b=RegExp("
","g");a&&(a=a.replace(b,"\n"))}else a=d.fixNewLines(a);return a};d.deleteObject=function(a,b){if(a){if(void 0===b||null===b)b= -20;if(0!==b)if("[object Array]"===Object.prototype.toString.call(a))for(var c=0;cb)return e/2*b*b+c;b--;return-e/2*(b*(b-2)-1)+c};d.easeInSine=function(a,b,c,e,h){return-e*Math.cos(b/h*(Math.PI/2))+e+c};d.easeOutSine=function(a,b,c,e,h){return e*Math.sin(b/h*(Math.PI/2))+c};d.easeOutElastic=function(a,b,c,e,h){a=1.70158;var d=0,g=e;if(0===b)return c;if(1==(b/=h))return c+e;d||(d=.3*h);gb?Math.abs(b)-1:Math.abs(b);var d;for(d=0;db?Number("0."+c+String(a)):Number(String(a)+c)};d.setCN=function(a,b,c,e){if(a.addClassNames&&b&&(b=b.node)&&c){var d=b.getAttribute("class");a=a.classNamePrefix+"-";e&&(a="");d?b.setAttribute("class",d+" "+a+c):b.setAttribute("class",a+c)}};d.parseDefs=function(a,b){for(var c in a){var e=typeof a[c];if(0a&&(a=3)):a=this.width/ -this.minHorizontalGap,this.gridCountR=Math.max(a,1)):this.gridCountR=this.gridCount;this.axisWidth=this.axisLine.axisWidth;this.addTitle()},setOrientation:function(a){this.orientation=a?"H":"V"},addTitle:function(){var a=this.title;this.titleLabel=null;if(a){var b=this.chart,c=this.titleColor;void 0===c&&(c=b.color);var e=this.titleFontSize;isNaN(e)&&(e=b.fontSize+1);a=d.text(b.container,a,c,b.fontFamily,e,this.titleAlign,this.titleBold);d.setCN(b,a,this.bcn+"title");this.titleLabel=a}},positionTitle:function(){var a= -this.titleLabel;if(a){var b,c,e=this.labelsSet,h={};0this.autoRotateCount&&!isNaN(this.autoRotateAngle)&&(this.labelRotationR=this.autoRotateAngle),a=k;a<=B;a++){p=q+y*(a+Math.floor((D-q)/y))-C;"DD"==x&&(p+=36E5);p=d.resetDateToMin(new Date(p),x,v,r).getTime();"MM"==x&&(h=(p-l)/y,1.5<=(p-l)/y&&(p=p-(h-1)*y+d.getPeriodDuration("DD", -3),p=d.resetDateToMin(new Date(p),x,1).getTime(),C+=y));h=(p-this.startTime)*this.stepWidth;if("radar"==b.type){if(0>h||h>this.axisWidth)continue;h=this.y+(this.axisWidth-h)}else this.rotate?(h+=this.x-this.viX,"date"==this.type&&"middle"==this.gridPosition&&(J=-y*this.stepWidth/2)):h="date"==this.type?this.axisWidth-h+(this.y-this.viY):h+(this.y-this.viY);f=!1;this.nextPeriod[g]&&(f=this.checkPeriodChange(this.nextPeriod[g],1,p,l,g));l=!1;f&&this.markPeriodChange?(f=this.dateFormatsObject[this.nextPeriod[g]], -this.twoLineMode&&(f=this.dateFormatsObject[g]+"\n"+f,f=d.fixBrakes(f)),l=!0):f=this.dateFormatsObject[g];t||(l=!1);this.currentDateFormat=f;f=d.formatDate(new Date(p),f,b);if(a==k&&!c||a==B&&!e)f=" ";this.labelFunction&&(f=this.labelFunction(f,new Date(p),this,x,v,m).toString());this.boldLabels&&(l=!0);m=new this.axisItemRenderer(this,h,f,!1,n,J,!1,l);this.pushAxisItem(m);m=l=p;if(!isNaN(u))for(h=1;h=this.gridCountR&&(this.gridCountR=1);this.totals=[];this.data=this.chart.chartData;var a=this.chart;"xy"!=a.type&&(this.stackGraphs("smoothedLine"),this.stackGraphs("line"), -this.stackGraphs("column"),this.stackGraphs("step"));this.recalculateToPercents&&this.recalculate();this.synchronizationMultiplier&&this.synchronizeWith?(d.isString(this.synchronizeWith)&&(this.synchronizeWith=a.getValueAxisById(this.synchronizeWith)),this.synchronizeWith&&(this.synchronizeWithAxis(this.synchronizeWith),this.foundGraphs=!0)):(this.foundGraphs=!1,this.getMinMax())},draw:function(){d.ValueAxis.base.draw.call(this);var a=this.chart,b=this.set;this.labelRotationR=this.labelRotation;d.setCN(a, -this.set,"value-axis value-axis-"+this.id);d.setCN(a,this.labelsSet,"value-axis value-axis-"+this.id);d.setCN(a,this.axisLine.axisSet,"value-axis value-axis-"+this.id);var c=this.type;"duration"==c&&(this.duration="ss");!0===this.dataChanged&&(this.updateData(),this.dataChanged=!1);"date"==c&&(this.logarithmic=!1,this.min=this.minRR,this.max=this.maxRR,this.getDateMinMax());if(this.logarithmic){var e=this.treatZeroAs,h=this.getMin(0,this.data.length-1);this.minReal=h||0>=this.minimum){this.fire("logarithmicAxisFailed",{type:"logarithmicAxisFailed",chart:a});return}}this.grid0=null;var f,g,k=a.dx,l=a.dy,e=!1,h=this.logarithmic;if(isNaN(this.min)||isNaN(this.max)||!this.foundGraphs||Infinity==this.min||-Infinity==this.max)e=!0;else{var m=this.labelFrequency,n=this.showFirstLabel,q=this.showLastLabel,p=1;f=0;this.minCalc=this.min;this.maxCalc=this.max;this.strictMinMax&&(isNaN(this.minimum)||(this.min=this.minimum), -isNaN(this.maximum)||(this.max=this.maximum));isNaN(this.minZoom)||(this.min=this.minZoom);isNaN(this.maxZoom)||(this.max=this.maxZoom);var r=Math.round((this.maxCalc-this.minCalc)/this.step)+1,t;!0===h?(t=Math.log(this.max)*Math.LOG10E-Math.log(this.minReal)*Math.LOG10E,this.stepWidth=this.axisWidth/t,t>this.logGridLimit&&(r=Math.ceil(Math.log(this.max)*Math.LOG10E)+1,f=Math.round(Math.log(this.minReal)*Math.LOG10E),r>this.gridCountR&&(p=Math.ceil(r/this.gridCountR)))):this.stepWidth=this.axisWidth/ -(this.max-this.min);var u=0;1>this.step&&-1this.maxDecCount&&(u=this.maxDecCount);var w=this.precision;isNaN(w)||(u=w);this.max=d.roundTo(this.max,this.maxDecCount);this.min=d.roundTo(this.min,this.maxDecCount);g={};g.precision=u;g.decimalSeparator=a.nf.decimalSeparator;g.thousandsSeparator=a.nf.thousandsSeparator;this.numberFormatter=g;var A,v=this.guides,x=v.length;if(0=this.autoRotateCount&&!isNaN(this.autoRotateAngle)&& -(this.labelRotationR=this.autoRotateAngle),g=f;g10*this.min&&(c-=this.min),c=d.roundTo(c,this.maxDecCount+1),!this.integersOnly||Math.round(c)==c)if(isNaN(w)||Number(d.toFixed(c,w))==c){!0===h&&(0===c&&(c=this.minReal),t>this.logGridLimit&&(c=Math.pow(10,g)));A=this.formatValue(c,!1,g);Math.round(g/m)!=g/m&&(A=void 0);if(0===g&&!n||g==r-1&&!q)A=" ";f=this.getCoordinate(c);var K;this.rotate&&this.autoWrap&&(K=this.stepWidth*u-10);A=new this.axisItemRenderer(this, -f,A,void 0,K,void 0,void 0,this.boldLabels);this.pushAxisItem(A);if(c==this.baseValue&&"radar"!=a.type){var I,X,y=this.viW,B=this.viH;A=this.viX;x=this.viY;"H"==this.orientation?0<=f&&f<=y+1&&(I=[f,f,f+k],X=[B,0,l]):0<=f&&f<=B+1&&(I=[0,y,y+k],X=[f,f,f+l]);I&&(f=d.fitToBounds(2*this.gridAlpha,0,1),isNaN(this.zeroGridAlpha)||(f=this.zeroGridAlpha),f=d.line(a.container,I,X,this.gridColor,f,1,this.dashLength),f.translate(A,x),this.grid0=f,a.axesSet.push(f),f.toBack(),d.setCN(a,f,this.bcn+"zero-grid-"+ -this.id),d.setCN(a,f,this.bcn+"zero-grid"))}if(!isNaN(G)&&0this.baseValue&&this.max>this.baseValue&&(t=this.min);this.minc&&(f.precision=Math.abs(c)),b&&1b&&c.shift();for(var e=Math.floor(Math.log(Math.abs(a))*Math.LOG10E),d=0;da){if(g=Math.pow(10,-g)*f,g==Math.round(g))return f}else if(f==Math.round(f))return f}},stackGraphs:function(a){var b=this.stackType;"stacked"==b&&(b="regular");"line"==b&&(b="none");"100% stacked"==b&&(b="100%");this.stackType=b;var c=[],e=[],h=[],f=[],g,k=this.chart.graphs,l,m,n,q,p=this.baseValue,r=!1;if("line"==a||"step"==a||"smoothedLine"==a)r=!0;if(r&&("regular"==b||"100%"==b))for(q=0;qg?(m.values.close=g,isNaN(e[l])?m.values.open=p:(m.values.close+=e[l],m.values.open=e[l]),e[l]=m.values.close):(m.values.close=g,isNaN(h[l])?m.values.open=p:(m.values.close+=h[l],m.values.open=h[l]),h[l]=m.values.close)))}}for(l=this.start;l<= -this.end;l++)for(q=0;qc?(m.values.close=d.fitToBounds(c+e[l],-100,100),m.values.open=e[l],e[l]=m.values.close):(m.values.close=d.fitToBounds(c+h[l],-100,100), -m.values.open=h[l],h[l]=m.values.close)))))},recalculate:function(){var a=this.chart,b=a.graphs,c;for(c=0;cq&&g++}if(m=a.recalculateFromDate)m=d.getDate(m,a.dataDateFormat,"fff"),g=a.getClosestIndex(a.chartData,"time",m.getTime(),!0,0,a.chartData.length),k=a.chartData.length-1;for(m=g;m<=k&&(g=this.data[m].axes[this.id].graphs[e.id],f=g.values[h],e.recalculateValue&&(f=g.dataContext[e.valueField+e.recalculateValue]),isNaN(f));m++);this.recBaseValue=f;for(h=l;h<=k;h++){g=this.data[h].axes[this.id].graphs[e.id];g.percents={};var l=g.values,p;for(p in l)g.percents[p]= -"percents"!=p?l[p]/f*100-100:l[p]}}}},getMinMax:function(){var a=!1,b=this.chart,c=b.graphs,e;for(e=0;ethis.max&&(this.max=c.toValue),c.value>this.max&&(this.max=c.value);isNaN(this.minimum)||(this.min=this.minimum);isNaN(this.maximum)||(this.max=this.maximum);"date"==this.type&&this.getDateMinMax();this.min>this.max&& -(a=this.max,this.max=this.min,this.min=a);isNaN(this.minTemp)||(this.min=this.minTemp);isNaN(this.maxTemp)||(this.max=this.maxTemp);this.minReal=this.min;this.maxReal=this.max;0===this.min&&0===this.max&&(this.max=9);this.min>this.max&&(this.min=this.max-1);a=this.min;b=this.max;c=this.max-this.min;e=0===c?Math.pow(10,Math.floor(Math.log(Math.abs(this.max))*Math.LOG10E))/10:Math.pow(10,Math.floor(Math.log(Math.abs(c))*Math.LOG10E))/10;isNaN(this.maximum)&&isNaN(this.maxTemp)&&(this.max=Math.ceil(this.max/ -e)*e+e);isNaN(this.minimum)&&isNaN(this.minTemp)&&(this.min=Math.floor(this.min/e)*e-e);0>this.min&&0<=a&&(this.min=0);0=b&&(this.max=0);"100%"==this.stackType&&(this.min=0>this.min?-100:0,this.max=0>this.max?0:100);c=this.max-this.min;e=Math.pow(10,Math.floor(Math.log(Math.abs(c))*Math.LOG10E))/10;this.step=Math.ceil(c/this.gridCountR/e)*e;c=Math.pow(10,Math.floor(Math.log(Math.abs(this.step))*Math.LOG10E));c=d.fixStepE(c);e=Math.ceil(this.step/c);5=e&&2c?(this.maxDecCount=Math.abs(Math.log(Math.abs(c))*Math.LOG10E),this.maxDecCount=Math.round(this.maxDecCount),this.step=d.roundTo(this.step,this.maxDecCount+1)):this.maxDecCount=0;this.min=this.step*Math.floor(this.min/this.step);this.max=this.step*Math.ceil(this.max/this.step);0>this.min&&0<=a&&(this.min=0);0=b&&(this.max=0);1a&&(a=f);else for(var g in d)d.hasOwnProperty(g)&&"percents"!=g&& -"total"!=g&&(f=d[g],f>a&&(a=f))}}}return a},dispatchZoomEvent:function(a,b){var c={type:"axisZoomed",startValue:a,endValue:b,target:this,chart:this.chart};this.fire(c.type,c)},zoomOut:function(){var a=this.chart;"xy"!=a.type&&(this.maxZoom=this.minZoom=void 0,a.updateAfterValueZoom())},zoomToValues:function(a,b){var c=this.chart;"xy"==c.type?(bthis.max&&(b=this.max),c={type:"axisSelfZoomed"},c.chart=this.chart,c.valueAxis=this,c.multiplier=this.axisWidth/ -Math.abs(this.getCoordinate(b)-this.getCoordinate(a)),c.startValue=a,c.endValue=b,c.position="V"==this.orientation?this.reversed?this.getCoordinate(a):this.getCoordinate(b):this.reversed?this.getCoordinate(b):this.getCoordinate(a),this.fire(c.type,c)):(this.minZoom=a,this.maxZoom=b,c.updateAfterValueZoom())},coordinateToValue:function(a){if(isNaN(a))return NaN;var b=this.axisWidth,c=this.stepWidth,e=this.reversed,d=this.rotate,f=this.min,g=this.minReal;return!0===this.logarithmic?Math.pow(10,(d?!0=== -e?(b-a)/c:a/c:!0===e?a/c:(b-a)/c)+Math.log(g)*Math.LOG10E):!0===e?d?f-(a-b)/c:a/c+f:d?a/c+f:f-(a-b)/c},getCoordinate:function(a,b){if(isNaN(a))return NaN;var c=this.rotate,e=this.reversed,d=this.axisWidth,f=this.stepWidth,g=this.min,k=this.minReal;!0===this.logarithmic?(0===a&&(a=this.treatZeroAs),g=Math.log(a)*Math.LOG10E-Math.log(k)*Math.LOG10E,c=c?!0===e?d-f*g:f*g:!0===e?f*g:d-f*g):c=!0===e?c?d-f*(a-g):f*(a-g):c?f*(a-g):d-f*(a-g);c=this.rotate?c+(this.x-this.viX):c+(this.y-this.viY);1E7n?(z=V+ha*Math.sin(S)-B-3+2,E+=-ha*Math.cos(S)-Ja*Math.sin(S)-4):z-=B+t+3+3,z-=oa):(0n?(z=V+B+3-ha/2*Math.sin(S)+2,E+=ha/2*Math.cos(S)):z+=B+v+3+3,z+=oa)):(z+=ka+t/2-ba,E+=qa,P?(0sa+2||0>f))Z.remove(),Z=null}else{0<=b&&b<=V+1&&(0V+1||zc&&"object"==typeof n&&(n=n.join(",").split(",").reverse());"V"==g?(g=d.rect(l,a.viW,c,n,m),g.translate(h,b-k+f)):(g=d.rect(l,c,a.viH,n, -m),g.translate(b-k+h,f));d.setCN(a.chart,g,"guide-fill");e.id&&d.setCN(a.chart,g,"guide-fill-"+e.id);this.set=l.set([g])},graphics:function(){return this.set},getLabel:function(){}})})();(function(){var d=window.AmCharts;d.AmChart=d.Class({construct:function(a){this.svgIcons=this.tapToActivate=!0;this.theme=a;this.classNamePrefix="amcharts";this.addClassNames=!1;this.version="3.17.3";d.addChart(this);this.createEvents("dataUpdated","init","rendered","drawn","failed","resized");this.height=this.width="100%";this.dataChanged=!0;this.chartCreated=!1;this.previousWidth=this.previousHeight=0;this.backgroundColor="#FFFFFF";this.borderAlpha=this.backgroundAlpha=0;this.color=this.borderColor= -"#000000";this.fontFamily="Verdana";this.fontSize=11;this.usePrefixes=!1;this.autoResize=!0;this.autoDisplay=!1;this.addCodeCredits=!0;this.precision=-1;this.percentPrecision=2;this.decimalSeparator=".";this.thousandsSeparator=",";this.labels=[];this.allLabels=[];this.titles=[];this.marginRight=this.marginLeft=this.autoMarginOffset=0;this.timeOuts=[];this.creditsPosition="top-left";var b=document.createElement("div"),c=b.style;c.overflow="hidden";c.position="relative";c.textAlign="left";this.chartDiv= -b;b=document.createElement("div");c=b.style;c.overflow="hidden";c.position="relative";c.textAlign="left";this.legendDiv=b;this.titleHeight=0;this.hideBalloonTime=150;this.handDrawScatter=2;this.handDrawThickness=1;this.prefixesOfBigNumbers=[{number:1E3,prefix:"k"},{number:1E6,prefix:"M"},{number:1E9,prefix:"G"},{number:1E12,prefix:"T"},{number:1E15,prefix:"P"},{number:1E18,prefix:"E"},{number:1E21,prefix:"Z"},{number:1E24,prefix:"Y"}];this.prefixesOfSmallNumbers=[{number:1E-24,prefix:"y"},{number:1E-21, -prefix:"z"},{number:1E-18,prefix:"a"},{number:1E-15,prefix:"f"},{number:1E-12,prefix:"p"},{number:1E-9,prefix:"n"},{number:1E-6,prefix:"\u03bc"},{number:.001,prefix:"m"}];this.panEventsEnabled=!0;this.product="amcharts";this.animations=[];this.balloon=new d.AmBalloon(this.theme);this.balloon.chart=this;d.applyTheme(this,a,"AmChart")},drawChart:function(){0a||isNaN(a))a=0;this.chartDiv.style.height=a+"px"}}return a},updateWidth:function(){var a=this.divRealWidth,b=this.divRealHeight,c=this.legend;if(c){var e=this.legendDiv,d=e.offsetWidth;isNaN(c.width)|| -(d=c.width);c.ieW&&(d=c.ieW);var f=e.offsetHeight,e=e.style,g=this.chartDiv.style,c=c.position;if("right"==c||"left"==c){a-=d;if(0>a||isNaN(a))a=0;g.width=a+"px";this.balloon.setBounds(2,2,a-2,this.realHeight);"left"==c?(g.left=d+"px",e.left="0px"):(g.left="0px",e.left=a+"px");b>f&&(e.top=(b-f)/2+"px")}}return a},getTitleHeight:function(){this.drawTitles(!0);return this.titleHeight},addTitle:function(a,b,c,e,d){isNaN(b)&&(b=this.fontSize+2);a={text:a,size:b,color:c,alpha:e,bold:d,enabled:!0};this.titles.push(a); -return a},handleWheel:function(a){var b=0;a||(a=window.event);a.wheelDelta?b=a.wheelDelta/120:a.detail&&(b=-a.detail/3);b&&this.handleWheelReal(b,a.shiftKey);a.preventDefault&&a.preventDefault()},handleWheelReal:function(){},handleDocTouchStart:function(){this.hideBalloonReal();this.handleMouseMove();this.tmx=this.mouseX;this.tmy=this.mouseY},handleDocTouchEnd:function(){-.5Math.abs(this.mouseX- -this.tmx)&&4>Math.abs(this.mouseY-this.tmy)&&(this.tapped=!0)):this.tapped=!1},addListeners:function(){var a=this,b=a.chartDiv;document.addEventListener?(a.panEventsEnabled&&(b.style.msTouchAction="none"),"ontouchstart"in document.documentElement&&(b.addEventListener("touchstart",function(b){a.handleTouchStart.call(a,b)},!0),b.addEventListener("touchmove",function(b){a.handleMouseMove.call(a,b)},!0),b.addEventListener("touchend",function(b){a.handleTouchEnd.call(a,b)},!0),document.addEventListener("touchstart", -function(b){a.handleDocTouchStart.call(a,b)}),document.addEventListener("touchend",function(b){a.handleDocTouchEnd.call(a,b)})),b.addEventListener("mousedown",function(b){a.mouseIsOver=!0;a.handleMouseMove.call(a,b);a.handleMouseDown.call(a,b)},!0),b.addEventListener("mouseover",function(b){a.handleMouseOver.call(a,b)},!0),b.addEventListener("mouseout",function(b){a.handleMouseOut.call(a,b)},!0)):(b.attachEvent("onmousedown",function(b){a.handleMouseDown.call(a,b)}),b.attachEvent("onmouseover",function(b){a.handleMouseOver.call(a, -b)}),b.attachEvent("onmouseout",function(b){a.handleMouseOut.call(a,b)}))},dispDUpd:function(){if(!this.skipEvents){var a;this.dispatchDataUpdated&&(this.dispatchDataUpdated=!1,a="dataUpdated",this.fire(a,{type:a,chart:this}));this.chartCreated||(this.chartCreated=!0,a="init",this.fire(a,{type:a,chart:this}));this.chartRendered||(a="rendered",this.fire(a,{type:a,chart:this}),this.chartRendered=!0);a="drawn";this.fire(a,{type:a,chart:this})}this.skipEvents=!1},validateSize:function(){var a=this;a.premeasure(); -a.checkDisplay();if(a.divRealWidth!=a.previousWidth||a.divRealHeight!=a.previousHeight){var b=a.legend;if(0a.valueAxis.minMaxMultiplier&&a.positiveClip(a.set));break;case "radar":a.createRadarGraph();break;case "xy":a.createXYGraph(),a.positiveClip(a.set)}a.playedTO=setTimeout(function(){a.setAnimationPlayed.call(a)},500*a.chart.startDuration)}},setAnimationPlayed:function(){this.animationPlayed=!0},createXYGraph:function(){var a=[],b=[],c=this.xAxis,e=this.yAxis;this.pmh=e.viH+1;this.pmw=c.viW+1;this.pmy=this.pmx=0;var d;for(d=this.start;d<=this.end;d++){var f= -this.data[d].axes[c.id].graphs[this.id],g=f.values,k=g.x,l=g.y,g=c.getCoordinate(k,this.noRounding),m=e.getCoordinate(l,this.noRounding);!isNaN(k)&&!isNaN(l)&&(a.push(g),b.push(m),f.x=g,f.y=m,k=this.createBullet(f,g,m,d),l=this.labelText)&&(f=this.createLabel(f,g,m,l),this.positionLabel(g,m,f,k),this.allBullets.push(f))}this.drawLineGraph(a,b);this.launchAnimation()},createRadarGraph:function(){var a=this.valueAxis.stackType,b=[],c=[],e=[],d=[],f,g,k,l,m;for(m=this.start;m<=this.end;m++){var n=this.data[m].axes[this.valueAxis.id].graphs[this.id], -q,p;"none"==a||"3d"==a?q=n.values.value:(q=n.values.close,p=n.values.open);if(isNaN(q))this.connect||(this.drawLineGraph(b,c,e,d),b=[],c=[],e=[],d=[]);else{var r=this.y-(this.valueAxis.getCoordinate(q,this.noRounding)-this.height),r=r*this.valueAxis.rMultiplier,t=180-360/(this.end-this.start+1)*m;"middle"==this.valueAxis.pointPosition&&(t-=180/(this.end-this.start+1));q=r*Math.sin(t/180*Math.PI);r*=Math.cos(t/180*Math.PI);b.push(q);c.push(r);if(!isNaN(p)){var u=this.y-(this.valueAxis.getCoordinate(p, -this.noRounding)-this.height),u=u*this.valueAxis.rMultiplier,w=u*Math.sin(t/180*Math.PI),t=u*Math.cos(t/180*Math.PI);e.push(w);d.push(t);isNaN(k)&&(k=w);isNaN(l)&&(l=t)}t=this.createBullet(n,q,r,m);n.x=q;n.y=r;if(w=this.labelText)n=this.createLabel(n,q,r,w),this.positionLabel(q,r,n,t),this.allBullets.push(n);isNaN(f)&&(f=q);isNaN(g)&&(g=r)}}b.push(f);c.push(g);isNaN(k)||(e.push(k),d.push(l));this.drawLineGraph(b,c,e,d);this.launchAnimation()},positionLabel:function(a,b,c,e){var d="middle",f=!1,g= -this.labelPosition,k=c.getBBox();if(e){var l=e.graphDataItem,m=this.chart.rotate,n=l.isNegative,q=this.chart,p=this.valueAxis;b-=k.height/4/2;void 0!==l.labelIsNegative&&(n=l.labelIsNegative);switch(g){case "top":g=m?"top":n?"bottom":"top";break;case "right":g=m?n?"left":"right":"right";break;case "bottom":g=m?"bottom":n?"top":"bottom";break;case "left":g=m?n?"right":"left":"left"}var r=l.columnGraphics,t=0,u=0;r&&(t=r.x,u=r.y);var w=this.labelOffset;switch(g){case "top":b=p.reversed?b+(e.size/2+ -k.height/2+w):b-(e.size/2+k.height/2+w);break;case "right":d="start";a+=e.size/2+w;break;case "bottom":b=p.reversed?b-(e.size/2+k.height/2+w):b+(e.size/2+k.height/2+w);break;case "left":d="end";a-=e.size/2+w;break;case "inside":"column"==this.type&&(f=!0,m?n?(d="end",a=t-3-w):(d="start",a=t+3+w):b=n?u+7+w:u-10-w);break;case "middle":"column"==this.type&&(f=!0,m?a-=(a-t)/2+w-3:b-=(b-u)/2+w-3)}"auto"!=this.labelAnchor&&(d=this.labelAnchor);c.attr({"text-anchor":d});this.labelRotation&&c.rotate(this.labelRotation); -c.translate(a,b);k=c.getBBox();!this.showAllValueLabels&&r&&f&&(k.height>l.columnHeight||k.width>l.columnWidth)&&(c.remove(),c=!1);if(c&&("serial"==q.type||"gantt"==q.type))if(m){if(0>b||b>this.height)c.remove(),c=!1}else if(0>a||a>this.width)c.remove(),c=!1;return c}},getGradRotation:function(){var a=270;"horizontal"==this.gradientOrientation&&(a=0);return this.gradientRotation=a},createSerialGraph:function(){this.dashLengthSwitched=this.fillColorsSwitched=this.lineColorSwitched=void 0;var a=this.chart, -b=this.id,c=this.index,e=this.data,h=this.chart.container,f=this.valueAxis,g=this.type,k=this.columnWidthReal,l=this.showBulletsAt;isNaN(this.columnWidth)||(k=this.columnWidth);isNaN(k)&&(k=.8);var m=this.useNegativeColorIfDown,n=this.width,q=this.height,p=this.y,r=this.rotate,t=this.columnCount,u=d.toCoordinate(this.cornerRadiusTop,k/2),w=this.connect,A=[],v=[],x,y,B,D,C=this.chart.graphs.length,J,G=this.dx/this.tcc,K=this.dy/this.tcc,I=f.stackType,X=this.start,fa=this.end,P=this.scrollbar,oa="graph-column-"; -P&&(oa="scrollbar-graph-column-");var qa=this.categoryAxis,ka=this.baseCoord,Ra=this.negativeBase,ca=this.columnIndex,aa=this.lineThickness,V=this.lineAlpha,sa=this.lineColorR,ba=this.dashLength,ea=this.set,ta,ga=this.getGradRotation(),S=this.chart.columnSpacing,W=qa.cellWidth,wa=(W*k-t)/t;S>wa&&(S=wa);var E,z,la,ha=q+1,Ja=n+1,Z=0,qb=0,rb,sb,eb,fb,tb=this.fillColorsR,Ka=this.negativeFillColors,Da=this.negativeLineColor,Wa=this.fillAlphas,Xa=this.negativeFillAlphas;"object"==typeof Wa&&(Wa=Wa[0]); -"object"==typeof Xa&&(Xa=Xa[0]);var ub=this.noRounding;"step"==g&&(ub=!1);var gb=f.getCoordinate(f.min);f.logarithmic&&(gb=f.getCoordinate(f.minReal));this.minCoord=gb;this.resetBullet&&(this.bullet="none");if(!(P||"line"!=g&&"smoothedLine"!=g&&"step"!=g||(1==e.length&&"step"!=g&&"none"==this.bullet&&(this.bullet="round",this.resetBullet=!0),!Ka&&void 0==Da||m))){var Sa=Ra;Sa>f.max&&(Sa=f.max);Sak&&(k=1);var Mb=this.fixedColumnWidth;isNaN(Mb)||(k= -Mb);var L;if("line"==g||"step"==g||"smoothedLine"==g){if(0Y?!0:!1);if(!P)switch(this.showBalloonAt){case "close":z.y=F;break;case "open":z.y=N;break;case "high":z.y= -Fa;break;case "low":z.y=Ea}var ma=E.x[qa.id],Ua=this.periodSpan-1;"step"!=g||isNaN(E.cellWidth)||(W=E.cellWidth);var ra=Math.floor(W/2)+Math.floor(Ua*W/2),Aa=ra,lb=0;"left"==this.stepDirection&&(lb=(2*W+Ua*W)/2,ma-=lb);"center"==this.stepDirection&&(lb=W/2,ma-=lb);"start"==this.pointPosition&&(ma-=W/2+Math.floor(Ua*W/2),ra=0,Aa=Math.floor(W)+Math.floor(Ua*W));"end"==this.pointPosition&&(ma+=W/2+Math.floor(Ua*W/2),ra=Math.floor(W)+Math.floor(Ua*W),Aa=0);if(Nb){var Bb=this.columnWidth;isNaN(Bb)||(ra*= -Bb,Aa*=Bb)}P||(z.x=ma);-1E5>ma&&(ma=-1E5);ma>n+1E5&&(ma=n+1E5);r?(H=F,R=N,N=F=ma,isNaN(na)&&!this.fillToGraph&&(R=ka),Oa=Ea,Pa=Fa):(R=H=ma,isNaN(na)&&!this.fillToGraph&&(N=ka));if(!Ab&&YNa?(Ma&&(Ya=!0),Ma=!1):(Ma||(Ya=!0),Ma=!0):z.isNegative=Y=jb||Math.abs(F-ib)>=jb)A.push(H),v.push(F),hb=H,ib=F;xa=H;ya=F;ia=H;ja=F;!La||isNaN(N)||isNaN(R)||(T.push(R),U.push(N));if(Ya||void 0!=z.lineColor||void 0!=z.fillColors||!isNaN(z.dashLength))this.drawLineGraph(A,v,T,U),A=[H],v=[F],T=[],U=[],!La||isNaN(N)||isNaN(R)||(T.push(R),U.push(N)),m?Ma?(this.lineColorSwitched=sa,this.fillColorsSwitched=tb):(this.lineColorSwitched=Da,this.fillColorsSwitched=Ka):(this.lineColorSwitched= -z.lineColor,this.fillColorsSwitched=z.fillColors),this.dashLengthSwitched=z.dashLength;z.gap&&(this.drawLineGraph(A,v,T,U),A=[],v=[],T=[],U=[])}break;case "smoothedLine":if(isNaN(Y))w||(this.drawSmoothedGraph(A,v,T,U),A=[],v=[],T=[],U=[]);else{if(Math.abs(H-hb)>=jb||Math.abs(F-ib)>=jb)A.push(H),v.push(F),hb=H,ib=F;xa=H;ya=F;ia=H;ja=F;!La||isNaN(N)||isNaN(R)||(T.push(R),U.push(N));void 0==z.lineColor&&void 0==z.fillColors&&isNaN(z.dashLength)||(this.drawSmoothedGraph(A,v,T,U),A=[H],v=[F],T=[],U=[], -!La||isNaN(N)||isNaN(R)||(T.push(R),U.push(N)),this.lineColorSwitched=z.lineColor,this.fillColorsSwitched=z.fillColors,this.dashLengthSwitched=z.dashLength);z.gap&&(this.drawSmoothedGraph(A,v,T,U),A=[],v=[],T=[],U=[])}break;case "step":if(!isNaN(Y)){r?(isNaN(x)||(A.push(x),v.push(F-ra)),v.push(F-ra),A.push(H),v.push(F+Aa),A.push(H),!La||isNaN(N)||isNaN(R)||(isNaN(B)||(T.push(B),U.push(N-ra)),T.push(R),U.push(N-ra),T.push(R),U.push(N+Aa))):(isNaN(y)||(v.push(y),A.push(H-ra)),A.push(H-ra),v.push(F), -A.push(H+Aa),v.push(F),!La||isNaN(N)||isNaN(R)||(isNaN(D)||(T.push(R-ra),U.push(D)),T.push(R-ra),U.push(N),T.push(R+Aa),U.push(N)));x=H;y=F;B=R;D=N;xa=H;ya=F;ia=H;ja=F;if(Ya||void 0!=z.lineColor||void 0!=z.fillColors||!isNaN(z.dashLength)){var bc=A[A.length-2],cc=v[v.length-2];A.pop();v.pop();this.drawLineGraph(A,v,T,U);A=[bc];v=[cc];r?(v.push(F+Aa),A.push(H)):(A.push(H+Aa),v.push(F));T=[];U=[];this.lineColorSwitched=z.lineColor;this.fillColorsSwitched=z.fillColors;this.dashLengthSwitched=z.dashLength; -m&&(Ma?(this.lineColorSwitched=sa,this.fillColorsSwitched=tb):(this.lineColorSwitched=Da,this.fillColorsSwitched=Ka))}if(Nb||z.gap)x=y=NaN,this.drawLineGraph(A,v,T,U),A=[],v=[],T=[],U=[]}else if(!w){if(1>=this.periodSpan||1ra+Aa)x=y=NaN;this.drawLineGraph(A,v,T,U);A=[];v=[];T=[];U=[]}break;case "column":ua=Ba;void 0!=z.lineColor&&(ua=z.lineColor);if(!isNaN(Y)){m||(z.isNegative=YQb&&na>Qb)){var va;if(r){"3d"==I?(O=F-(t/2-this.depthCount+1)*(k+S)+S/2+K*ca,Q=R+G*ca,va=ca):(O=Math.floor(F-(t/2-ca)*(k+S)+S/2),Q=R,va=0);M=k;xa=H;ya=O+k/2;ia=H;ja=O+k/2;O+M>q+va*K&&(M=q-O+va*K);Oda?!0:!1;isNaN(E.percentWidthValue)||(M=this.height*E.percentWidthValue/100,O=wb,wb+=M,ya=O+M/2);On+va*G&&(M=n-Q+va*G);Qq&&(M=q-O),0>O&&(M+=O,O=0),Ona?(Cb=[H,Pa],Db=[R,Oa]):(Cb=[R,Pa],Db=[H,Oa]);!isNaN(Pa)&&!isNaN(Oa)&&Fn&&(M=n-Q),0>Q&&(M+=Q,Q=0),da=F-N,Q=na&&(Ta=0);var pa=new d.Cuboid(h,M,da,G,K,Ia,Ta,aa,ua,V,ga,u,r,ba,$a,kb,oa),Eb,Fb;Y>na?(Eb=[F,Fa],Fb=[N,Ea]):(Eb=[N,Fa],Fb=[F,Ea]); -!isNaN(Fa)&&!isNaN(Ea)&&HY?H-Zb/2-2-db-pb:H+Zb/2+3+db+pb):(bb=xa,cb=0>Y?F+$b/2+db+pb:F-$b/2-3-db-pb);Qa.translate(bb,cb);f.totals[L]=Qa;r?(0>cb||cb>q)&&Qa.remove():(0>bb||bb>n)&&Qa.remove()}}}}}}if("line"==g||"step"==g||"smoothedLine"==g)"smoothedLine"==g?this.drawSmoothedGraph(A,v,T,U):this.drawLineGraph(A,v,T,U),P||this.launchAnimation();this.bulletsHidden&&this.hideBullets();this.customBulletsHidden&& -this.hideCustomBullets()},animateColumns:function(a,b){var c=this,e=c.chart.startDuration;0h.height&&(y=h.height),0>y&&(y=0));q=d.line(l,a,b,r,q,p,A,!1,!0,f);d.setCN(k,q,h.bcn+"stroke");m.push(q);m.click(function(a){h.handleGraphEvent(a, -"clickGraph")}).mouseover(function(a){h.handleGraphEvent(a,"rollOverGraph")}).mouseout(function(a){h.handleGraphEvent(a,"rollOutGraph")});void 0===w||h.useNegativeColorIfDown||(p=d.line(l,a,b,w,t,p,A,!1,!0,f),d.setCN(k,p,h.bcn+"stroke"),d.setCN(k,p,h.bcn+"stroke-negative"),n.push(p));if(0 -a&&(a=this.fillAlphas),0===a&&(a=this.bulletAlpha),0===a&&(a=1));return a},createBullet:function(a,b,c){if(!isNaN(b)&&!isNaN(c)){var e=this.chart,h=this.container,f=this.bulletOffset,g=this.bulletSize;isNaN(a.bulletSize)||(g=a.bulletSize);var k=a.values.value,l=this.maxValue,m=this.minValue,n=this.maxBulletSize,q=this.minBulletSize;isNaN(l)||(isNaN(k)||(g=(k-m)/(l-m)*(n-q)+q),m==l&&(g=n));l=g;this.bulletAxis&&(g=a.values.error,isNaN(g)||(k=g),g=this.bulletAxis.stepWidth*k);gb-0||b-0>this.width||c<-g/2||c-0>this.height)p.remove(),p=null;p&&(this.bulletSet.push(p),p.translate(b,c),this.addListeners(p,a),this.allBullets.push(p));a.bx=b;a.by=c;d.setCN(e,p,this.bcn+ -"bullet");a.className&&d.setCN(e,p,a.className,!0)}p?(p.size=g||0,a.bulletGraphics=p):p={size:0};p.graphDataItem=a;return p}},showBullets:function(){var a=this.allBullets,b;this.bulletsHidden=!1;for(b=0;ba&&(a=0),a>c&&(a=c)):(a=a.mouseX-this.x-1,0>a&&(a=0),a>b&&(a=b));return a},updateCrosshair:function(){var a=this.chart,b=a.mouseX-this.x,c=a.mouseY-this.y,e=this.vLine,h=this.hLine,b=d.fitToBounds(b,0,this.width),c=d.fitToBounds(c,0,this.height);e&&0a&& -(h=a,g=c-a),cb&&(f=b,k=e-b),eB&&(f=B-a),e+f=this.data.length||0>K+f||(b.start=K+f,b.end=C+f,this.fire(b.type,b)))}else{"start"==D?w-=k.cellWidth/2:"mouse"==D&&(e.mouseIsOver? -w=A?g-2:f-2:isNaN(this.tempPosition)||(w=this.tempPosition-2));if(A){if(0>w)if(C)w=0;else{this.hideCursor();return}if(w>r+1)if(C)w=r+1;else{this.hideCursor();return}}else{if(0>w)if(C)w=0;else{this.hideCursor();return}if(w>p)if(C)w=p;else{this.hideCursor();return}}y=this.line;0w||w>r)v=!1}else{B=w;w=y;if(0>B||B>p+l+1)v=!1;if(-2>y||y>r)v=!1}v&&(v=this.graphBulletSize, -h=this.graphBulletAlpha,1==v&&isNaN(h)||!d.isModern||!(m=u.bulletGraphics)||(m.translate(u.bx,u.by,v),this.resizedBullets.push(u),isNaN(h)||(m.setAttr("fill-opacity",h),m.setAttr("stroke-opacity",h))),v=x.valueBalloon,h=e.getBalloonColor(x,u),v.setBounds(n,q,n+p,q+r),v.pointerOrientation="H",m=this.balloonPointerOrientation,"vertical"==m&&(v.pointerOrientation="V"),"horizontal"==m&&(v.pointerOrientation="H"),v.changeColor(h),void 0!==x.balloonAlpha&&(v.fillAlpha=x.balloonAlpha),void 0!==x.balloonTextColor&& -(v.color=x.balloonTextColor),v.setPosition(B+n,w+q),B=e.formatString(x.balloonText,u,!0),(w=x.balloonFunction)&&(B=w(u,x).toString()),""!==B&&(A?v.showBalloon(B):(v.text=B,v.show=!0),c.push({yy:y,balloon:v})),!A&&v.set&&(v.set.hide(),x=v.textDiv)&&(x.style.visibility="hidden"))}}this.avoidBalloonOverlapping&&this.arrangeBalloons()}b?(b={type:"changed"},b.index=a,b.chart=this.chart,b.zooming=C,b.mostCloseGraph=K,b.position=A?g:f,b.target=this,e.fire("changed",b),this.fire("changed",b),this.skipZoomDispatch= -!1):(this.skipZoomDispatch=!0,e.updateLegendValues(a));this.previousIndex=a;this.previousMostCloseGraph=K}}}else this.hideCursor()},setBalloonPosition:function(a,b,c,e){var d=b.position,f=b.inside;b=b.axisThickness;var g=this.chart,k=g.dx,g=g.dy,l=this.x,m=this.y,n=this.width,q=this.height;e?(f&&("right"==d?a.setBounds(l,m+g,l+n+k,m+c+g):a.setBounds(l,m+g,l+n+k,m+c)),"right"==d?f?a.setPosition(l+n+k,m+c+g):a.setPosition(l+n+k+b,m+c+g):f?a.setPosition(l,m+c):a.setPosition(l-b,m+c)):"top"==d?f?a.setPosition(l+ -c+k,m+g):a.setPosition(l+c+k,m+g-b+1):f?a.setPosition(l+c,m+q):a.setPosition(l+c,m+q+b-1)},setBalloonBounds:function(a,b,c){var e=b.position,d=b.inside,f=b.axisThickness,g=b.tickLength,k=this.chart,l=k.dx,k=k.dy,m=this.x,n=this.y,q=this.width,p=this.height;c?(d&&(a.pointerWidth=0),"right"==e?d?a.setBounds(m,n+k,m+q+l,n+p+k):a.setBounds(m+q+l+f,n+k,m+q+1E3,n+p+k):d?a.setBounds(m,n,q+m,p+n):a.setBounds(-1E3,-1E3,m-g-f,n+p+15)):(a.maxWidth=q,b.parseDates&&(g=0,a.pointerWidth=0),"top"==e?d?a.setBounds(m+ -l,n+k,q+l+m,p+n):a.setBounds(m+l,-1E3,q+l+m,n+k-g-f):d?a.setBounds(m,n,q+m,p+n-g):a.setBounds(m,n+p+g+f-1,m+q,n+p+g+f))},enableDrawing:function(a){this.enabled=!a;this.hideCursor();this.rolledOver=!1;this.drawing=a},isZooming:function(a){a&&a!=this.zooming&&this.handleMouseDown("fake");a||a==this.zooming||this.handleMouseUp()},handleMouseOut:function(){if(this.enabled)if(this.zooming)this.setPosition();else{this.index=void 0;var a={type:"changed",index:void 0,target:this};a.chart=this.chart;this.leaveCursor|| -this.fire("changed",a);this.chart.wasTouched&&this.leaveAfterTouch||this.hideCursor()}},handleReleaseOutside:function(){this.handleMouseUp()},handleMouseUp:function(){var a=this.chart,b=this.data,c;if(a){var e=a.mouseX-this.x,h=a.mouseY-this.y;if(this.drawingNow){this.drawingNow=!1;d.remove(this.drawingLine);c=this.drawStartX;var f=this.drawStartY;if(2Math.abs(h-this.initialMouse)&&this.fromIndex==this.index||(this.indexMath.abs(e-g)&&3>Math.abs(h-k)||(b=Math.min(g,e),f=Math.min(k,h),e=Math.abs(g-e),h=Math.abs(k-h),a.hideXScrollbar&&(b=0,e=this.width),a.hideYScrollbar&&(f=0,h=this.height),c.selectionHeight=h,c.selectionWidth=e,c.selectionY=f,c.selectionX=b,this.skipZoomDispatch||this.fire(c.type,c))}this.selectWithoutZooming||d.remove(this.selection)}this.skipZoomDispatch= -!1}}this.panning=this.zooming=!1},showCursorAt:function(a){var b=this.chart.categoryAxis;a=b.parseDates?b.dateToCoordinate(a):b.categoryToCoordinate(a);this.previousMousePosition=NaN;this.forceShow=!0;this.setPosition(a,!1)},clearSelection:function(){d.remove(this.selection)},handleMouseDown:function(a){if(this.zoomable||this.pan||this.drawing){var b=this.rotate,c=this.chart,e=c.mouseX-this.x,h=c.mouseY-this.y;if(0document.documentMode&&(this.updateOnReleaseOnly=!0);this.dragIconHeight=this.dragIconWidth=35;this.dragIcon="dragIconRoundBig";d.applyTheme(this, -a,"SimpleChartScrollbar")},draw:function(){var a=this;a.destroy();if(a.enabled){var b=a.chart.container,c=a.rotate,e=a.chart;e.panRequired=!0;var h=b.set();a.set=h;e.scrollbarsSet.push(h);var f,g;c?(f=a.scrollbarHeight,g=e.plotAreaHeight):(g=a.scrollbarHeight,f=e.plotAreaWidth);a.width=f;if((a.height=g)&&f){var k=d.rect(b,f,g,a.backgroundColor,a.backgroundAlpha,1,a.backgroundColor,a.backgroundAlpha);d.setCN(e,k,"scrollbar-bg");a.bg=k;h.push(k);k=d.rect(b,f,g,"#000",.005);h.push(k);a.invisibleBg=k; -k.click(function(){a.handleBgClick()}).mouseover(function(){a.handleMouseOver()}).mouseout(function(){a.handleMouseOut()}).touchend(function(){a.handleBgClick()});k=d.rect(b,f,g,a.selectedBackgroundColor,a.selectedBackgroundAlpha);d.setCN(e,k,"scrollbar-bg-selected");a.selectedBG=k;h.push(k);f=d.rect(b,f,g,"#000",.005);a.dragger=f;h.push(f);f.mousedown(function(b){a.handleDragStart(b)}).mouseup(function(){a.handleDragStop()}).mouseover(function(){a.handleDraggerOver()}).mouseout(function(){a.handleMouseOut()}).touchstart(function(b){a.handleDragStart(b)}).touchend(function(){a.handleDragStop()}); -f=e.pathToImages;g=a.dragIcon.replace(/\.[a-z]*$/i,"");c?(k=f+g+"H"+e.extension,f=a.dragIconWidth,c=a.dragIconHeight):(k=f+g+e.extension,c=a.dragIconWidth,f=a.dragIconHeight);g=b.image(k,0,0,c,f);d.setCN(e,g,"scrollbar-grip-left");k=b.image(k,0,0,c,f);d.setCN(e,k,"scrollbar-grip-right");var l=10,m=20;e.panEventsEnabled&&(l=25,m=a.scrollbarHeight);var n=d.rect(b,l,m,"#000",.005),q=d.rect(b,l,m,"#000",.005);q.translate(-(l-c)/2,-(m-f)/2);n.translate(-(l-c)/2,-(m-f)/2);c=b.set([g,q]);b=b.set([k,n]); -a.iconLeft=c;h.push(a.iconLeft);a.iconRight=b;h.push(b);c.mousedown(function(){a.leftDragStart()}).mouseup(function(){a.leftDragStop()}).mouseover(function(){a.iconRollOver()}).mouseout(function(){a.iconRollOut()}).touchstart(function(){a.leftDragStart()}).touchend(function(){a.leftDragStop()});b.mousedown(function(){a.rightDragStart()}).mouseup(function(){a.rightDragStop()}).mouseover(function(){a.iconRollOver()}).mouseout(function(){a.iconRollOut()}).touchstart(function(){a.rightDragStart()}).touchend(function(){a.rightDragStop()}); -d.ifArray(e.chartData)?h.show():h.hide();a.hideDragIcons();a.clipDragger(!1)}h.translate(a.x,a.y);h.node.style.msTouchAction="none"}},updateScrollbarSize:function(a,b){a=Math.round(a);b=Math.round(b);var c=this.dragger,e,d,f,g;this.rotate?(e=0,d=a,f=this.width+1,g=b-a,c.setAttr("height",b-a),c.setAttr("y",d)):(e=a,d=0,f=b-a,g=this.height+1,c.setAttr("width",b-a),c.setAttr("x",e));this.clipAndUpdate(e,d,f,g)},update:function(){var a,b=!1,c,e,d=this.x,f=this.y,g=this.dragger,k=this.getDBox();if(k){c= -k.x+d;e=k.y+f;var l=k.width,k=k.height,m=this.rotate,n=this.chart,q=this.width,p=this.height,r=n.mouseX,t=n.mouseY;a=this.initialMouse;this.forceClip&&this.clipDragger(!0);n.mouseIsOver&&(this.dragging&&(n=this.initialCoord,m?(a=n+(t-a),0>a&&(a=0),n=p-k,a>n&&(a=n),g.setAttr("y",a)):(a=n+(r-a),0>a&&(a=0),n=q-l,a>n&&(a=n),g.setAttr("x",a)),this.clipDragger(!0)),this.resizingRight&&(m?(a=t-e,a+e>p+f&&(a=p-e+f),0>a?(this.resizingRight=!1,b=this.resizingLeft=!0):(0===a&&(a=.1),g.setAttr("height",a))): -(a=r-c,a+c>q+d&&(a=q-c+d),0>a?(this.resizingRight=!1,b=this.resizingLeft=!0):(0===a&&(a=.1),g.setAttr("width",a))),this.clipDragger(!0)),this.resizingLeft&&(m?(c=e,e=t,ep+f&&(e=p+f),a=!0===b?c-e:k+c-e,0>a?(this.resizingRight=!0,this.resizingLeft=!1,g.setAttr("y",c+k-f)):(0===a&&(a=.1),g.setAttr("y",e-f),g.setAttr("height",a))):(e=r,eq+d&&(e=q+d),a=!0===b?c-e:l+c-e,0>a?(this.resizingRight=!0,this.resizingLeft=!1,g.setAttr("x",c+l-d)):(0===a&&(a=.1),g.setAttr("x",e-d),g.setAttr("width", -a))),this.clipDragger(!0)))}},stopForceClip:function(){this.forceClip=!1},clipDragger:function(a){var b=this.getDBox();if(b){var c=b.x,e=b.y,d=b.width,b=b.height,f=!1;if(this.rotate){if(c=0,d=this.width+1,this.clipY!=e||this.clipH!=b)f=!0}else if(e=0,b=this.height+1,this.clipX!=c||this.clipW!=d)f=!0;f&&(this.clipAndUpdate(c,e,d,b),a&&(this.updateOnReleaseOnly||this.dispatchScrollbarEvent()))}},maskGraphs:function(){},clipAndUpdate:function(a,b,c,e){this.clipX=a;this.clipY=b;this.clipW=c;this.clipH= -e;this.selectedBG.clipRect(a,b,c,e);this.updateDragIconPositions();this.maskGraphs(a,b,c,e)},dispatchScrollbarEvent:function(){if(this.skipEvent)this.skipEvent=!1;else{var a=this.chart;a.hideBalloon();var b=this.getDBox(),c=b.x,e=b.y,d=b.width,b=b.height;this.rotate?(c=e,d=this.height/b):d=this.width/d;a={type:"zoomed",position:c,chart:a,target:this,multiplier:d};this.fire(a.type,a)}},updateDragIconPositions:function(){var a=this.getDBox(),b=a.x,c=a.y,e=this.iconLeft,d=this.iconRight,f,g,k=this.scrollbarHeight; -this.rotate?(f=this.dragIconWidth,g=this.dragIconHeight,e.translate((k-g)/2,c-f/2),d.translate((k-g)/2,c+a.height-f/2)):(f=this.dragIconHeight,g=this.dragIconWidth,e.translate(b-g/2,(k-f)/2),d.translate(b-g/2+a.width,(k-f)/2))},showDragIcons:function(){this.resizeEnabled&&(this.iconLeft.show(),this.iconRight.show())},hideDragIcons:function(){if(!this.resizingLeft&&!this.resizingRight&&!this.dragging){if(this.hideResizeGrips||!this.resizeEnabled)this.iconLeft.hide(),this.iconRight.hide();this.removeCursors()}}, -removeCursors:function(){this.chart.setMouseCursor("auto")},relativeZoom:function(a,b){this.enabled&&(this.dragger.stop(),this.multiplier=a,this.position=b,this.updateScrollbarSize(b,this.rotate?b+this.height/a:b+this.width/a),this.clipDragger())},destroy:function(){this.clear();d.remove(this.set);d.remove(this.iconRight);d.remove(this.iconLeft)},clear:function(){},handleDragStart:function(){if(this.enabled){var a=this.chart;this.dragger.stop();this.removeCursors();this.dragging=!0;var b=this.getDBox(); -this.rotate?(this.initialCoord=b.y,this.initialMouse=a.mouseY):(this.initialCoord=b.x,this.initialMouse=a.mouseX)}},handleDragStop:function(){this.updateOnReleaseOnly&&(this.update(),this.skipEvent=!1,this.dispatchScrollbarEvent());this.dragging=!1;this.mouseIsOver&&this.removeCursors();this.update()},handleDraggerOver:function(){this.handleMouseOver()},leftDragStart:function(){this.dragger.stop();this.resizingLeft=!0},leftDragStop:function(){this.resizingLeft=!1;this.mouseIsOver||this.removeCursors(); -this.updateOnRelease()},rightDragStart:function(){this.dragger.stop();this.resizingRight=!0},rightDragStop:function(){this.resizingRight=!1;this.mouseIsOver||this.removeCursors();this.updateOnRelease()},iconRollOut:function(){this.removeCursors()},iconRollOver:function(){this.rotate?this.chart.setMouseCursor("ns-resize"):this.chart.setMouseCursor("ew-resize");this.handleMouseOver()},getDBox:function(){if(this.dragger)return this.dragger.getBBox()},handleBgClick:function(){var a=this;if(!a.resizingRight&& -!a.resizingLeft){a.zooming=!0;var b,c,e=a.scrollDuration,h=a.dragger;b=a.getDBox();var f=b.height,g=b.width;c=a.chart;var k=a.y,l=a.x,m=a.rotate;m?(b="y",c=c.mouseY-f/2-k,c=d.fitToBounds(c,0,a.height-f)):(b="x",c=c.mouseX-g/2-l,c=d.fitToBounds(c,0,a.width-g));a.updateOnReleaseOnly?(a.skipEvent=!1,h.setAttr(b,c),a.dispatchScrollbarEvent(),a.clipDragger()):(c=Math.round(c),m?h.animate({y:c},e,">"):h.animate({x:c},e,">"),a.forceClip=!0,clearTimeout(a.forceTO),a.forceTO=setTimeout(function(){a.stopForceClip.call(a)}, -5E3*e))}},updateOnRelease:function(){this.updateOnReleaseOnly&&(this.update(),this.skipEvent=!1,this.dispatchScrollbarEvent())},handleReleaseOutside:function(){if(this.set){if(this.resizingLeft||this.resizingRight||this.dragging)this.updateOnRelease(),this.removeCursors();this.mouseIsOver=this.dragging=this.resizingRight=this.resizingLeft=!1;this.hideDragIcons();this.update()}},handleMouseOver:function(){this.mouseIsOver=!0;this.showDragIcons()},handleMouseOut:function(){this.mouseIsOver=!1;this.hideDragIcons()}})})();(function(){var d=window.AmCharts;d.ChartScrollbar=d.Class({inherits:d.SimpleChartScrollbar,construct:function(a){this.cname="ChartScrollbar";d.ChartScrollbar.base.construct.call(this,a);this.enabled=!0;this.graphLineColor="#BBBBBB";this.graphLineAlpha=0;this.graphFillColor="#BBBBBB";this.graphFillAlpha=1;this.selectedGraphLineColor="#888888";this.selectedGraphLineAlpha=0;this.selectedGraphFillColor="#888888";this.selectedGraphFillAlpha=1;this.gridCount=0;this.gridColor="#FFFFFF";this.gridAlpha=.7; -this.skipEvent=this.autoGridCount=!1;this.color="#FFFFFF";this.scrollbarCreated=!1;this.offset=0;this.oppositeAxis=!0;d.applyTheme(this,a,this.cname)},init:function(){var a=this.categoryAxis,b=this.chart;a||(this.categoryAxis=a=new d.CategoryAxis);a.chart=b;a.id="scrollbar";a.dateFormats=b.categoryAxis.dateFormats;a.markPeriodChange=b.categoryAxis.markPeriodChange;a.boldPeriodBeginning=b.categoryAxis.boldPeriodBeginning;a.labelFunction=b.categoryAxis.labelFunction;a.axisItemRenderer=d.RecItem;a.axisRenderer= -d.RecAxis;a.guideFillRenderer=d.RecFill;a.inside=!0;a.fontSize=this.fontSize;a.tickLength=0;a.axisAlpha=0;d.isString(this.graph)&&(this.graph=d.getObjById(b.graphs,this.graph));if(a=this.graph){var c=this.valueAxis;c||(this.valueAxis=c=new d.ValueAxis,c.visible=!1,c.scrollbar=!0,c.axisItemRenderer=d.RecItem,c.axisRenderer=d.RecAxis,c.guideFillRenderer=d.RecFill,c.labelsEnabled=!1,c.chart=b);b=this.unselectedGraph;b||(b=new d.AmGraph,b.scrollbar=!0,this.unselectedGraph=b,b.negativeBase=a.negativeBase, -b.noStepRisers=a.noStepRisers);b=this.selectedGraph;b||(b=new d.AmGraph,b.scrollbar=!0,this.selectedGraph=b,b.negativeBase=a.negativeBase,b.noStepRisers=a.noStepRisers)}this.scrollbarCreated=!0},draw:function(){var a=this;d.ChartScrollbar.base.draw.call(a);if(a.enabled){a.scrollbarCreated||a.init();var b=a.chart,c=b.chartData,e=a.categoryAxis,h=a.rotate,f=a.x,g=a.y,k=a.width,l=a.height,m=b.categoryAxis,n=a.set;e.setOrientation(!h);e.parseDates=m.parseDates;e.rotate=h;e.equalSpacing=m.equalSpacing; -e.minPeriod=m.minPeriod;e.startOnAxis=m.startOnAxis;e.viW=k;e.viH=l;e.width=k;e.height=l;e.gridCount=a.gridCount;e.gridColor=a.gridColor;e.gridAlpha=a.gridAlpha;e.color=a.color;e.tickLength=0;e.axisAlpha=0;e.autoGridCount=a.autoGridCount;e.parseDates&&!e.equalSpacing&&e.timeZoom(b.firstTime,b.lastTime);e.zoom(0,c.length-1);if(m=a.graph){var q=a.valueAxis,p=m.valueAxis;q.id=p.id;q.rotate=h;q.setOrientation(h);q.width=k;q.height=l;q.viW=k;q.viH=l;q.dataProvider=c;q.reversed=p.reversed;q.logarithmic= -p.logarithmic;q.gridAlpha=0;q.axisAlpha=0;n.push(q.set);h?(q.y=g,q.x=0):(q.x=f,q.y=0);var f=Infinity,g=-Infinity,r;for(r=0;rg&&(g=w)}}Infinity!=f&&(q.minimum=f);-Infinity!=g&&(q.maximum=g+.1*(g-f));f==g&&(--q.minimum,q.maximum+=1);void 0!==a.minimum&&(q.minimum=a.minimum);void 0!==a.maximum&&(q.maximum=a.maximum);q.zoom(0,c.length-1);u=a.unselectedGraph; -u.id=m.id;u.bcn="scrollbar-graph-";u.rotate=h;u.chart=b;u.data=c;u.valueAxis=q;u.chart=m.chart;u.categoryAxis=a.categoryAxis;u.periodSpan=m.periodSpan;u.valueField=m.valueField;u.openField=m.openField;u.closeField=m.closeField;u.highField=m.highField;u.lowField=m.lowField;u.lineAlpha=a.graphLineAlpha;u.lineColorR=a.graphLineColor;u.fillAlphas=a.graphFillAlpha;u.fillColorsR=a.graphFillColor;u.connect=m.connect;u.hidden=m.hidden;u.width=k;u.height=l;u.pointPosition=m.pointPosition;u.stepDirection=m.stepDirection; -u.periodSpan=m.periodSpan;p=a.selectedGraph;p.id=m.id;p.bcn=u.bcn+"selected-";p.rotate=h;p.chart=b;p.data=c;p.valueAxis=q;p.chart=m.chart;p.categoryAxis=e;p.periodSpan=m.periodSpan;p.valueField=m.valueField;p.openField=m.openField;p.closeField=m.closeField;p.highField=m.highField;p.lowField=m.lowField;p.lineAlpha=a.selectedGraphLineAlpha;p.lineColorR=a.selectedGraphLineColor;p.fillAlphas=a.selectedGraphFillAlpha;p.fillColorsR=a.selectedGraphFillColor;p.connect=m.connect;p.hidden=m.hidden;p.width= -k;p.height=l;p.pointPosition=m.pointPosition;p.stepDirection=m.stepDirection;p.periodSpan=m.periodSpan;b=a.graphType;b||(b=m.type);u.type=b;p.type=b;c=c.length-1;u.zoom(0,c);p.zoom(0,c);p.set.click(function(){a.handleBackgroundClick()}).mouseover(function(){a.handleMouseOver()}).mouseout(function(){a.handleMouseOut()});u.set.click(function(){a.handleBackgroundClick()}).mouseover(function(){a.handleMouseOver()}).mouseout(function(){a.handleMouseOut()});n.push(u.set);n.push(p.set)}n.push(e.set);n.push(e.labelsSet); -a.bg.toBack();a.invisibleBg.toFront();a.dragger.toFront();a.iconLeft.toFront();a.iconRight.toFront()}},timeZoom:function(a,b,c){this.startTime=a;this.endTime=b;this.timeDifference=b-a;this.skipEvent=!d.toBoolean(c);this.zoomScrollbar();this.skipEvent||this.dispatchScrollbarEvent()},zoom:function(a,b){this.start=a;this.end=b;this.skipEvent=!0;this.zoomScrollbar()},dispatchScrollbarEvent:function(){if(this.skipEvent)this.skipEvent=!1;else{var a=this.chart.chartData,b,c,e=this.dragger.getBBox();b=e.x; -var d=e.y,f=e.width,e=e.height,g=this.chart;this.rotate?(b=d,c=e):c=f;f={type:"zoomed",target:this};f.chart=g;var k=this.categoryAxis,l=this.stepWidth,d=g.minSelectedTime,e=!1;if(k.parseDates&&!k.equalSpacing){if(a=g.lastTime,g=g.firstTime,k=Math.round(b/l)+g,b=this.dragging?k+this.timeDifference:Math.round((b+c)/l)+g,k>b&&(k=b),0a&&(b=a),b-db&&(b=k+d),k!=this.startTime||b!=this.endTime)this.startTime= -k,this.endTime=b,f.start=k,f.end=b,f.startDate=new Date(k),f.endDate=new Date(b),this.fire(f.type,f)}else if(k.startOnAxis||(b+=l/2),c-=this.stepWidth/2,d=k.xToIndex(b),b=k.xToIndex(b+c),d!=this.start||this.end!=b)k.startOnAxis&&(this.resizingRight&&d==b&&b++,this.resizingLeft&&d==b&&(0this.timeDifference&&(this.timeDifference=0)},handleBackgroundClick:function(){d.ChartScrollbar.base.handleBackgroundClick.call(this);this.dragging||(this.difference=this.end-this.start,this.timeDifference=this.endTime-this.startTime,0>this.timeDifference&&(this.timeDifference=0))}})})();(function(){var d=window.AmCharts;d.AmBalloon=d.Class({construct:function(a){this.cname="AmBalloon";this.enabled=!0;this.fillColor="#FFFFFF";this.fillAlpha=.8;this.borderThickness=2;this.borderColor="#FFFFFF";this.borderAlpha=1;this.cornerRadius=0;this.maxWidth=220;this.horizontalPadding=8;this.verticalPadding=4;this.pointerWidth=6;this.pointerOrientation="V";this.color="#000000";this.adjustBorderColor=!0;this.show=this.follow=this.showBullet=!1;this.bulletSize=3;this.shadowAlpha=.4;this.shadowColor= -"#000000";this.fadeOutDuration=this.animationDuration=.3;this.fixedPosition=!0;this.offsetY=6;this.offsetX=1;this.textAlign="center";this.disableMouseEvents=!0;this.deltaSignX=this.deltaSignY=1;d.isModern||(this.offsetY*=1.5);d.applyTheme(this,a,this.cname)},draw:function(){var a=this.pointToX,b=this.pointToY,c=this.chart;d.VML&&(this.fadeOutDuration=0);this.xAnim&&c.stopAnim(this.xAnim);this.yAnim&&c.stopAnim(this.yAnim);if(!isNaN(a)){var e=this.follow,h=c.container,f=this.set;d.remove(f);this.removeDiv(); -f=h.set();f.node.style.pointerEvents="none";this.set=f;c.balloonsSet.push(f);if(this.show){var g=this.l,k=this.t,l=this.r,m=this.b,n=this.balloonColor,q=this.fillColor,p=this.borderColor,r=q;void 0!=n&&(this.adjustBorderColor?r=p=n:q=n);var t=this.horizontalPadding,u=this.verticalPadding,w=this.pointerWidth,A=this.pointerOrientation,v=this.cornerRadius,x=c.fontFamily,y=this.fontSize;void 0==y&&(y=c.fontSize);var n=document.createElement("div"),B=c.classNamePrefix;n.className=B+"-balloon-div";this.className&& -(n.className=n.className+" "+B+"-balloon-div-"+this.className);B=n.style;this.disableMouseEvents&&(B.pointerEvents="none");B.position="absolute";var D=this.minWidth,C="";isNaN(D)||(C="min-width:"+(D-2*t)+"px; ");n.innerHTML='

'+this.text+"
";c.chartDiv.appendChild(n);this.textDiv=n;y=n.offsetWidth;x=n.offsetHeight;n.clientHeight&&(y=n.clientWidth,x=n.clientHeight); -x+=2*u;C=y+2*t;!isNaN(D)&&Cx&&(w=x/2),y=b-x/2,a=m&&(y=m-x);yl&&(D=l-C);var k=y+u,m=D+t,u=this.shadowAlpha,G=this.shadowColor,t=this.borderThickness,K=this.bulletSize,I;0C-w&&(g=C-w),gx-w&&(r=x-w),ra?C:a-D,C,C,0,0,C]),0this.r-e.width&&(a=this.r-e.width);d=t*K&&(v[G].gap=!0);this.processFields(c,X,fa);X.category=x.category;X.serialDataItem=x;X.graph=c;x.axes[C].graphs[G]= -X;r[G]=x.time;v[G]=X}}}this.chartData[w]=x}}for(a=0;ab?this.colors[b]:a.lineColorR?a.lineColorR:d.randomColor();a.lineColorR=c}a.fillColorsR=a.fillColors?a.fillColors:a.lineColorR;a.bulletBorderColorR=a.bulletBorderColor?a.bulletBorderColor:a.useLineColorForBulletBorder?a.lineColorR:a.bulletColor;a.bulletColorR=a.bulletColor?a.bulletColor:a.lineColorR; -if(c=this.patterns)a.pattern=c[b]},handleLegendEvent:function(a){var b=a.type;a=a.dataItem;if(!this.legend.data&&a){var c=a.hidden,e=a.showBalloon;switch(b){case "clickMarker":this.textClickEnabled&&(e?this.hideGraphsBalloon(a):this.showGraphsBalloon(a));break;case "clickLabel":e?this.hideGraphsBalloon(a):this.showGraphsBalloon(a);break;case "rollOverItem":c||this.highlightGraph(a);break;case "rollOutItem":c||this.unhighlightGraph();break;case "hideItem":this.hideGraph(a);break;case "showItem":this.showGraph(a)}}}, -highlightGraph:function(a){var b=this.graphs,c,e=.2;this.legend&&(e=this.legend.rollOverGraphAlpha);if(1!=e)for(c=0;cthis.hoverAlpha&&a.wedge&& -a.wedge.attr({opacity:this.hoverAlpha});var e=a.balloonX,h=a.balloonY;a.pulled&&(e+=a.pullX,h+=a.pullY);var f=this.formatString(this.balloonText,a,!0),g=this.balloonFunction;g&&(f=g(a,f));g=d.adjustLuminosity(a.color,-.15);f?this.showBalloon(f,g,b,e,h):this.hideBalloon();0===a.value&&this.hideBalloon();a={type:"rollOverSlice",dataItem:a,chart:this,event:c};this.fire(a.type,a)}},rollOutSlice:function(a,b){isNaN(a)||(a=this.chartData[a]);a.wedge&&a.wedge.attr({opacity:1});this.hideBalloon();var c={type:"rollOutSlice", -dataItem:a,chart:this,event:b};this.fire(c.type,c)},clickSlice:function(a,b,c){isNaN(a)||(a=this.chartData[a]);a.pulled?this.pullSlice(a,0):this.pullSlice(a,1);d.getURL(a.url,this.urlTarget);c||(a={type:"clickSlice",dataItem:a,chart:this,event:b},this.fire(a.type,a))},handleRightClick:function(a,b){isNaN(a)||(a=this.chartData[a]);var c={type:"rightClickSlice",dataItem:a,chart:this,event:b};this.fire(c.type,c)},drawTicks:function(){var a=this.chartData,b;for(b=0;bb&&(b=h);e.remove()}return b}})})();(function(){var d=window.AmCharts;d.AmRectangularChart=d.Class({inherits:d.AmCoordinateChart,construct:function(a){d.AmRectangularChart.base.construct.call(this,a);this.theme=a;this.createEvents("zoomed");this.marginRight=this.marginBottom=this.marginTop=this.marginLeft=20;this.verticalPosition=this.horizontalPosition=this.depth3D=this.angle=0;this.heightMultiplier=this.widthMultiplier=1;this.plotAreaFillColors="#FFFFFF";this.plotAreaFillAlphas=0;this.plotAreaBorderColor="#000000";this.plotAreaBorderAlpha= -0;this.zoomOutButtonImageSize=19;this.zoomOutButtonImage="lens";this.zoomOutText="Show all";this.zoomOutButtonColor="#e5e5e5";this.zoomOutButtonAlpha=0;this.zoomOutButtonRollOverAlpha=1;this.zoomOutButtonPadding=8;this.trendLines=[];this.autoMargins=!0;this.marginsUpdated=!1;this.autoMarginOffset=10;d.applyTheme(this,a,"AmRectangularChart")},initChart:function(){d.AmRectangularChart.base.initChart.call(this);this.updateDxy();var a=!0;!this.marginsUpdated&&this.autoMargins&&(this.resetMargins(),a= -!1);this.processScrollbars();this.updateMargins();this.updatePlotArea();this.updateScrollbars();this.updateTrendLines();this.updateChartCursor();this.updateValueAxes();a&&(this.scrollbarOnly||this.updateGraphs())},drawChart:function(){d.AmRectangularChart.base.drawChart.call(this);this.drawPlotArea();if(d.ifArray(this.chartData)){var a=this.chartCursor;a&&a.draw()}},resetMargins:function(){var a={},b;if("xy"==this.type){var c=this.xAxes,e=this.yAxes;for(b=0;b=d-c&&(this.marginRight=Math.round(l-d+c));e.top&&kf-c&&(this.marginBottom=Math.round(this.marginBottom+b-f+c));this.initChart()},getAxisBounds:function(a,b,c,e,d){if(!a.ignoreAxisWidth){var f=a.labelsSet,g=a.tickLength;a.inside&&(g=0);if(f)switch(f=a.getBBox(),a.position){case "top":a=f.y;e>a&&(e=a);break;case "bottom":a=f.y+f.height;da&&(b=a)}}return{l:b,t:e,r:c,b:d}},drawZoomOutButton:function(){var a=this;if(!a.zbSet){var b=a.container.set();a.zoomButtonSet.push(b);var c=a.color,e=a.fontSize,h=a.zoomOutButtonImageSize,f=a.zoomOutButtonImage.replace(/\.[a-z]*$/i,""),g=d.lang.zoomOutText||a.zoomOutText,k=a.zoomOutButtonColor,l=a.zoomOutButtonAlpha,m=a.zoomOutButtonFontSize,n=a.zoomOutButtonPadding;isNaN(m)||(e=m);(m=a.zoomOutButtonFontColor)&&(c=m); -var m=a.zoomOutButton,q;m&&(m.fontSize&&(e=m.fontSize),m.color&&(c=m.color),m.backgroundColor&&(k=m.backgroundColor),isNaN(m.backgroundAlpha)||(a.zoomOutButtonRollOverAlpha=m.backgroundAlpha));var p=m=0;void 0!==a.pathToImages&&f&&(q=a.container.image(a.pathToImages+f+a.extension,0,0,h,h),d.setCN(a,q,"zoom-out-image"),b.push(q),q=q.getBBox(),m=q.width+5);void 0!==g&&(c=d.text(a.container,g,c,a.fontFamily,e,"start"),d.setCN(a,c,"zoom-out-label"),e=c.getBBox(),p=q?q.height/2-3:e.height/2,c.translate(m, -p),b.push(c));q=b.getBBox();c=1;d.isModern||(c=0);k=d.rect(a.container,q.width+2*n+5,q.height+2*n-2,k,1,1,k,c);k.setAttr("opacity",l);k.translate(-n,-n);d.setCN(a,k,"zoom-out-bg");b.push(k);k.toBack();a.zbBG=k;q=k.getBBox();b.translate(a.marginLeftReal+a.plotAreaWidth-q.width+n,a.marginTopReal+n);b.hide();b.mouseover(function(){a.rollOverZB()}).mouseout(function(){a.rollOutZB()}).click(function(){a.clickZB()}).touchstart(function(){a.rollOverZB()}).touchend(function(){a.rollOutZB();a.clickZB()}); -for(l=0;la&&(a=1);1>b&&(b=1);this.plotAreaWidth=Math.round(a); -this.plotAreaHeight=Math.round(b)},updateDxy:function(){this.dx=Math.round(this.depth3D*Math.cos(this.angle*Math.PI/180));this.dy=Math.round(-this.depth3D*Math.sin(this.angle*Math.PI/180));this.d3x=Math.round(this.columnSpacing3D*Math.cos(this.angle*Math.PI/180));this.d3y=Math.round(-this.columnSpacing3D*Math.sin(this.angle*Math.PI/180))},updateMargins:function(){var a=this.getTitleHeight();this.titleHeight=a;this.marginTopReal=this.marginTop-this.dy;this.fixMargins&&!this.fixMargins.top&&(this.marginTopReal+= -a);this.marginBottomReal=this.marginBottom;this.marginLeftReal=this.marginLeft;this.marginRightReal=this.marginRight},updateValueAxes:function(){var a=this.valueAxes,b=this.marginLeftReal,c=this.marginTopReal,e=this.plotAreaHeight,h=this.plotAreaWidth,f;for(f=0;f=b&&(b=.001);if(void 0==h||0===h)h=.01;void 0===f&&(f="#000000");void 0===g&&(g=0);e={fill:c,stroke:f,"fill-opacity":e,"stroke-width":h,"stroke-opacity":g};a=isNaN(l)?a.circle(0,0,b).attr(e):a.ellipse(0,0,b,l).attr(e);k&&a.gradient("radialGradient",[c,d.adjustLuminosity(c,-.6)]);return a};d.text=function(a,b,c,e,h,f,g,k){f||(f="middle");"right"==f&&(f="end");"left"==f&&(f="start");isNaN(k)&&(k=1);void 0!==b&&(b=String(b),d.isIE&& -!d.isModern&&(b=b.replace("&","&"),b=b.replace("&","&")));c={fill:c,"font-family":e,"font-size":h+"px",opacity:k};!0===g&&(c["font-weight"]="bold");c["text-anchor"]=f;return a.text(b,c)};d.polygon=function(a,b,c,e,h,f,g,k,l,m,n){isNaN(f)&&(f=.01);isNaN(k)&&(k=h);var q=e,p=!1;"object"==typeof q&&1 -b&&(b=Math.abs(b),r=-b);0>c&&(c=Math.abs(c),t=-c);r+=d.dx;t+=d.dy;h={fill:q,stroke:g,"fill-opacity":h,"stroke-opacity":k};void 0!==n&&0=w&&(h=w);var A=1/180* -Math.PI,w=b+Math.sin(e*A)*k,v=c-Math.cos(e*A)*t,x=b+Math.sin(e*A)*f,y=c-Math.cos(e*A)*g,B=b+Math.sin((e+h)*A)*f,D=c-Math.cos((e+h)*A)*g,C=b+Math.sin((e+h)*A)*k,A=c-Math.cos((e+h)*A)*t,J={fill:d.adjustLuminosity(m.fill,-.2),"stroke-opacity":0,"fill-opacity":m["fill-opacity"]},G=0;180Math.abs(h)&&1>=Math.abs(B-x)&&1>=Math.abs(D- -y)&&(K=!0));h="";var I;q&&(J["fill-opacity"]=0,J["stroke-opacity"]=m["stroke-opacity"]/2,J.stroke=m.stroke);if(0a.length&&(a=String(a[0])+String(a[0])+String(a[1])+String(a[1])+String(a[2])+ -String(a[2]));b=b||0;var c="#",e,h;for(h=0;3>h;h++)e=parseInt(a.substr(2*h,2),16),e=Math.round(Math.min(Math.max(0,e+e*b),255)).toString(16),c+=("00"+e).substr(e.length);return c}})();(function(){var d=window.AmCharts;d.Bezier=d.Class({construct:function(a,b,c,e,h,f,g,k,l,m){"object"==typeof g&&(g=g[0]);"object"==typeof k&&(k=k[0]);0===k&&(g="none");f={fill:g,"fill-opacity":k,"stroke-width":f};void 0!==l&&0c&&(k=c);b.push({x:l.x-k/h,y:l.y-e/f});b.push({x:l.x,y:l.y});b.push({x:l.x+k/h,y:l.y+e/f})}e=a[a.length-1].y-a[a.length-2].y;c=a[a.length-1].x- -a[a.length-2].x;b.push({x:a[a.length-1].x-c/h,y:a[a.length-1].y-e/f});b.push({x:a[a.length-1].x,y:a[a.length-1].y});return b},drawBeziers:function(a){var b="",c;for(c=0;c<(a.length-1)/3;c++)b+=this.drawBezierMidpoint(a[3*c],a[3*c+1],a[3*c+2],a[3*c+3]);return b},drawBezierMidpoint:function(a,b,c,e){var d=Math.round,f=this.getPointOnSegment(a,b,.75),g=this.getPointOnSegment(e,c,.75),k=(e.x-a.x)/16,l=(e.y-a.y)/16,m=this.getPointOnSegment(a,b,.375);a=this.getPointOnSegment(f,g,.375);a.x-=k;a.y-=l;b=this.getPointOnSegment(g, -f,.375);b.x+=k;b.y+=l;c=this.getPointOnSegment(e,c,.375);k=this.getMiddle(m,a);f=this.getMiddle(f,g);g=this.getMiddle(b,c);m=" Q"+d(m.x)+","+d(m.y)+","+d(k.x)+","+d(k.y);m+=" Q"+d(a.x)+","+d(a.y)+","+d(f.x)+","+d(f.y);m+=" Q"+d(b.x)+","+d(b.y)+","+d(g.x)+","+d(g.y);return m+=" Q"+d(c.x)+","+d(c.y)+","+d(e.x)+","+d(e.y)},getMiddle:function(a,b){return{x:(a.x+b.x)/2,y:(a.y+b.y)/2}},getPointOnSegment:function(a,b,c){return{x:a.x+(b.x-a.x)*c,y:a.y+(b.y-a.y)*c}}})})();(function(){var d=window.AmCharts;d.AmDraw=d.Class({construct:function(a,b,c,e){d.SVG_NS="http://www.w3.org/2000/svg";d.SVG_XLINK="http://www.w3.org/1999/xlink";d.hasSVG=!!document.createElementNS&&!!document.createElementNS(d.SVG_NS,"svg").createSVGRect;1>b&&(b=10);1>c&&(c=10);this.div=a;this.width=b;this.height=c;this.rBin=document.createElement("div");d.hasSVG?(d.SVG=!0,b=this.createSvgElement("svg"),a.appendChild(b),this.container=b,this.addDefs(e),this.R=new d.SVGRenderer(this)):d.isIE&&d.VMLRenderer&& -(d.VML=!0,d.vmlStyleSheet||(document.namespaces.add("amvml","urn:schemas-microsoft-com:vml"),31>document.styleSheets.length?(b=document.createStyleSheet(),b.addRule(".amvml","behavior:url(#default#VML); display:inline-block; antialias:true"),d.vmlStyleSheet=b):document.styleSheets[0].addRule(".amvml","behavior:url(#default#VML); display:inline-block; antialias:true")),this.container=a,this.R=new d.VMLRenderer(this,e),this.R.disableSelection(a))},createSvgElement:function(a){return document.createElementNS(d.SVG_NS, -a)},circle:function(a,b,c,e){var h=new d.AmDObject("circle",this);h.attr({r:c,cx:a,cy:b});this.addToContainer(h.node,e);return h},ellipse:function(a,b,c,e,h){var f=new d.AmDObject("ellipse",this);f.attr({rx:c,ry:e,cx:a,cy:b});this.addToContainer(f.node,h);return f},setSize:function(a,b){0c&&(c=1);1>e&&(e=1);k.attr({x:a,y:b,width:c,height:e,rx:h,ry:h,"stroke-width":f});this.addToContainer(k.node,g);return k},image:function(a,b,c,e,h,f){var g=new d.AmDObject("image",this);g.attr({x:b,y:c,width:e,height:h});this.R.path(g,a);this.addToContainer(g.node,f);return g},addToContainer:function(a,b){b||(b=this.container);b.appendChild(a)},text:function(a,b,c){return this.R.text(a,b,c)},path:function(a,b,c,e){var h=new d.AmDObject("path",this);e||(e="100,100"); -h.attr({cs:e});c?h.attr({dd:a}):h.attr({d:a});this.addToContainer(h.node,b);return h},set:function(a){return this.R.set(a)},remove:function(a){if(a){var b=this.rBin;b.appendChild(a);b.innerHTML=""}},renderFix:function(){var a=this.container,b=a.style;b.top="0px";b.left="0px";try{var c=a.getBoundingClientRect(),e=c.left-Math.round(c.left),d=c.top-Math.round(c.top);e&&(b.left=e+"px");d&&(b.top=d+"px")}catch(f){}},update:function(){this.R.update()},addDefs:function(a){if(d.hasSVG){var b=this.createSvgElement("desc"), -c=this.container;c.setAttribute("version","1.1");c.style.position="absolute";this.setSize(this.width,this.height);d.rtl&&(c.setAttribute("direction","rtl"),c.style.left="auto",c.style.right="0px");a.addCodeCredits&&b.appendChild(document.createTextNode("JavaScript chart by amCharts "+a.version));c.appendChild(b);a.defs&&(b=this.createSvgElement("defs"),c.appendChild(b),d.parseDefs(a.defs,b),this.defs=b)}}})})();(function(){var d=window.AmCharts;d.AmDObject=d.Class({construct:function(a,b){this.D=b;this.R=b.R;this.node=this.R.create(this,a);this.y=this.x=0;this.scale=1},attr:function(a){this.R.attr(this,a);return this},getAttr:function(a){return this.node.getAttribute(a)},setAttr:function(a,b){this.R.setAttr(this,a,b);return this},clipRect:function(a,b,c,d){this.R.clipRect(this,a,b,c,d)},translate:function(a,b,c,d){d||(a=Math.round(a),b=Math.round(b));this.R.move(this,a,b,c);this.x=a;this.y=b;this.scale= -c;this.angle&&this.rotate(this.angle)},rotate:function(a,b){this.R.rotate(this,a,b);this.angle=a},animate:function(a,b,c){for(var e in a)if(a.hasOwnProperty(e)){var h=e,f=a[e];c=d.getEffect(c);this.R.animate(this,h,f,b,c)}},push:function(a){if(a){var b=this.node;b.appendChild(a.node);var c=a.clipPath;c&&b.appendChild(c);(a=a.grad)&&b.appendChild(a)}},text:function(a){this.R.setText(this,a)},remove:function(){this.R.remove(this)},clear:function(){var a=this.node;if(a.hasChildNodes())for(;1<=a.childNodes.length;)a.removeChild(a.firstChild)}, -hide:function(){this.setAttr("visibility","hidden")},show:function(){this.setAttr("visibility","visible")},getBBox:function(){return this.R.getBBox(this)},toFront:function(){var a=this.node;if(a){this.prevNextNode=a.nextSibling;var b=a.parentNode;b&&b.appendChild(a)}},toPrevious:function(){var a=this.node;a&&this.prevNextNode&&(a=a.parentNode)&&a.insertBefore(this.prevNextNode,null)},toBack:function(){var a=this.node;if(a){this.prevNextNode=a.nextSibling;var b=a.parentNode;if(b){var c=b.firstChild; -c&&b.insertBefore(a,c)}}},mouseover:function(a){this.R.addListener(this,"mouseover",a);return this},mouseout:function(a){this.R.addListener(this,"mouseout",a);return this},click:function(a){this.R.addListener(this,"click",a);return this},dblclick:function(a){this.R.addListener(this,"dblclick",a);return this},mousedown:function(a){this.R.addListener(this,"mousedown",a);return this},mouseup:function(a){this.R.addListener(this,"mouseup",a);return this},touchstart:function(a){this.R.addListener(this, -"touchstart",a);return this},touchend:function(a){this.R.addListener(this,"touchend",a);return this},contextmenu:function(a){this.node.addEventListener?this.node.addEventListener("contextmenu",a,!0):this.R.addListener(this,"contextmenu",a);return this},stop:function(){d.removeFromArray(this.R.animations,this.an_x);d.removeFromArray(this.R.animations,this.an_y)},length:function(){return this.node.childNodes.length},gradient:function(a,b,c){this.R.gradient(this,a,b,c)},pattern:function(a,b,c){a&&this.R.pattern(this, -a,b,c)}})})();(function(){var d=window.AmCharts;d.VMLRenderer=d.Class({construct:function(a,b){this.chart=b;this.D=a;this.cNames={circle:"oval",ellipse:"oval",rect:"roundrect",path:"shape"};this.styleMap={x:"left",y:"top",width:"width",height:"height","font-family":"fontFamily","font-size":"fontSize",visibility:"visibility"}},create:function(a,b){var c;if("group"==b)c=document.createElement("div"),a.type="div";else if("text"==b)c=document.createElement("div"),a.type="text";else if("image"==b)c=document.createElement("img"), -a.type="image";else{a.type="shape";a.shapeType=this.cNames[b];c=document.createElement("amvml:"+this.cNames[b]);var d=document.createElement("amvml:stroke");c.appendChild(d);a.stroke=d;var h=document.createElement("amvml:fill");c.appendChild(h);a.fill=h;h.className="amvml";d.className="amvml";c.className="amvml"}c.style.position="absolute";c.style.top=0;c.style.left=0;return c},path:function(a,b){a.node.setAttribute("src",b)},setAttr:function(a,b,c){if(void 0!==c){var e;8===document.documentMode&& -(e=!0);var h=a.node,f=a.type,g=h.style;"r"==b&&(g.width=2*c,g.height=2*c);"oval"==a.shapeType&&("rx"==b&&(g.width=2*c),"ry"==b&&(g.height=2*c));"roundrect"==a.shapeType&&("width"!=b&&"height"!=b||--c);"cursor"==b&&(g.cursor=c);"cx"==b&&(g.left=c-d.removePx(g.width)/2);"cy"==b&&(g.top=c-d.removePx(g.height)/2);var k=this.styleMap[b];"width"==k&&0>c&&(c=0);void 0!==k&&(g[k]=c);"text"==f&&("text-anchor"==b&&(a.anchor=c,k=h.clientWidth,"end"==c&&(g.marginLeft=-k+"px"),"middle"==c&&(g.marginLeft=-(k/2)+ -"px",g.textAlign="center"),"start"==c&&(g.marginLeft="0px")),"fill"==b&&(g.color=c),"font-weight"==b&&(g.fontWeight=c));if(g=a.children)for(k=0;kc&&(g="dot"),3<=c&&6>=c&&(g="dash"),6g&&(b+=g);0>k&&(c+=k)}return{x:b,y:c,width:d,height:h}},setText:function(a,b){var c=a.node;c&&(c.innerHTML=b);this.setAttr(a,"text-anchor",a.anchor)},addListener:function(a,b,c){a.node["on"+b]=c},move:function(a,b,c){var e=a.node,h=e.style;"text"==a.type&&(c-=d.removePx(h.fontSize)/2-1);"oval"==a.shapeType&&(b-=d.removePx(h.width)/2,c-=d.removePx(h.height)/2);a=a.bw;isNaN(a)||(b-=a,c-=a);isNaN(b)||isNaN(c)||(e.style.left=b+"px",e.style.top= -c+"px")},svgPathToVml:function(a){var b=a.split(" ");a="";var c,d=Math.round,h;for(h=0;hthis.fontSize&&(this.ly=h/2-1);0p&&(p=y);v=v.height;v>r&&(r=v)}var y=r=0,B=f,D=0,C=0;for(x=0;xC&&(C= -v.height);G+v.width>q&&0=l&&(y=0,r++,D=D+C+m,B=f,C=0);w.push(J)}v=w.getBBox();l=v.height+2*m-1;"left"==a||"right"==a?(n=v.width+2*f,k=n+b+c,g.style.width=k+"px",this.ieW=k):n=k-b-c-1;c=d.polygon(this.container,[0,n,n,0],[0,0,l,l],this.backgroundColor,this.backgroundAlpha,1,this.borderColor,this.borderAlpha);d.setCN(this.chart,c,"legend-bg");u.push(c);u.translate(b,e);c.toBack();b=f;if("top"==a||"bottom"==a||"absolute"== -a||"outside"==a)"center"==this.align?b=f+(n-v.width)/2:"right"==this.align&&(b=f+n-v.width);w.translate(b,m+1);this.titleHeight>l&&(l=this.titleHeight);a=l+e+h+1;0>a&&(a=0);a>this.chart.divRealHeight&&(g.style.top="0px");g.style.height=Math.round(a)+"px";t.setSize(this.divWidth,a)},createEntry:function(a){if(!1!==a.visibleInLegend){var b=this.chart,c=a.markerType;a.legendEntryWidth=this.markerSize;c||(c=this.markerType);var e=a.color,h=a.alpha;a.legendKeyColor&&(e=a.legendKeyColor());a.legendKeyAlpha&& -(h=a.legendKeyAlpha());var f;!0===a.hidden&&(f=e=this.markerDisabledColor);var g=a.pattern,k=a.customMarker;k||(k=this.customMarker);var l=this.container,m=this.markerSize,n=0,q=0,p=m/2;if(this.useGraphSettings){c=a.type;this.switchType=void 0;if("line"==c||"step"==c||"smoothedLine"==c||"ohlc"==c)g=l.set(),a.hidden||(e=a.lineColorR,f=a.bulletBorderColorR),n=d.line(l,[0,2*m],[m/2,m/2],e,a.lineAlpha,a.lineThickness,a.dashLength),d.setCN(b,n,"graph-stroke"),g.push(n),a.bullet&&(a.hidden||(e=a.bulletColorR), -n=d.bullet(l,a.bullet,a.bulletSize,e,a.bulletAlpha,a.bulletBorderThickness,f,a.bulletBorderAlpha))&&(d.setCN(b,n,"graph-bullet"),n.translate(m+1,m/2),g.push(n)),p=0,n=m,q=m/3;else{var r;a.getGradRotation&&(r=a.getGradRotation(),0===r&&(r=180));n=a.fillColorsR;!0===a.hidden&&(n=e);if(g=this.createMarker("rectangle",n,a.fillAlphas,a.lineThickness,e,a.lineAlpha,r,g,a.dashLength))p=m,g.translate(p,m/2);n=m}d.setCN(b,g,"graph-"+c);d.setCN(b,g,"graph-"+a.id)}else if(k)g=l.image(k,0,0,m,m);else{var t;isNaN(this.gradientRotation)|| -(t=180+this.gradientRotation);(g=this.createMarker(c,e,h,void 0,void 0,void 0,t,g))&&g.translate(m/2,m/2)}d.setCN(b,g,"legend-marker");this.addListeners(g,a);l=l.set([g]);this.switchable&&a.switchable&&l.setAttr("cursor","pointer");void 0!==a.id&&d.setCN(b,l,"legend-item-"+a.id);d.setCN(b,l,a.className,!0);(f=this.switchType)&&"none"!=f&&0c&&(d="00"+c);10<=c&&100>c&&(d="0"+c);a=a.replace(/fff/g,d)}return a};d.extractPeriod=function(a){var b=d.stripNumbers(a),c=1;b!=a&&(c=Number(a.slice(0,a.indexOf(b))));return{period:b,count:c}};d.getDate=function(a,b,c){return a instanceof Date?d.newDate(a,c):b&&isNaN(a)?d.stringToDate(a,b):new Date(a)};d.daysInMonth=function(a){return(new Date(a.getYear(),a.getMonth()+ -1,0)).getDate()};d.newDate=function(a,b){return b&&-1==b.indexOf("fff")?new Date(a):new Date(a.getFullYear(),a.getMonth(),a.getDate(),a.getHours(),a.getMinutes(),a.getSeconds(),a.getMilliseconds())};d.resetDateToMin=function(a,b,c,e){void 0===e&&(e=1);var h,f,g,k,l,m,n;d.useUTC?(h=a.getUTCFullYear(),f=a.getUTCMonth(),g=a.getUTCDate(),k=a.getUTCHours(),l=a.getUTCMinutes(),m=a.getUTCSeconds(),n=a.getUTCMilliseconds(),a=a.getUTCDay()):(h=a.getFullYear(),f=a.getMonth(),g=a.getDate(),k=a.getHours(),l= -a.getMinutes(),m=a.getSeconds(),n=a.getMilliseconds(),a=a.getDay());switch(b){case "YYYY":h=Math.floor(h/c)*c;f=0;g=1;n=m=l=k=0;break;case "MM":f=Math.floor(f/c)*c;g=1;n=m=l=k=0;break;case "WW":g=a>=e?g-a+e:g-(7+a)+e;n=m=l=k=0;break;case "DD":n=m=l=k=0;break;case "hh":k=Math.floor(k/c)*c;n=m=l=0;break;case "mm":l=Math.floor(l/c)*c;n=m=0;break;case "ss":m=Math.floor(m/c)*c;n=0;break;case "fff":n=Math.floor(n/c)*c}d.useUTC?(a=new Date,a.setUTCFullYear(h,f,g),a.setUTCHours(k,l,m,n)):a=new Date(h,f,g, -k,l,m,n);return a};d.getPeriodDuration=function(a,b){void 0===b&&(b=1);var c;switch(a){case "YYYY":c=316224E5;break;case "MM":c=26784E5;break;case "WW":c=6048E5;break;case "DD":c=864E5;break;case "hh":c=36E5;break;case "mm":c=6E4;break;case "ss":c=1E3;break;case "fff":c=1}return c*b};d.intervals={s:{nextInterval:"ss",contains:1E3},ss:{nextInterval:"mm",contains:60,count:0},mm:{nextInterval:"hh",contains:60,count:1},hh:{nextInterval:"DD",contains:24,count:2},DD:{nextInterval:"",contains:Infinity,count:3}}; -d.getMaxInterval=function(a,b){var c=d.intervals;return a>=c[b].contains?(a=Math.round(a/c[b].contains),b=c[b].nextInterval,d.getMaxInterval(a,b)):"ss"==b?c[b].nextInterval:b};d.dayNames="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" ");d.shortDayNames="Sun Mon Tue Wed Thu Fri Sat".split(" ");d.monthNames="January February March April May June July August September October November December".split(" ");d.shortMonthNames="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "); -d.getWeekNumber=function(a){a=new Date(a);a.setHours(0,0,0);a.setDate(a.getDate()+4-(a.getDay()||7));var b=new Date(a.getFullYear(),0,1);return Math.ceil(((a-b)/864E5+1)/7)};d.stringToDate=function(a,b){var c={},e=[{pattern:"YYYY",period:"year"},{pattern:"YY",period:"year"},{pattern:"MM",period:"month"},{pattern:"M",period:"month"},{pattern:"DD",period:"date"},{pattern:"D",period:"date"},{pattern:"JJ",period:"hours"},{pattern:"J",period:"hours"},{pattern:"HH",period:"hours"},{pattern:"H",period:"hours"}, -{pattern:"KK",period:"hours"},{pattern:"K",period:"hours"},{pattern:"LL",period:"hours"},{pattern:"L",period:"hours"},{pattern:"NN",period:"minutes"},{pattern:"N",period:"minutes"},{pattern:"SS",period:"seconds"},{pattern:"S",period:"seconds"},{pattern:"QQQ",period:"milliseconds"},{pattern:"QQ",period:"milliseconds"},{pattern:"Q",period:"milliseconds"}],h=!0,f=b.indexOf("AA");-1!=f&&(a.substr(f,2),"pm"==a.toLowerCase&&(h=!1));var f=b,g,k,l;for(l=0;lt&&(t="0"+t);b=b.replace(/JJ/g,t);b=b.replace(/J/g,q);t=k;0===t&&(t=24,-1!=b.indexOf("H")&&(f--,0===f&&(e=new Date(a),e.setDate(e.getDate()-1),h=e.getMonth(),f=e.getDate(),e=e.getFullYear())));a=h+1;9>h&&(a="0"+a);q=f;10>f&&(q="0"+f);var u=t;10>u&&(u="0"+u);b=b.replace(/HH/g,u);b=b.replace(/H/g,t);t=k;11u&&(u="0"+u);b=b.replace(/KK/g,u);b=b.replace(/K/g,t);t=k;0===t&&(t=12);12u&&(u="0"+u);b=b.replace(/LL/g,u);b=b.replace(/L/g,t); -t=l;10>t&&(t="0"+t);b=b.replace(/NN/g,t);b=b.replace(/N/g,l);l=m;10>l&&(l="0"+l);b=b.replace(/SS/g,l);b=b.replace(/S/g,m);m=n;10>m&&(m="00"+m);100>m&&(m="0"+m);l=n;10>l&&(l="00"+l);b=b.replace(/QQQ/g,m);b=b.replace(/QQ/g,l);b=b.replace(/Q/g,n);b=12>k?b.replace(/A/g,c.amString):b.replace(/A/g,c.pmString);b=b.replace(/YYYY/g,"@IIII@");b=b.replace(/YY/g,"@II@");b=b.replace(/MMMM/g,"@XXXX@");b=b.replace(/MMM/g,"@XXX@");b=b.replace(/MM/g,"@XX@");b=b.replace(/M/g,"@X@");b=b.replace(/DD/g,"@RR@");b=b.replace(/D/g, -"@R@");b=b.replace(/EEEE/g,"@PPPP@");b=b.replace(/EEE/g,"@PPP@");b=b.replace(/EE/g,"@PP@");b=b.replace(/E/g,"@P@");b=b.replace(/@IIII@/g,e);b=b.replace(/@II@/g,p);b=b.replace(/@XXXX@/g,c.monthNames[h]);b=b.replace(/@XXX@/g,c.shortMonthNames[h]);b=b.replace(/@XX@/g,a);b=b.replace(/@X@/g,h+1);b=b.replace(/@RR@/g,q);b=b.replace(/@R@/g,f);b=b.replace(/@PPPP@/g,c.dayNames[g]);b=b.replace(/@PPP@/g,c.shortDayNames[g]);b=b.replace(/@PP@/g,r);return b=b.replace(/@P@/g,g)};d.changeDate=function(a,b,c,e,h){if(d.useUTC)return d.changeUTCDate(a, -b,c,e,h);var f=-1;void 0===e&&(e=!0);void 0===h&&(h=!1);!0===e&&(f=1);switch(b){case "YYYY":a.setFullYear(a.getFullYear()+c*f);e||h||a.setDate(a.getDate()+1);break;case "MM":b=a.getMonth();a.setMonth(a.getMonth()+c*f);a.getMonth()>b+c*f&&a.setDate(a.getDate()-1);e||h||a.setDate(a.getDate()+1);break;case "DD":a.setDate(a.getDate()+c*f);break;case "WW":a.setDate(a.getDate()+c*f*7);break;case "hh":a.setHours(a.getHours()+c*f);break;case "mm":a.setMinutes(a.getMinutes()+c*f);break;case "ss":a.setSeconds(a.getSeconds()+ -c*f);break;case "fff":a.setMilliseconds(a.getMilliseconds()+c*f)}return a};d.changeUTCDate=function(a,b,c,d,h){var f=-1;void 0===d&&(d=!0);void 0===h&&(h=!1);!0===d&&(f=1);switch(b){case "YYYY":a.setUTCFullYear(a.getUTCFullYear()+c*f);d||h||a.setUTCDate(a.getUTCDate()+1);break;case "MM":b=a.getUTCMonth();a.setUTCMonth(a.getUTCMonth()+c*f);a.getUTCMonth()>b+c*f&&a.setUTCDate(a.getUTCDate()-1);d||h||a.setUTCDate(a.getUTCDate()+1);break;case "DD":a.setUTCDate(a.getUTCDate()+c*f);break;case "WW":a.setUTCDate(a.getUTCDate()+ -c*f*7);break;case "hh":a.setUTCHours(a.getUTCHours()+c*f);break;case "mm":a.setUTCMinutes(a.getUTCMinutes()+c*f);break;case "ss":a.setUTCSeconds(a.getUTCSeconds()+c*f);break;case "fff":a.setUTCMilliseconds(a.getUTCMilliseconds()+c*f)}return a}})(); \ No newline at end of file diff --git a/chronos/static/js/amcharts/funnel.js b/chronos/static/js/amcharts/funnel.js deleted file mode 100644 index a2c7957..0000000 --- a/chronos/static/js/amcharts/funnel.js +++ /dev/null @@ -1,17 +0,0 @@ -(function(){var a=window.AmCharts;a.AmFunnelChart=a.Class({inherits:a.AmSlicedChart,construct:function(p){this.type="funnel";a.AmFunnelChart.base.construct.call(this,p);this.cname="AmFunnelChart";this.startX=this.startY=0;this.baseWidth="100%";this.neckHeight=this.neckWidth=0;this.rotate=!1;this.valueRepresents="height";this.pullDistance=30;this.labelPosition="center";this.labelText="[[title]]: [[value]]";this.balloonText="[[title]]: [[value]]\n[[description]]";a.applyTheme(this,p,this.cname)},drawChart:function(){a.AmFunnelChart.base.drawChart.call(this); -var p=this.chartData;if(a.ifArray(p))if(0l&&(this.neckHeight=this.neckWidth= -0,f?g-=l/2:b-=l/2);var r=n-q-r,E=a.toCoordinate(this.baseWidth,r),I=a.toCoordinate(this.neckWidth,r),D=w-g-b,F=a.toCoordinate(this.neckHeight,D),y=b+D-F;f&&(b=w-g,y=b-D+F);this.firstSliceY=b;a.VML&&(this.startAlpha=1);for(var z=r/2+q,G=(D-F)/((E-I)/2),B=1,t=E/2,E=(D-F)*(E+I)/2+I*F,H=b,M=0,F=0;Fk&&(k=0);k=(Math.sqrt(k)-K)/(2*u);if(!f&&b>=y||f&&b<=y)k=2*-C/I;else if(!f&&b+k>y||f&&b-ky||f&&b-ky&&(u=0),m.push(b,b,b+u,b+k,b+k,b+u,b)),K=!0):(A.push(z-t,z+t,z+C,z-C),f?m.push(b,b,b-k,b-k):m.push(b,b,b+k,b+k));u=c.set();0l?(m=C/t,A=-1,f||(A=1),isNaN(B)&&(B=0),A=(new a.Cuboid(c, -2*t,A*k,e,l*B,h.color,h.alpha,this.outlineThickness,this.outlineColor,this.outlineAlpha,90,0,!1,0,h.pattern,m)).set,A.translate(z-t,b-l/2*B),B*=m):A=a.polygon(c,A,m,h.color,h.alpha,this.outlineThickness,this.outlineColor,this.outlineAlpha);a.setCN(this,u,"funnel-item");a.setCN(this,A,"funnel-slice");a.setCN(this,u,h.className,!0);u.push(A);this.graphsSet.push(u);f||u.toBack();h.wedge=u;h.index=F;if(m=this.gradientRatio){var x=[],v;for(v=0;v=this.hideLabelsPercent&&(m=this.formatString(this.labelText,h),(A=this.labelFunction)&&(m=A(h,m)),x=h.labelColor,x||(x=this.color),A=this.labelPosition,v="left","center"==A&&(v="middle"),"left"==A&&(v="right"),""!==m&&(m=a.wrappedText(c,m,x,this.fontFamily,this.fontSize, -v,!1,this.maxLabelWidth),a.setCN(this,m,"funnel-label"),a.setCN(this,m,h.className,!0),m.node.style.pointerEvents="none",u.push(m),x=z,f?(v=b-k/2,h.ty0=v):(v=b+k/2,h.ty0=v,vw-g&&(v=w-g)),"right"==A&&(x=r+10+q,h.tx0=z+(t-k/2/G),K&&(h.tx0=z+C)),"left"==A&&(h.tx0=z-(t-k/2/G),K&&(h.tx0=z-C),x=q),h.label=m,h.labelX=x,h.labelY=v,h.labelHeight=m.getBBox().height,m.translate(x,v),t=m.getBBox(),H=a.rect(c,t.width+5,t.height+5,"#ffffff",.005),H.translate(x+t.x,v+t.y),u.push(H),h.hitRect= -H,M=m.getBBox().height,H=v));(0===h.alpha||0g&&(b=e+l+5):g+r+5>e&&(b=e-5-r);e=b;l=r;w&&(w.translate(q,b),w=w.getBBox(),f.hitRect&&f.hitRect.translate(q+w.x,b+w.y));f.labelY=b;f.tx=q;f.ty=b;f.tx2=q}"center"!=this.labelPosition&&this.drawTicks()}})})();(function(){var a=window.AmCharts;a.Cuboid=a.Class({construct:function(a,e,l,c,d,f,n,w,g,q,r,b,E,I,D,F,y){this.set=a.set();this.container=a;this.h=Math.round(l);this.w=Math.round(e);this.dx=c;this.dy=d;this.colors=f;this.alpha=n;this.bwidth=w;this.bcolor=g;this.balpha=q;this.dashLength=I;this.topRadius=F;this.pattern=D;this.rotate=E;this.bcn=y;E?0>e&&0===r&&(r=180):0>l&&270==r&&(r=90);this.gradientRotation=r;0===c&&0===d&&(this.cornerRadius=b);this.draw()},draw:function(){var p=this.set;p.clear(); -var e=this.container,l=e.chart,c=this.w,d=this.h,f=this.dx,n=this.dy,w=this.colors,g=this.alpha,q=this.bwidth,r=this.bcolor,b=this.balpha,E=this.gradientRotation,I=this.cornerRadius,D=this.dashLength,F=this.pattern,y=this.topRadius,z=this.bcn,G=w,B=w;"object"==typeof w&&(G=w[0],B=w[w.length-1]);var t,H,M,h,u,A,m,k,C,K=g;F&&(g=0);var x,v,J,L,N=this.rotate;if(0Math.abs(d)&&(d=0);1>Math.abs(c)&&(c=0);!isNaN(y)&&(0d&&(q=" A"),g+=q+Math.round(c/2-J)+","+Math.round(d-L)+","+Math.round(c/2+J)+","+Math.round(d+L)+",0,"+d+","+c+","+d,g+=" L"+c+",0",g+=q+Math.round(c/ -2+x)+","+Math.round(v)+","+Math.round(c/2-x)+","+Math.round(-v)+","+c+",0,0,0"):(g+="A"+J+","+L+",0,0,0,"+(c-c/2*(1-y))+","+d+"L"+c+",0",g+="A"+x+","+v+",0,0,1,0,0"),x=180),e=e.path(g).attr(w),e.gradient("linearGradient",[G,a.adjustLuminosity(G,-.3),a.adjustLuminosity(G,-.3),G],x),N?e.translate(f/2,0):e.translate(0,n/2)):e=0===d?a.line(e,[0,c],[0,0],r,b,q,D):0===c?a.line(e,[0,0],[0,d],r,b,q,D):0d?[t, -C,H,M,h,u,A,m,k,e]:[m,k,H,M,h,u,t,C,A,e]:N?0d?[t,e,m]:[m,e,t];a.setCN(l,e,z+"front");a.setCN(l,H,z+"back");a.setCN(l,m,z+"top");a.setCN(l,t,z+"bottom");a.setCN(l,h,z+"left");a.setCN(l,u,z+"right");for(t=0;ta&&(a=e.width*n),e.height*n>h&&(h=e.height*n);(b=this.legend)&&b.invalidateSize();if(this.adjustSize&&!this.chartCreated){f&&(f=f.getBBox(),f.width>a&&(a=f.width),f.height>h&&(h=f.height));f=0;if(w>h||d>a)f=Math.min(w-h,d-a);0=this.totalFrames?d=b.value:(b.frame++,b.clockWiseOnly&&b.value1iNjd8KUTPot%5kx5_WgghpWha=2jxiENOiV7?GL}AJ9)#( XY}MUK3j=k8jV9V0ds4KRfx#L8hsiVB diff --git a/chronos/static/js/amcharts/images/dragIconBlack.gif b/chronos/static/js/amcharts/images/dragIconBlack.gif deleted file mode 100644 index 52301cfefa92516c01a116591e0aa6e96384b79e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 122 zcmZ?wbhEHb6k?EMn8*ME|NsA&mzM{Uia%Kx85o!ubU>mYc?Kr$IsGe7zm-_jqubG) zAHn$JKWFr%#sw>;ENh>XqrUGY_mQt07t3bf|7ZL8Z9#ibj)aX=XWP^M@GH8LH>}K7 V-JP^BP)FEkqRp`|5+k;k+{(_5ZtE$XO>y81${;QB?bGt;)REI6sLDHR_0Apz{NB{r; diff --git a/chronos/static/js/amcharts/images/dragIconHBlack.gif b/chronos/static/js/amcharts/images/dragIconHBlack.gif deleted file mode 100644 index 3d65e462c45fca8d5fbe59dab2d2227f39635abf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 111 zcmZ?wbhEHblw=TMn8*ME|NsA&mzM{Uia%Kx85o!ubU>mYc?KqjIsGe7zvcIxvE`On z%e_7AQyCw5Ogk{W<(bx^j;g4uFXRfYU*tM7ZL7+HlN!510$Lu6#2=r>|D?vK?Mlbj KuCr=f4AuaV5G@}7 diff --git a/chronos/static/js/amcharts/images/dragIconRectBig.png b/chronos/static/js/amcharts/images/dragIconRectBig.png deleted file mode 100644 index e57ef66b718a24eb2907e6b831ff7abf44b85ada..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1235 zcmeAS@N?(olHy`uVBq!ia0vp^5DSr z1<%~X^wgl##FWaylc_cg49pdoArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XR4cQU}UIZZmDNz zYHDt7q@!SDU}&OmV5o0stZQg#WnyAwV4wg6Nh+i#(Mch>H3D2mX`VkM*2oZxz*Q}aqZU2K(rGI}YQDOLuS z#ukZ*X2!afCdrn%CI+S^x|YewCb||T25BjYrskHZDTXj}u<3U;wQx0abTM)U3|5U*Y<=c3falKi5O{QMkP zDhSBPFUc>?$S+WEb_U0~f`)Hma%LV#P!kkU5P!R*7G;*DrnnX5=PH0h+A0%^D~JmL zi2f9ELr@>+D1A_JK}tR_Az+#WG2xj3$bo04)I4AwDgtH}`S|&nz>N0M)5S5Q;?|pK zzFdb41X_KQGGjX)9P0JXe^U6x$=3VbgP;xn8g~R_PqqkF59-#Q?4d1NVIuG&&M5fS z@gBpyVd9I`*PmQk;;U+KYE#a-DYqn!JF#t=(3!KxQGUvSV_n5|A1{in{Tjw$*!=YB zHkEIz`q7_Kjy}D#P2)g~a(001w(sIE(%BBKvSiDgRTs1UIon*v^bg0`emHtLB>#|H zySGVl_Myi&&MvTIQ+zbH(paM_>3uiP8t1DFm#@cq?OejU{M6?f_BE_V6aR9>EfCD$ zkg_<##$U}i*HN7(t|y_XDafa?t#+ab52t^f^2!GfzbhVKP!63O_;Ar|Jy0>@>FVdQ I&MBb@0HW)lHvj+t diff --git a/chronos/static/js/amcharts/images/dragIconRectBig.svg b/chronos/static/js/amcharts/images/dragIconRectBig.svg deleted file mode 100644 index bd704eb..0000000 --- a/chronos/static/js/amcharts/images/dragIconRectBig.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/chronos/static/js/amcharts/images/dragIconRectBigBlack.png b/chronos/static/js/amcharts/images/dragIconRectBigBlack.png deleted file mode 100644 index 0d575c83f3f050277e75c734f86eaef7ccdf4ec7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1205 zcmbVMTWHi+7!IvBN(J$us1F+B1+C^fNoNvg9A+j{JGklAaTZ6>+SBArn{9J3Id#%L zctylMi4UUagS-3Wg#|&uRao0aydd61q@WfA@ltSQU!?5Ao=iJkABu>9D7s@YAk<+3%f)Ddh$jOV=sggTov_Qa6V%6R*D2C864Vw+ z<1{w|yUmsX4{jc4E$9P1x@=I%^<+FyumKAqKn7N??JGfos@PTVJ`}SQSy4ef32Gv! zqSi)c91oHbBhfl1@MKhGcu9&zg|(!>@gmFdEFYnHSrJ8rFbdl-UWM~m|I(;ZX z;YcS^uv|@>GHm;kL}AL<0JtpAaI9s8c~!K1l!yO^F|D>==yxHThrZM2>9`)HWmPcd z?(2?1MI4Rtqi5oxfL_(n`z&aqoSLBU4P%&w!pV^s08J5E7Im2xIZ32tT^H$?$dwEr zMP+F4RXfw+(^*k!64J6Ni7L-$#aLS9nz^hRNks)QE2XN~ob4lE>#*wE#J(r7v9Ds4 zj0XX7yn^HOR=c3B+d+=s?YLwnQ>i++N&~uShr-oip(gTHp=a)fMziNwWQA$PoFvs>@pF8SPSZN{!&z`gC;^7|S)KdgE7^y-sepTiqx){VVQK73Gr z?5Dl;7cMWke%L?os6+g$*Pfeyfm+{GV;+B9Kdv98UdpdV7i{`>`K*Pf+L}fVN+)Ix zE*WYV8`^O(_Ttcr;y!bzcU5Ei@XXW0+Qs6{)Y;MaZ-2Hd@`ksK$p5q~-m|l&p0Hv2 Unw94_so{?#mu*#lPj?*n5ANiYJOBUy diff --git a/chronos/static/js/amcharts/images/dragIconRectBigBlack.svg b/chronos/static/js/amcharts/images/dragIconRectBigBlack.svg deleted file mode 100644 index 2771b35..0000000 --- a/chronos/static/js/amcharts/images/dragIconRectBigBlack.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/chronos/static/js/amcharts/images/dragIconRectBigBlackH.png b/chronos/static/js/amcharts/images/dragIconRectBigBlackH.png deleted file mode 100644 index 293f19ff89841362891b424637243e9bd3be6d29..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 681 zcmV;a0#^NrP)KLZ*U+=)p!fv7f#TG` zAxLl%!EgG`&*5<32cu%worY0{L9A7~=}6b}76Isk~1IN~P)K3@?4 z&zpALY4A7Z!>t0&I7qECf*j`WHIYAjW_h^ivJu4lvb8y9VL`DD`rG0ZKvcZ$L@8 zo)6*!Fng}&gE0q~LGCMnsiR8`P)pL0I_sTkS+y)n+TA3Gc@@<@(WaGaElFMB5!g=gK7*= z;|kje!v}A3Rvi)hr>?NTs=(S;Ijb_-^{|3cY7PM)6$IF4ofN<T-Xh{-0H|=0Po+h^SkfQf2txtw@Sgn{5&hQy`Eay}mPb8H P00000NkvXXu0mjf6J#n_ diff --git a/chronos/static/js/amcharts/images/dragIconRectBigBlackH.svg b/chronos/static/js/amcharts/images/dragIconRectBigBlackH.svg deleted file mode 100644 index 2d09e52..0000000 --- a/chronos/static/js/amcharts/images/dragIconRectBigBlackH.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/chronos/static/js/amcharts/images/dragIconRectBigH.png b/chronos/static/js/amcharts/images/dragIconRectBigH.png deleted file mode 100644 index 02e58a60ddbb949ba4a38e8f2030f34994021124..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 715 zcmV;+0yO=JP)KLZ*U+=)p!fv7f#TG` zAxLl%!EgG`&*5<32cu%worY0{L9A7~=}6b}76Isk~1IN~P)K3@?4 z&zpALY4A7Z!>t0&I7qECf*j`WHIYAjW_h^ivJu4lvb8y9VL`DD`rG0ZKvcZ$L@8 zo)6*!Fng}&gE0q~LGCMnsiR8`P)pL0I_sTkS+y)n+TA3G - - - - - - - - - - - - diff --git a/chronos/static/js/amcharts/images/dragIconRectSmall.png b/chronos/static/js/amcharts/images/dragIconRectSmall.png deleted file mode 100644 index 21e413e8d4348be54e16533dfcca704af50210c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1110 zcmaJ=TSyd97@iU=1uLS0F2ZRn&}!%AjO$Lj*|xLlVk5F`WZ8q`%+VdTxioWZSIvl6 z3W=by45AA}5e40Y9!jDx$%kHgh_I+Adx<~k6|HOc2n-TL zLAjo2M$PhOQMC+8@qDO^VPiBw1Zy(3qNX4MZLmW(L*%#n4@sbFA#$4_GqN3lNxi57>Und24l*)!85$hn|Yh#VKyEH{CO%aWqG37voaxL@ay@kx7JXk*3q> zG?lKTET@BJ1Azd|a5TsHu!qm>GLe$;nQmF0L4vO8=r+WEhB4{wqBxw=J1w!B=&~UlhpyG>sJLTQ=lG})&SND@?KGf?@>p#O8=VpB4TNFi$P#q)Jy5H4ECb{c z7xihh)cOU+&sFl6uWEWN<5+EGEs+_u&{z!ZwfCQP=S_HqyyN8X;>+atLle)ugNJ+X zsjFY`!x)N5;Y4Qi^T~$d$IPN=|ANEk`wGJLr{}M;rf==j^7Zzt_}Mk9^bfrsi{@QC zeYarFpqsne;^H*j?c(6S=u;TMV_vYGT zgAF5L>dEb==5XTJXc$4>O@ zr0zZ*8m!{S>OXBg&JL%p6y5PtqXXFz;kx^Eh`#-P@CMs6_QD){`EdVbqJW65zV){M SLE&=mrN^R;()CTP2mS&xiEiKk diff --git a/chronos/static/js/amcharts/images/dragIconRectSmall.svg b/chronos/static/js/amcharts/images/dragIconRectSmall.svg deleted file mode 100644 index 3070923..0000000 --- a/chronos/static/js/amcharts/images/dragIconRectSmall.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/chronos/static/js/amcharts/images/dragIconRectSmallBlack.png b/chronos/static/js/amcharts/images/dragIconRectSmallBlack.png deleted file mode 100644 index ad102552a71c2a1c616a0118dbb442e11dd8e8a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1087 zcmaJ=TSyd97#_0J1cjo^BxM-UlH8q{y|}xRo2@&mE;O>N3tB`u&YX1zor^Qac3nj9 z1{p|neaM%{LWInu7a<`N0tqI&U?>XT{s2D?ZeAh=p~jG8 zJRY~k?N(LqAZd@sLsB-@qBdXe!?qVpWLe+?=8t(U}x`v4@$a)FHW0fS4sdn2O zZol2hIvqZm4mjL(ELBehSi8?BO{hX$&luF{~CANgfwIxcf^Y>JMsq#(!7quz2SXw1wD-E zAnS`H-hIAJ7YtHGBb#?(p~CEnhM5oDMak@IA1jY79KK)ia(%pEv2CF)C;Q^}a`|Sz zbZWl%z-(Ji!CLN*3%`z+&Y#IT|E=(~9vaMp1CiD7x8;@YH@EU1ermMLOs-Uk{a1fa zMWTD&cU4_ld9dVJH)^6|ce%O!EBLawHh-@uxqSUxQ{V8=)Wp-F8;_1GmBOFH^2F+k nk?E3yUlvc!4NQ)1?CaZGgl*0SH(Ev;dGkpJ15NDXy0*bT%aLan diff --git a/chronos/static/js/amcharts/images/dragIconRectSmallBlack.svg b/chronos/static/js/amcharts/images/dragIconRectSmallBlack.svg deleted file mode 100644 index a7f1749..0000000 --- a/chronos/static/js/amcharts/images/dragIconRectSmallBlack.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/chronos/static/js/amcharts/images/dragIconRectSmallBlackH.png b/chronos/static/js/amcharts/images/dragIconRectSmallBlackH.png deleted file mode 100644 index feb6527f537f786ead74a8c11ba8e08860a006b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1092 zcmaJ=O-K|`93K;<7FR4IGKwA}gn_#=v+lU<;HK-$noEvs>p~kI+S!@6?w~Vont8UX z2T6k{qC~dSSk8Ur@71^K}WT93+u=PE~An~qc}p7OgBp~ ztZiD;*=iGM7*kX%hV!#-No7Y_{=chXYZWTvUP8&T5H}sHm@14*5t{J$bzKvpVtac? zlvs%mMma7PJkc$&J#0*Bi-rQh7#}TTC8UlT(8Oh|wu9v=VqHNP7KtoDTfYdk9vc~; zRJfp5%tee<|}LDqFuu-EN053c*?{>Ybc{!30<5ggFqUuKo{I1{E zK&|Zu6W)~@hwDDvspGFlJy$;`G6$FMC;Jk})0U{0x^mpjy}5O&k@sGn?lr26VYB6W$XrXpu@^MjK%?Y`@HtY3Q6otgRrC;wd$ diff --git a/chronos/static/js/amcharts/images/dragIconRectSmallBlackH.svg b/chronos/static/js/amcharts/images/dragIconRectSmallBlackH.svg deleted file mode 100644 index bf664af..0000000 --- a/chronos/static/js/amcharts/images/dragIconRectSmallBlackH.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/chronos/static/js/amcharts/images/dragIconRectSmallH.png b/chronos/static/js/amcharts/images/dragIconRectSmallH.png deleted file mode 100644 index 93674740a98f07f26c31c1195fd3d9d8363b33c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1115 zcmaJ=TSyd97#@^vOA=v(S;{m9X}WWBSKYx))}6JM9J6(yg|ZxH&bq@omu8Ob=u?zn zJ!lUVSx|xyBta1*L>JPEjV@0GVHbMq9%<4;FJfm_*Lr9hICIYV`M>YKedk1L%Z>t9 zu?xeng78j0g7$UJTDctk2Tzm~plt&T#bBErhbhqnSU}c00UlPxE)W5t+DU zawQsrF`=20bd?kxAJSG0gvPM?2HOy&B!GA)=u$L4F@5_Ufh)3~*y|N&!3ctcva`tEQ1d3+LaW29)EyhAOKaqgY;3z7U zN|C8*Qa8IO#^>`Gg@ zTFqK)6KWV`iw4Dzv{O>nQ4s#`s;W!g7L0&D`TmpGiuM|SiU3RRF(ov(c$pK*;DRO) zp>9TXy*t~*)`SjqE1?^BFqr8YUM`4|qB+Kj3`!8Vux3F~lR%jF6NraY6q&23V?A}j zYKHfE0t^%K)HU*S6CL8K1GTItqK!aJV{0GbC#5#gd4HTINrg9j_O{T8m znZh|GXD)10PQFE~oI4jfCze9VP|kS&8h6%&G~^tY#EULV@&_8yyotp9EcBxoJ&ea; zJ`lBEe>=mt?$cQ4R8b|jit~MGH`n_6?Hd>I4S9EuY)!Q9OC-O}PYG+^$i~cr%J;$2 zaABmPzqO-gB2|&Tw4&r@;ozf9Rgysbfjw$Ewj1&!xzbyScY7C5i z$`4kw?>{g){_gn1#Pv(NgkSNI(at9q(^HLeSDRn_yfT>{K07pEpA>GThcBF-ojEwW zrgWqC?fUD__r%J2FOR8jj*_mYRZq!sZ8JMPcaHo%OMF;XDb44V=B>uUyVKX^9yYvk Oo_jdd!e4FdIQkoizjSZ_ diff --git a/chronos/static/js/amcharts/images/dragIconRectSmallH.svg b/chronos/static/js/amcharts/images/dragIconRectSmallH.svg deleted file mode 100644 index 1aefbf9..0000000 --- a/chronos/static/js/amcharts/images/dragIconRectSmallH.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/chronos/static/js/amcharts/images/dragIconRoundBig.png b/chronos/static/js/amcharts/images/dragIconRoundBig.png deleted file mode 100644 index 794796a58a5b1dd7c52fa0de2e3026f291f40013..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1333 zcmV-51500009a7bBm000XU z000XU0RWnu7ytkPIcY;fP*7-ZbZ>KLZ*U+=)p!fv7f#TG` zAxLl%!EgG`&*5<32cu%worY0{L9A7~=}6b}76Isk~1IN~P)K3@?4 z&zpALY4A7Z!>t0&I7qECf*j`WHIYAjW_h^ivJu4lvb8y9VL`DD`rG0ZKvcZ$L@8 zo)6*!Fng}&gE0q~LGCMnsiR8`P)pL0I_sTkS+y)n+TA3G7>N6?|tswkN3SNP)hN?m@vTmB5Q)H0RVM12Y^F8j8qW*e(p6W96-uuv(Z|umTESe zyOw305kfS_aaxY!vIEYJ2qY4TsA-yq^oh+h&BH_@5p@Igf(ZbK)a&(6bVydO*Y^NK z00er$hyX^a)#@4@vQ?|qHMWMtyI=$WQZAR9?Pte4Vo~e4TyB=_GNBtr1Q5}6eTVvF zx~}iA=@PqPq*N*;6GATg>9ABP-TB+=Ih0DJWEPzci~t~9E|*vO9o=JKD5bPqF0TLx z^PR=>OfVLUz4JRU#$vJe0D^p~IE)kyhhO^*!+c6^7y&>a6bjAx4HF85Uh)Ib9T`y+ z#WBBOm`~9inL%{TP&8HN1ausy;WtIMPYy#{t=12}VVFI{x>7)Yy)0Ijk?^mL% zR4RD@)9!T8Nt6I4GMUVhZQEDF2C;4XI+MvP0hs7clpP5HVCLlHXpRS$**qN?fvfO+QYPI1+dodBj}Szgd}{b&e+>PVL51prgMWamGE9Dpp# z@}jD$pPw)ypJiEI1R#46&c>K-e zA_zj>5;Fce7?&^fQ3h|J15ZOp1 z0M8iM2!IfK7IZB_2SA%Sw3zc-04?^6P)eO%B@w}+-r!RgWKClK16}VD)@%mWcIBR) rH4m>ay^2L*w?uIliyi{#hWRr9JP@F&xB=l200000NkvXXu0mjf^U75{ diff --git a/chronos/static/js/amcharts/images/dragIconRoundBig.svg b/chronos/static/js/amcharts/images/dragIconRoundBig.svg deleted file mode 100644 index 9144b93..0000000 --- a/chronos/static/js/amcharts/images/dragIconRoundBig.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/chronos/static/js/amcharts/images/dragIconRoundBigBlack.png b/chronos/static/js/amcharts/images/dragIconRoundBigBlack.png deleted file mode 100644 index 047930ffa83a7e69042f69cf21a62f282728055d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1090 zcmV-I1ikx-P)500009a7bBm000XU z000XU0RWnu7ytkPIcY;fP*7-ZbZ>KLZ*U+=)p!fv7f#TG` zAxLl%!EgG`&*5<32cu%worY0{L9A7~=}6b}76Isk~1IN~P)K3@?4 z&zpALY4A7Z!>t0&I7qECf*j`WHIYAjW_h^ivJu4lvb8y9VL`DD`rG0ZKvcZ$L@8 zo)6*!Fng}&gE0q~LGCMnsiR8`P)pL0I_sTkS+y)n+TA3Gf35Re^Jk|78Rhcs`T`#sHkLo~-acbH+Wp7`K&;F< zH^x#lC(YPL$Jdz{cvwMgd?fAA!X&_Q1u)CDRD>qc-KYTOx=nzgv8f7Rri}hSTf6d} z%9iy`1t6Vt3GiLoeg!c5w&@B@i}=0*m=8vuP-I(yRl4Z6Ok17Ptp|8w1F9Y0ah!C7QQm;EOu?QIBzaHu<-5>P#R5$zoJ+upju`C{5N*A)A|DMCk<3F}aL#Q*qPd-vqiNs)a38n@ zTr;gl2lxzp1l|H~1oR8|2^^UO=gPp?MI8z1vcPJaUWpWi$-68{Uvu;Zxh(oS0GapLy%Vuj^#A|>07*qo IM6N<$f>-F=f&c&j diff --git a/chronos/static/js/amcharts/images/dragIconRoundBigBlack.svg b/chronos/static/js/amcharts/images/dragIconRoundBigBlack.svg deleted file mode 100644 index 7aaacc5..0000000 --- a/chronos/static/js/amcharts/images/dragIconRoundBigBlack.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/chronos/static/js/amcharts/images/dragIconRoundBigBlackH.png b/chronos/static/js/amcharts/images/dragIconRoundBigBlackH.png deleted file mode 100644 index 54120057aba67343d694a05902a4f2e24b54a5b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1095 zcmV-N1i1T&P)500009a7bBm000XU z000XU0RWnu7ytkPIcY;fP*7-ZbZ>KLZ*U+=)p!fv7f#TG` zAxLl%!EgG`&*5<32cu%worY0{L9A7~=}6b}76Isk~1IN~P)K3@?4 z&zpALY4A7Z!>t0&I7qECf*j`WHIYAjW_h^ivJu4lvb8y9VL`DD`rG0ZKvcZ$L@8 zo)6*!Fng}&gE0q~LGCMnsiR8`P)pL0I_sTkS+y)n+TA3GXRrcaHJC%(Dz2vFt>a`=2IBLYNc40|MX*@Dz9g+y~}>YZ})EJ_GN8 zx4;|V574(DhkAS<0%n0#VBd*AmK|u$tbF)`B9j%30EmHSz+M3e*Y@NimQSw;i~*?u zYePV|wkDscKxr@rWCGZ{KoDb_@_hy<4JH7_fEObGG4@g#K^Ba!ye^Lr#MrX5{4^L( z6+c(-i#f0DODi(zN|NN1%)mScW=dFWXQUOS6>|hMv^FFq*?}}8J2D;+YGs`+aVwgZ zW@w^g_L&fPRKec(SlYe~69Eeqz%1BXMQAN_HwVpZHk*Z%TCLWgAvfFwFjgTQmsq^U zj-?&DpLXRvmEF%A0#hZY>Ck;)(zIJans(hZnHKRw1u6Py>EnyA4{TQevu(Adr)@(G zxCQ(uF-6~{Spxz)O+DZz@T$b9yq0Fqq{-eWr+`J^TS-w_lxF0%5PhHnd{sw3>StA2 z9ciCgcp_jDm - - - - - - - - - - - - - - diff --git a/chronos/static/js/amcharts/images/dragIconRoundBigH.png b/chronos/static/js/amcharts/images/dragIconRoundBigH.png deleted file mode 100644 index 5cbee673ddb3978915e12d544d2c2c56e5b36ded..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1368 zcmV-e1*iInP)500009a7bBm000XU z000XU0RWnu7ytkPIcY;fP*7-ZbZ>KLZ*U+=)p!fv7f#TG` zAxLl%!EgG`&*5<32cu%worY0{L9A7~=}6b}76Isk~1IN~P)K3@?4 z&zpALY4A7Z!>t0&I7qECf*j`WHIYAjW_h^ivJu4lvb8y9VL`DD`rG0ZKvcZ$L@8 zo)6*!Fng}&gE0q~LGCMnsiR8`P)pL0I_sTkS+y)n+TA3GDos*%*P(X; zD>(XPi^u~G5Gfwthwt6p``!`GIldMn3p}rgMj{OWc%(4^jL-0;g#6ci)}TlLy;`ki zy4`MRFc`cHg5U$C)MkwNj4_{5Y6n5^VK5lH>~_1QYPFgHpi6MhIWB9`W`R)v=#55W z({LWc_~sRk2uH9S52OLjb6SLLuXM-dldn=6T-RLZOg}0!@NZ0i=7q-tT-# z*6a250Hgt^lVB78$xf&9lrPyjoz7D+hLp=-2mrlStKFJs##~`gJGENvmY8K^97X|< zb{yvgkI5Xzc_GrJjKk=qQpuo{p2P)1DLpBbN`{Ee2!;SiwOXymJZ5XPT8{ywwI{4IG3}Xot=sQClZMt zGaxFUOun+zW+%m!_msi05I2e|B5?5uIql3{v`|tK#z`&-p37de0=;K0F6dR z1+bdW=Wh>(!@uKNeZw$3%jfgA0jx&l1QAQ}X1m?4#|6`Fx9b2lqvc>!C;_ZhDwX?T z7@o!vl}e>@AHdppp&UsF05|vd_kUeB%)!CIZvbw7NkR}o_#J?4%d%cC3&gUl*8sMK zuS><%NOl6)Fbw04<2dh@AgJCMhH(eL#w6MKKS2(_Fbw0aWm#{oF(Pja!?+8;m_?9B zH*YJVQ?A);J_~~2Y*C0H2+o?#<}&~}@y?Z5w<=MfvY^&)wbKKTOj+2k;Mo0e}kt;rQu9^b}&6bWp^X=m2gAuq1$lxTi%1ApQO-G=bRz*DqJ;u%7^yvciqN|9VUaQ}QKE-M(*VX{ a{v7}#dK* - - - - - - - - - - - - - - diff --git a/chronos/static/js/amcharts/images/dragIconRoundSmall.png b/chronos/static/js/amcharts/images/dragIconRoundSmall.png deleted file mode 100644 index 05703ebfbf75152c0b29556d578e076b9e2c5dc0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1273 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE;=WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2v2cW{u2{h>{3jAFJg2T)jk)8oi3#0-$aN1{?c|g2d$P)DnfH z)bz|eTc!8A_bVx6rr0WloBA5~7C5J7WO`H;r3P2|g(O#HCtIc{+1n}DR9FEG$W1Lt zRH(?!$t$+1uvG$^YXxM3g!Ppaz)DK8ZIvL7itr6kaLzAERWQ{v)lD`qGE^|P)H5_S zH8(fXQ7|$vG|@LO)HgKNHMF!cF|jf*P=Ep@plwAdX;wilZcw{`JX@uVl9B=|ef{$C za=mh6z5JqdeM3u2OML?)eIp}XpbFjM%Dj@q3f;V7Wta&rsl~}fnFS@8`FRQ;6BCp2 zOG|8(fG&l2A-4c-Y+f-mn1BJMUy)d#Z>VPg@)As;uP=V3xw&xF#U(+h2=`(&xHzP; zAXPsowK%`DC>a=WY04n03ap%qQWHz^i$e1Ab6}wukda@KU!0L&py2Eb4mAZ0-^Aq1 zJdmI!SeLJ_m1kaYNn&1ds;7&s63`sI%*+%kM`trLb7vO|7gG~QLqk^+3nv!?Hv?A} zV@Go%6IWA5m|mCsJM|Adi8;h(Fa8@Qgp+FfN2QCgeP7g2cG;>^MGl- z2$;B+89N&=FfgWjx;TbZ+*&i$(Yqx;q;c$r`)umrZzQ z#kWXZS=3&=e}U9|qmMT4b9TloJ1gHB^~K;y!n7Mo-gDeo<zFv2Mn=RsPcR}p;BPM5^H!cKmbqlQK&f{`5T+G_HWQzMLhqNAsE4+s- z0$7clum6mW>1bq0hz-5ETWf{RY4Z&XYhJ9b4`UU2%&5a~+M+K%v@uZRZo^e3-P5~H zfBushEK!wvd*Aaff%3M;3;T92HqWv6a`d`?@m{pKh_#91BRRLxU;5wOS}mxj67ZaT-G@yGywo^2*m*a diff --git a/chronos/static/js/amcharts/images/dragIconRoundSmall.svg b/chronos/static/js/amcharts/images/dragIconRoundSmall.svg deleted file mode 100644 index 083d819..0000000 --- a/chronos/static/js/amcharts/images/dragIconRoundSmall.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/chronos/static/js/amcharts/images/dragIconRoundSmallBlack.png b/chronos/static/js/amcharts/images/dragIconRoundSmallBlack.png deleted file mode 100644 index 76c07d2c95c331afadd357e09d4e9aa0f536e082..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1205 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE;=WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2v2cW{u2{h>{3jAFJg2T)jk)8oi3#0-$aN1{?c|g2d$P)DnfH z)bz|eTc!8A_bVx6rr0WloBA5~7C5J7WO`H;r3P2|g(O#HCtIc{+1n}DR9FEG$W1Lt zRH(?!$t$+1uvG$^YXxM3g!Ppaz)DK8ZIvL7itr6kaLzAERWQ{v)lD`qGE^|P)H5_S zH8(fXQ7|$vG|@LO)HgKNHMF!cF|jf*P=Ep@plwAdX;wilZcw{`JX@uVl9B=|ef{$C za=mh6z5JqdeM3u2OML?)eIp}XpbFjM%Dj@q3f;V7Wta&rsl~}fnFS@8`FRQ;6BCp2 zOG|8(fG&l2A-4c-Y+f-mn1BJMUy)d#Z>VPg@)As;uP=V3xw&xF#U(+h2=`(&xHzP; zAXPsowK%`DC>a=WY04n03ap%qQWHz^i$e1Ab6}wukda@KU!0L&py2Eb4mAZ0-^Aq1 zJdmI!SeLJ_m1kaYNn&1ds;7&s63`sI%*+%k6E`C>OJf%o7gG}_Lqk^+3nv!?Hv?A} zV@Go%6IWA5m|mCsATTySGwMrBVI z$B>F!Yo?ygI^-bIrhfT|x8n)F-y(T${SM}3huited5Z5^y|1Ce+Ken1m;NVfeIwW7Y%SD+h$< z|720V!0fz%@qU8)$C*0pNdfH1=c+ml=l9NB{dRj##bVxT;U{>qpB*Wg6Q*-or*PX< zUZcZZJ5_guFivrN<>fKyNaf%DDSb^h18+90+GW40#KrAK(9OlEEsEaC*&WJP?!4<_ zUudyq0)bZ=3CBau#ku6{1-oD!M - - - - - - - - - - - - - - diff --git a/chronos/static/js/amcharts/images/dragIconRoundSmallBlackH.png b/chronos/static/js/amcharts/images/dragIconRoundSmallBlackH.png deleted file mode 100644 index e7efe4629fc15bc6fd95616903462cb5c60058a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1190 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE;=WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2v2cW{u2{h>{3jAFJg2T)jk)8oi3#0-$aN1{?c|g2d$P)DnfH z)bz|eTc!8A_bVx6rr0WloBA5~7C5J7WO`H;r3P2|g(O#HCtIc{+1n}DR9FEG$W1Lt zRH(?!$t$+1uvG$^YXxM3g!Ppaz)DK8ZIvL7itr6kaLzAERWQ{v)lD`qGE^|P)H5_S zH8(fXQ7|$vG|@LO)HgKNHMF!cF|jf*P=Ep@plwAdX;wilZcw{`JX@uVl9B=|ef{$C za=mh6z5JqdeM3u2OML?)eIp}XpbFjM%Dj@q3f;V7Wta&rsl~}fnFS@8`FRQ;6BCp2 zOG|8(fG&l2A-4c-Y+f-mn1BJMUy)d#Z>VPg@)As;uP=V3xw&xF#U(+h2=`(&xHzP; zAXPsowK%`DC>a=WY04n03ap%qQWHz^i$e1Ab6}wukda@KU!0L&py2Eb4mAZ0-^Aq1 zJdmI!SeLJ_m1kaYNn&1ds;7&s63`sI%*+%kb5k=XQ&SU17gG}_Lqk^+3nv!?Hv?A} zV@Go%6IWA5m|mCsATTy$o&6fACm=yf%~saGH97=2LmB1Jb$2$+UIOnBl2a^T57H4m8Pi-3vy zSmR9r1_nkEPZ!6Kid$=@?(I6{AkwOCsHeo`7;){I_=XLa{G{Ky+(>o&5E%34%LAD^EmeeQt98kaP^8dtTQ>Ca-`-KltGX!D?Xlj8x?PU#&DXB@7*Th_qm zsny7}qDk-vTkZ!=y907-9GSu%aQHp&ddP0*$>AuUv-7p~wm)Vm>+W#qr)y{J|)DEkaas!@Sq=2j(*{GaNsAM(_KjlIx(7!_(Ez JWt~$(697QznBV{a diff --git a/chronos/static/js/amcharts/images/dragIconRoundSmallBlackH.svg b/chronos/static/js/amcharts/images/dragIconRoundSmallBlackH.svg deleted file mode 100644 index f37f32b..0000000 --- a/chronos/static/js/amcharts/images/dragIconRoundSmallBlackH.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/chronos/static/js/amcharts/images/dragIconRoundSmallH.png b/chronos/static/js/amcharts/images/dragIconRoundSmallH.png deleted file mode 100644 index e04163d896c2f62ecabc58245dbb0afbe8f118fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1274 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE;=WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2v2cW{u2{h>{3jAFJg2T)jk)8oi3#0-$aN1{?c|g2d$P)DnfH z)bz|eTc!8A_bVx6rr0WloBA5~7C5J7WO`H;r3P2|g(O#HCtIc{+1n}DR9FEG$W1Lt zRH(?!$t$+1uvG$^YXxM3g!Ppaz)DK8ZIvL7itr6kaLzAERWQ{v)lD`qGE^|P)H5_S zH8(fXQ7|$vG|@LO)HgKNHMF!cF|jf*P=Ep@plwAdX;wilZcw{`JX@uVl9B=|ef{$C za=mh6z5JqdeM3u2OML?)eIp}XpbFjM%Dj@q3f;V7Wta&rsl~}fnFS@8`FRQ;6BCp2 zOG|8(fG&l2A-4c-Y+f-mn1BJMUy)d#Z>VPg@)As;uP=V3xw&xF#U(+h2=`(&xHzP; zAXPsowK%`DC>a=WY04n03ap%qQWHz^i$e1Ab6}wukda@KU!0L&py2Eb4mAZ0-^Aq1 zJdmI!SeLJ_m1kaYNn&1ds;7&s63`sI%*+%k6E`C>OJf&H7gG}_Lqk^+3nv!?Hv?A} zV@Go%6IWA5m|mCsATTyBdpC~ zuF7LuBhF06C~M1tlS^j)etPfBnU#u5Q?~L5#ag(o7hU#?ca;Vg*TpWcZHf}Be@mr& z|NZx{0gwD8les!#-PqUpY&E=R%+m*R5ckZOxZHnr%`0ulZz!*LRWbw~wlGEMMi*<_jW>9J5>FVdQ&MBb@0JHwb!T - - - - - - - - - - - - - - diff --git a/chronos/static/js/amcharts/images/eraserIcon.svg b/chronos/static/js/amcharts/images/eraserIcon.svg deleted file mode 100644 index b84b9ac..0000000 --- a/chronos/static/js/amcharts/images/eraserIcon.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/chronos/static/js/amcharts/images/eraserIconH.svg b/chronos/static/js/amcharts/images/eraserIconH.svg deleted file mode 100644 index 1149045..0000000 --- a/chronos/static/js/amcharts/images/eraserIconH.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/chronos/static/js/amcharts/images/export.png b/chronos/static/js/amcharts/images/export.png deleted file mode 100644 index 16435ab2680e48fc5e0f607cd42db332258a250b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 216 zcmeAS@N?(olHy`uVBq!ia0vp^(m>3|!3HGnolma?Qk(@Ik;M!Q+`=Ht$S`Y;1W-^R z*(1o8fuTy3fuW(9f#K(WApMeoq11qZ;Z*_ygVhWM2J!q!@kiZ&YU4az978H@y}4}2 z#h}RJa`DVx{=d0l7o2489ys(UM01i2la@l3N~_?kD$5IR_utSrJk)Qb_n0Lr(TDA3 zONGJQ1m%KTzu9hADriQ;KKZgF;hT8jhAlO1qClhn|7T`k)yaCQ5^iG%3|!3HGnolma?Qk(@Ik;M!Q+`=Ht$S`Y;1W-^R z*(1o8fuTy3fuW(9f#K(WApMeoq11qZ;Z*_ygVhWM2J!q!@kiZ&YNI_}978H@y_p=y zb-;kb`S-DR^-tey4{)0u!PfdT+{9(RN7k}mY;%sSu3d3Ir#nx$BeFMZQ|P0D>nozopr E07=P3a{vGU diff --git a/chronos/static/js/amcharts/images/lens.png b/chronos/static/js/amcharts/images/lens.png deleted file mode 100644 index 439feed03c4d4c38c8b44b73f344fe5b118d888a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1408 zcmeAS@N?(olHy`uVBq!ia0vp^!XV7S1|*9D%+3HQ$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%o>>?5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT&-v*t}wBFaZNhzap_f-%!s0*lEl2^R8JRMC7?NanVBh8j!tIA=0;|wE|$)YhK8;t7Ot+QE>4cF z7LIO?ZZ3|dFugAM$)&lec_lEtDG0r0IQ4=OL~a4lW|!2W%(B!Jx1#)91+d4hGI6`b z7^itqy(zfeVuDkzKF~4xpy)-4ZkP}-4S|^O#0%uWlYeR+FwGYM6Zfk2ZUY7e#&@1B zjv*DdmQ3;W2niH9et&j)&=M1=2wy$6Q~kYB3wAHs6uVT~T+uQ2NdHu&rp*PaH`JD; zZZ`V0V5*pMV0TzviyP0OR#ms)DUaB#xE4+JdHnuF;SRpf$0VN}$UnEY{M_H-cedYU zZ+mU_uKUj#BYvk@OQY5F2iN^B%wV&7UEzH{(JM!^#_fYL z#}1C8Co@jYIK8hj*k@Hm_Y_$sVS#kHvkMpT?%2G`KD5D5qq)6OY=J+wLEgU2Nq^?d z+uM1j?&*Z9vUjR0oc}b3r1>mylAU!|ohiFtFze#0{KE}D=PTPwZ@h87X#MxyadqmC zjW?Y5wTjE)%=*K^%MNegR{bOt@!R3f#dQm3zbf#5xJ}P)i^-)Wtk+ba2MVQG8=BSSmq Va;tCNi&H>lqNl5$%Q~loCIIQl1G@kK diff --git a/chronos/static/js/amcharts/images/lens.svg b/chronos/static/js/amcharts/images/lens.svg deleted file mode 100644 index 75082c8..0000000 --- a/chronos/static/js/amcharts/images/lens.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/chronos/static/js/amcharts/images/lensWhite.png b/chronos/static/js/amcharts/images/lensWhite.png deleted file mode 100644 index 68408fac4321f95d864ab1597a3fb591e5d38cdf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1313 zcmeAS@N?(olHy`uVBq!ia0vp^!XV7S1|*9D%+3HQ$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%o>>?5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT-VtFWlg~VrW1CgG|37u|VHY&pf(~1RD?6IsxA(xEJ)Q4 zN-fSWElLK)N18HBGcfG%TLe-Fbd8luesXDUYF>$_i>(q+L@y;X#mdpi%-Gz>%+bZt z+0oF@)x^Tp)zrnw(bdAy&C$)p(G;fFGq1QLF)uk4rZ*Fz*AlN@E9aur#FG4?ko^1{ zSnLI4T_I>l&?Qys3_TT?pQ&o3<^Yg&A#1%}s5sn<3%JGGB z5(T%K)fRo}=K3*lQiJ!KWM=n@DZk4l{%fD%;qrQ1{N<*}x+5%kOYiOpo)Is_67cqm z)FRJi3f%_}Z3tVE>Td&#<5d}LS0B2*-q51?G)6Jz#Cw)kUpH9XiFz#gL$>MOhXt{- z|1PSEkZ>+g)RtWr`tg<9;xFgLh0WDh8$~~3Vo71N`IU9;0hi&HsS+k?j_qaE2@>x+ z7H#&Jz`x$()WU?_7uA&7&W}?u>;a8}id*-VB0h4VT7yR4U8*=bsA5>_0y85}Sb4q9e00ffU2mk;8 diff --git a/chronos/static/js/amcharts/images/lensWhite.svg b/chronos/static/js/amcharts/images/lensWhite.svg deleted file mode 100644 index 7856089..0000000 --- a/chronos/static/js/amcharts/images/lensWhite.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/chronos/static/js/amcharts/images/lensWhite_old.png b/chronos/static/js/amcharts/images/lensWhite_old.png deleted file mode 100644 index 2434fd61e115d58b57edf7cad2e29b6498415957..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^f*{Pn1|+R>-G2co&H|6fVg?3oVGw3ym^DWND5#L^ z5#-CjP^HSi(9q1l@bf>Ae#yX4YQVtoDuIE)Y6b&?c>bjLqi#U8J)SO(Ar-gIObO&V zY{26@|Ma;@GD~;=zh5NzcCjhTdEbTJ3)!AJb8gCU^bz`h?NG}u_akQ*xE8P+y>G#w zbJLU2&cSz<)%_TUOJyt`L7o+5aka^w#buwYcD_&Fx>~8UZE{)Yl6gx$|C6nn-G2co&H|6fVg?3oVGw3ym^DWND5#L^ z5#-CjP^HSi(9q1l@bf>Ae#yX4YQVtoDuIE)Y6b&?c>bjLqi#U8?Vc`4 zP~h=Cb}p!Y)7}61acaM3J`g@?8KJ1KwrxwGCTD)~;ieybElVbbu)1x!Gyi - - - - - - - - - - - - - - - diff --git a/chronos/static/js/amcharts/images/pencilIconH.svg b/chronos/static/js/amcharts/images/pencilIconH.svg deleted file mode 100644 index afcdde0..0000000 --- a/chronos/static/js/amcharts/images/pencilIconH.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/chronos/static/js/amcharts/images/xIcon.svg b/chronos/static/js/amcharts/images/xIcon.svg deleted file mode 100644 index 204afad..0000000 --- a/chronos/static/js/amcharts/images/xIcon.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/chronos/static/js/amcharts/images/xIconH.svg b/chronos/static/js/amcharts/images/xIconH.svg deleted file mode 100644 index 8ef59f8..0000000 --- a/chronos/static/js/amcharts/images/xIconH.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/chronos/static/js/amcharts/lang/az.js b/chronos/static/js/amcharts/lang/az.js deleted file mode 100644 index 740238e..0000000 --- a/chronos/static/js/amcharts/lang/az.js +++ /dev/null @@ -1 +0,0 @@ -AmCharts.translations.az = {"monthNames":["Yanvar","Fevral","Mart","Aprel","May","Iyun","Iyul","Avqust","Sentyabr","Oktyabr","Noyabr","Dekabr"],"shortMonthNames":["Yan","Fev","Mar","Apr","May","Iyn","Iyl","Avq","Sen","Okt","Noy","Dek"],"dayNames":["Bazar günü","Bazar ertəsi","Çərşənbə axşamı","Çərşənbə","Cümə axşamı","Cümə","Şənbə"],"shortDayNames":["Baz","Ber","Çax","Çər","Cax","Cüm","Şnb"],"zoomOutText":"Bütün göstər"} \ No newline at end of file diff --git a/chronos/static/js/amcharts/lang/bg.js b/chronos/static/js/amcharts/lang/bg.js deleted file mode 100644 index ba92d1f..0000000 --- a/chronos/static/js/amcharts/lang/bg.js +++ /dev/null @@ -1 +0,0 @@ -AmCharts.translations.bg = {"monthNames":["Януари","Февруари","Март","Април","Май","Юни","Юли","Август","Септември","Октомври","Ноември","Декември"],"shortMonthNames":["Яну","Фев","Мар","Апр","Май","Юни","Юли","Авг","Сеп","Окт","Ное","Дек"],"dayNames":["Неделя","Понеделник","Вторник","Сряда","Четвъртък","Петък","Събота"],"shortDayNames":["Нд","Пн","Вт","Ср","Чт","Пт","Сб"],"zoomOutText":"Покажи всички"} \ No newline at end of file diff --git a/chronos/static/js/amcharts/lang/de.js b/chronos/static/js/amcharts/lang/de.js deleted file mode 100644 index 59a2446..0000000 --- a/chronos/static/js/amcharts/lang/de.js +++ /dev/null @@ -1 +0,0 @@ -AmCharts.translations.de = {"monthNames":["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],"shortMonthNames":["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],"dayNames":["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],"shortDayNames":["So","Mo","Di","Mi","Do","Fr","Sa"],"zoomOutText":"Alle anzeigen"} \ No newline at end of file diff --git a/chronos/static/js/amcharts/lang/es.js b/chronos/static/js/amcharts/lang/es.js deleted file mode 100644 index 55febc9..0000000 --- a/chronos/static/js/amcharts/lang/es.js +++ /dev/null @@ -1 +0,0 @@ -AmCharts.translations.es = {"monthNames":["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],"shortMonthNames":["Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic"],"dayNames":["Domingo","Lunes","Martes","Miércoles","Jueves","Viernes","Sábado"],"shortDayNames":["Dom","Lun","Mar","Mié","Jue","Vie","Sáb"],"zoomOutText":"Mostrar todos"} \ No newline at end of file diff --git a/chronos/static/js/amcharts/lang/fi.js b/chronos/static/js/amcharts/lang/fi.js deleted file mode 100644 index 2fc518b..0000000 --- a/chronos/static/js/amcharts/lang/fi.js +++ /dev/null @@ -1 +0,0 @@ -AmCharts.translations.fi = {"monthNames":["Tammikuu","Helmikuu","Maaliskuu","Huhtikuu","Toukokuu","Kesäkuu","Heinäkuu","Elokuu","Syyskuu","Lokakuu","Marraskuu","Joulukuu"],"shortMonthNames":["Tammi ","Helmi ","Maalis","Huhti ","Touko ","Kesä  ","Heinä ","Elo   ","Syys  ","Loka  ","Marras","Joulu "],"dayNames":["Sunnuntai","Maanantai","Tiistai","Keskiviikko","Torstai","Perjantai","Lauantai"],"shortDayNames":["Su","Ma","Ti","Ke","To","Pe","La"],"zoomOutText":"Näytä kaikki"} \ No newline at end of file diff --git a/chronos/static/js/amcharts/lang/fo.js b/chronos/static/js/amcharts/lang/fo.js deleted file mode 100644 index 496c5af..0000000 --- a/chronos/static/js/amcharts/lang/fo.js +++ /dev/null @@ -1 +0,0 @@ -AmCharts.translations.fo = {"monthNames":["Januar","Februar","Mars","Apríl","Mai","Juni","Juli","August","September","Oktober","November","Desember"],"shortMonthNames":["Jan","Feb","Mar","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Des"],"dayNames":["Sunnudagur","Mánadagur","Týsdagur","Mikudagur","Hósdagur","Fríggjadagur","Leygardagur"],"shortDayNames":["Sun","Mán","Týs","Mik","Hós","Frí","Ley"],"zoomOutText":"Show all"} \ No newline at end of file diff --git a/chronos/static/js/amcharts/lang/fr.js b/chronos/static/js/amcharts/lang/fr.js deleted file mode 100644 index c492ebe..0000000 --- a/chronos/static/js/amcharts/lang/fr.js +++ /dev/null @@ -1 +0,0 @@ -AmCharts.translations.fr = {"monthNames":["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"],"shortMonthNames":["Janv.","Févr.","Mars","Avril","Mai","Juin","Juil.","Août","Sept.","Oct.","Nov.","Déc."],"dayNames":["Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"],"shortDayNames":["Dim.","Lun.","Mar.","Mer.","Jeu.","Ven.","Sam."],"zoomOutText":"Voir tous"} \ No newline at end of file diff --git a/chronos/static/js/amcharts/lang/hr.js b/chronos/static/js/amcharts/lang/hr.js deleted file mode 100644 index 2c58700..0000000 --- a/chronos/static/js/amcharts/lang/hr.js +++ /dev/null @@ -1 +0,0 @@ -AmCharts.translations.hr = {"monthNames":["Siječanj","Veljača","Ožujak","Travanj","Svibanj","Lipanj","Srpanj","Kolovoz","Rujan","Listopad","Studeni","Prosinac"],"shortMonthNames":["Sij","Vel","Ožu","Tra","Svi","Lip","Srp","Kol","Ruj","Lis","Stu","Pro"],"dayNames":["Nedjelja","Ponedjeljak","Utorak","Srijeda","Četvrtak","Petak","Subota"],"shortDayNames":["Ned","Pon","Uto","Sri","Čet","Pet","Sub"],"zoomOutText":"Prikaži sve"} \ No newline at end of file diff --git a/chronos/static/js/amcharts/lang/hu.js b/chronos/static/js/amcharts/lang/hu.js deleted file mode 100644 index dec9c8d..0000000 --- a/chronos/static/js/amcharts/lang/hu.js +++ /dev/null @@ -1 +0,0 @@ -AmCharts.translations.hu = {"monthNames":["Január","Február","Március","Április","Május","Június","Július","Augusztus","Szeptember","Október","November","December"],"shortMonthNames":["Jan","Febr","Márc","Ápr","Máj","Jún","Júl","Aug","Szept","Okt","Nov","Dec"],"dayNames":["Vasárnap","Hétfő","Kedd","Szerda","Csütörtök","Péntek","Szombat"],"shortDayNames":["V","H","K","Sze","Cs","P","Szo"],"zoomOutText":"Összes"} \ No newline at end of file diff --git a/chronos/static/js/amcharts/lang/id.js b/chronos/static/js/amcharts/lang/id.js deleted file mode 100644 index 4caeef5..0000000 --- a/chronos/static/js/amcharts/lang/id.js +++ /dev/null @@ -1 +0,0 @@ -AmCharts.translations.id = {"monthNames":["Januari","Pebruari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember"],"shortMonthNames":["Jan","Peb","Mar","Apr","Mei","Jun","Jul","Agu","Sep","Okt","Nov","Des"],"dayNames":["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"],"shortDayNames":["Min","Sen","Sel","Rab","Kam","Jum","Sab"],"zoomOutText":"Tampilkan semua"} \ No newline at end of file diff --git a/chronos/static/js/amcharts/lang/is.js b/chronos/static/js/amcharts/lang/is.js deleted file mode 100644 index d152109..0000000 --- a/chronos/static/js/amcharts/lang/is.js +++ /dev/null @@ -1 +0,0 @@ -AmCharts.translations.is = {"monthNames":["Janúar","Febrúar","Mars","Apríl","Maí","Júní","Júlí","Ágúst","September","Október","Nóvember","Desember"],"shortMonthNames":["Jan","Feb","Mar","Apr","Maí","Jún","Júl","Ágú","Sep","Okt","Nóv","Des"],"dayNames":["Sunnudagur","Mánudagur","Þriðjudagur","Miðvikudagur","Fimmtudagur","Föstudagur","Laugardagur"],"shortDayNames":["Sun","Mán","Þri","Mið","Fim","Fös","Lau"],"zoomOutText":"Sýna allt"} \ No newline at end of file diff --git a/chronos/static/js/amcharts/lang/it.js b/chronos/static/js/amcharts/lang/it.js deleted file mode 100644 index db8d8b9..0000000 --- a/chronos/static/js/amcharts/lang/it.js +++ /dev/null @@ -1 +0,0 @@ -AmCharts.translations.it = {"monthNames":["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],"shortMonthNames":["Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"],"dayNames":["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"],"shortDayNames":["Dom","Lun","Mar","Mer","Gio","Ven","Sab"],"zoomOutText":"Mostra tutti"} \ No newline at end of file diff --git a/chronos/static/js/amcharts/lang/ja.js b/chronos/static/js/amcharts/lang/ja.js deleted file mode 100644 index e663bf2..0000000 --- a/chronos/static/js/amcharts/lang/ja.js +++ /dev/null @@ -1 +0,0 @@ -AmCharts.translations.ja = {"monthNames":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"shortMonthNames":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dayNames":["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"],"shortDayNames":["日","月","火","水","木","金","土"],"zoomOutText":"すべて表示"}; \ No newline at end of file diff --git a/chronos/static/js/amcharts/lang/lt.js b/chronos/static/js/amcharts/lang/lt.js deleted file mode 100644 index 3a48b94..0000000 --- a/chronos/static/js/amcharts/lang/lt.js +++ /dev/null @@ -1 +0,0 @@ -AmCharts.translations.lt = {"monthNames":["Sausio","Vasario","Kovo","Balandžio","Gegužės","Birželio","Liepos","Rugpjūčio","Rugsėjo","Spalio","Lapkričio","Gruodžio"],"shortMonthNames":["Sau","Vas","Kov","Bal","Geg","Bir","Lie","Rgp","Rgs","Spa","Lap","Grd"],"dayNames":["Sekmadienis","Pirmadienis","Antradienis","Trečiadienis","Ketvirtadienis","Penktadienis","Šeštadienis"],"shortDayNames":["Sk","Pr","An","Tr","Kt","Pn","Št"],"zoomOutText":"Rodyti viską"} \ No newline at end of file diff --git a/chronos/static/js/amcharts/lang/lv.js b/chronos/static/js/amcharts/lang/lv.js deleted file mode 100644 index 80795eb..0000000 --- a/chronos/static/js/amcharts/lang/lv.js +++ /dev/null @@ -1 +0,0 @@ -AmCharts.translations.lv = {"monthNames":["Janvāris","Februāris","Marts","Aprīlis","Maijs","Jūnijs","Jūlijs","Augusts","Septembris","Oktobris","Novembris","Decembris"],"shortMonthNames":["Jan","Feb","Mar","Apr","Mai","Jūn","Jūl","Aug","Sep","Okt","Nov","Dec"],"dayNames":["Svētdiena","Pirmdiena","Otrdiena","Trešdiena","Ceturtdiena","Piektdiena","Sestdiena"],"shortDayNames":["Sv","P ","O ","T ","C ","Pk","S "],"zoomOutText":"Parādīt visu"} \ No newline at end of file diff --git a/chronos/static/js/amcharts/lang/mk.js b/chronos/static/js/amcharts/lang/mk.js deleted file mode 100644 index ba18923..0000000 --- a/chronos/static/js/amcharts/lang/mk.js +++ /dev/null @@ -1 +0,0 @@ -AmCharts.translations.mk = {"monthNames":["Јануари","Февруари","Март","Април","Мај","Јуни","Јули","Август","Септември","Октомври","Ноември","Декември"],"shortMonthNames":["Јан","Фев","Мар","Апр","Мај","Јун","Јул","Авг","Сеп","Окт","Ное","Дек"],"dayNames":["Недела","Понеделник","Вторник","Среда","Четврток","Петок","Сабота"],"shortDayNames":["Нед","Пон","Вто","Сре","Чет","Пет","Саб"],"zoomOutText":"Прикажи ги сите"} \ No newline at end of file diff --git a/chronos/static/js/amcharts/lang/mn.js b/chronos/static/js/amcharts/lang/mn.js deleted file mode 100644 index cecb35d..0000000 --- a/chronos/static/js/amcharts/lang/mn.js +++ /dev/null @@ -1 +0,0 @@ -AmCharts.translations.mn = {"monthNames":["Хулгана сарын","Үхэр сарын","Бар сарын","Туулай сарын","Луу сарын","Могой сарын","Морь сарын","Хонь сарын","Бич сарын","Тахиа сарын","Нохой сарын","Гахай сарын"],"shortMonthNames":["Хул","Үхэ","Бар","Туу","Луу","Мог","Мор","Хон","Бич","Тах","Нох","Гах"],"dayNames":["Ням","Даваа","Мягмар","Лхагва","Пүрэв","Баасан","Бямба"],"shortDayNames":["Ня","Да","Мя","Лх","Пү","Ба","Бя"],"zoomOutText":"Бүх харуулах"} \ No newline at end of file diff --git a/chronos/static/js/amcharts/lang/mt.js b/chronos/static/js/amcharts/lang/mt.js deleted file mode 100644 index 0a879d1..0000000 --- a/chronos/static/js/amcharts/lang/mt.js +++ /dev/null @@ -1 +0,0 @@ -AmCharts.translations.mt = {"monthNames":["Jannar","Frar","Marzu","April","Mejju","Ġunju","Lulju","Awwissu","Settembru","Ottubru","Novembru","Diċembru "],"shortMonthNames":["Jan","Fra","Mar","Apr","Mej","Ġun","Lul","Aww","Set","Ott","Nov","Diċ"],"dayNames":["Il-ħadd","It-tnejn","It-tlieta","L-erbgħa","Il-ħamis","Il-ġimgħa","Is-sibt"],"shortDayNames":["Ħad","Tne","Tli","Erb","Ħam","Ġim","Sib"],"zoomOutText":"Turi kollha"} \ No newline at end of file diff --git a/chronos/static/js/amcharts/lang/nl.js b/chronos/static/js/amcharts/lang/nl.js deleted file mode 100644 index 5b009f4..0000000 --- a/chronos/static/js/amcharts/lang/nl.js +++ /dev/null @@ -1 +0,0 @@ -AmCharts.translations.nl = {"monthNames":["Januari","Februari","Maart","April","Mei","Juni","Juli","Augustus","September","Oktober","November","December"],"shortMonthNames":["Jan","Feb","Mrt","Apr","Mei","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],"dayNames":["Zondag","Maandag","Dinsdag","Woensdag","Donderdag","Vrijdag","Zaterdag"],"shortDayNames":["Zo","Ma","Di","Wo","Do","Vr","Za"],"zoomOutText":"Alles weergeven"} \ No newline at end of file diff --git a/chronos/static/js/amcharts/lang/no.js b/chronos/static/js/amcharts/lang/no.js deleted file mode 100644 index e1b21af..0000000 --- a/chronos/static/js/amcharts/lang/no.js +++ /dev/null @@ -1 +0,0 @@ -AmCharts.translations.no = {"monthNames":["Januar","Februar","Mars","April","Mai","Juni","Juli","August","September","Oktober","November","Desember"],"shortMonthNames":["Jan.","Feb.","Mars","April","Mai","Juni","Juli","Aug.","Sep.","Okt.","Nov.","Des."],"dayNames":["Søndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag"],"shortDayNames":["Sø.","Ma.","Ti.","On.","To.","Fr.","Lø."],"zoomOutText":"Vis alle"} \ No newline at end of file diff --git a/chronos/static/js/amcharts/lang/pl.js b/chronos/static/js/amcharts/lang/pl.js deleted file mode 100644 index 1c9c391..0000000 --- a/chronos/static/js/amcharts/lang/pl.js +++ /dev/null @@ -1 +0,0 @@ -AmCharts.translations.pl = {"monthNames":["Styczeń","Luty","Marzec","Kwiecień","Maj","Czerwiec","Lipiec","Sierpień","Wrzesień","Październik","Listopad","Grudzień"],"shortMonthNames":["Sty","Lut","Mar","Kwi","Maj","Cze","Lip","Sie","Wrz","Paź","Lis","Gru"],"dayNames":["Niedziela","Poniedziałek","Wtorek","Środa","Czwartek","Piątek","Sobota"],"shortDayNames":["Nie","Pon","Wto","Śro","Czw","Pią","Sob"],"zoomOutText":"Pokaż wszystko"} \ No newline at end of file diff --git a/chronos/static/js/amcharts/lang/pt.js b/chronos/static/js/amcharts/lang/pt.js deleted file mode 100644 index c25770c..0000000 --- a/chronos/static/js/amcharts/lang/pt.js +++ /dev/null @@ -1 +0,0 @@ -AmCharts.translations.pt = {"monthNames":["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],"shortMonthNames":["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],"dayNames":["Domingo","Segunda","Terça","Quarta","Quinta","Sexta","Sábado"],"shortDayNames":["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],"zoomOutText":"Mostrar todos"} \ No newline at end of file diff --git a/chronos/static/js/amcharts/lang/ro.js b/chronos/static/js/amcharts/lang/ro.js deleted file mode 100644 index adea600..0000000 --- a/chronos/static/js/amcharts/lang/ro.js +++ /dev/null @@ -1 +0,0 @@ -AmCharts.translations.ro = {"monthNames":["Ianuarie","Februarie","Martie","Aprilie","Mai","Iunie","Iulie","August","Septembrie","Octombrie","Noiembrie","Decembrie"],"shortMonthNames":["Ian","Feb","Mar","Apr","Mai","Iun","Iul","Aug","Sep","Oct","Nov","Dec"],"dayNames":["Duminică","Luni","Marţi","Miercuri","Joi","Vineri","Sâmbătă"],"shortDayNames":["Du","Lu","Ma","Mi","Jo","Vi","Sb"],"zoomOutText":"Arată tot"} \ No newline at end of file diff --git a/chronos/static/js/amcharts/lang/ru.js b/chronos/static/js/amcharts/lang/ru.js deleted file mode 100644 index c33aea9..0000000 --- a/chronos/static/js/amcharts/lang/ru.js +++ /dev/null @@ -1 +0,0 @@ -AmCharts.translations.ru = {"monthNames":["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],"shortMonthNames":["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек"],"dayNames":["Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота"],"shortDayNames":["Вск","Пнд","Втр","Срд","Чтв","Птн","Сбт"],"zoomOutText":"Показать все"} \ No newline at end of file diff --git a/chronos/static/js/amcharts/lang/rw.js b/chronos/static/js/amcharts/lang/rw.js deleted file mode 100644 index 2e8e23c..0000000 --- a/chronos/static/js/amcharts/lang/rw.js +++ /dev/null @@ -1 +0,0 @@ -AmCharts.translations.rw = {"monthNames":["Mutarama","Gashyantare","Werurwe","Mata","Gicuransi","Kamena","Nyakanga","Kanama","Nzeli","Ukwakira","Ugushyingo","Ukuboza"],"shortMonthNames":["Mut","Gas","Wer","Mat","Gic","Kam","Nya","Kan","Nze","Ukw","Ugu","Uku"],"dayNames":["Ku cyumweru","Kuwa mbere","Kuwa kabiri","Kuwa gatatu","Kuwa kane","Kuwa gatanu","Kuwa gatandatu"],"shortDayNames":["Mwe","Mbe","Kab","Gtu","Kan","Gnu","Gnd"],"zoomOutText":"Show all"} \ No newline at end of file diff --git a/chronos/static/js/amcharts/lang/sk.js b/chronos/static/js/amcharts/lang/sk.js deleted file mode 100644 index c670346..0000000 --- a/chronos/static/js/amcharts/lang/sk.js +++ /dev/null @@ -1 +0,0 @@ -AmCharts.translations.sk = {"monthNames":["Január","Február","Marec","Apríl","Máj","Jún","Júl","August","September","Október","November","December"],"shortMonthNames":["Jan","Feb","Mar","Apr","Máj","Jún","Júl","Aug","Sep","Okt","Nov","Dec"],"dayNames":["Nedeľa","Pondelok","Utorok","Streda","Štvrtok","Piatok","Sobota"],"shortDayNames":["Ne","Po","Ut","St","Št","Pi","So"],"zoomOutText":"Zobraziť všetky"} \ No newline at end of file diff --git a/chronos/static/js/amcharts/lang/so.js b/chronos/static/js/amcharts/lang/so.js deleted file mode 100644 index 1fbd09e..0000000 --- a/chronos/static/js/amcharts/lang/so.js +++ /dev/null @@ -1 +0,0 @@ -AmCharts.translations.so = {"monthNames":["Bisha koobaad","Bisha labaad","Bisha saddexaad","Bisha afraad","Bisha shanaad","Bisha lixaad","Bisha todobaad","Bisha sideedaad","Bisha sagaalaad","Bisha tobnaad","Bisha kow iyo tobnaad","Bisha laba iyo tobnaad"],"shortMonthNames":["Kob","Lab","Sad","Afr","Sha","Lix","Tod","Sid","Sag","Tob","Kit","Lit"],"dayNames":["Axad","Isniin","Salaaso","Arbaco","Khamiis","Jimco","Sabti"],"shortDayNames":["Axa","Isn","Sal","Arb","Kha","Jim","Sab"],"zoomOutText":"Tus dhammaan"} \ No newline at end of file diff --git a/chronos/static/js/amcharts/lang/th.js b/chronos/static/js/amcharts/lang/th.js deleted file mode 100644 index 95a5e7a..0000000 --- a/chronos/static/js/amcharts/lang/th.js +++ /dev/null @@ -1 +0,0 @@ -AmCharts.translations.th = {"monthNames":["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม"],"shortMonthNames":["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค."],"dayNames":["อาทิตย์","จันทร์","อังคาร","พุธ","พฤหัสบดี","ศุกร์","เสาร์"],"shortDayNames":["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],"zoomOutText":"แสดงทั้งหมด"} \ No newline at end of file diff --git a/chronos/static/js/amcharts/lang/tr.js b/chronos/static/js/amcharts/lang/tr.js deleted file mode 100644 index 886d9cd..0000000 --- a/chronos/static/js/amcharts/lang/tr.js +++ /dev/null @@ -1 +0,0 @@ -AmCharts.translations.tr = {"monthNames":["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"],"shortMonthNames":["Oca","Şub","Mar","Nis","May","Haz","Tem","Ağu","Eyl","Eki","Kas","Ara"],"dayNames":["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"],"shortDayNames":["Paz","Pzt","Sal","Çrş","Prş","Cum","Cts"],"zoomOutText":"Tümünü göster"} \ No newline at end of file diff --git a/chronos/static/js/amcharts/patterns/black/pattern1.png b/chronos/static/js/amcharts/patterns/black/pattern1.png deleted file mode 100644 index bb7dc47cb2f414ca2e81b7b9ea3b88a5245b2103..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 158 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm1|(O0oL2{=I14-?iy0WWg+Z8+Vb&Z8prAss zN02WALzOB6LqjtI!_WUf`XvKHsR0ASs{{rHs~HRo;`x)}kGcWXs(89MhE&|L>DnmB yV8GyV;-9tm#5>xG0jl$ZSDGD+R$J?OmdKI;Vst0N3#)9smFU diff --git a/chronos/static/js/amcharts/patterns/black/pattern11.png b/chronos/static/js/amcharts/patterns/black/pattern11.png deleted file mode 100644 index 080647bbae5b2f131294f531d2ec194b28ee5024..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 161 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm1|(O0oL2{=I14-?iy0WWg+Z8+Vb&Z8prAss zN02WALzOB6LqjtI!_WUf`XvKHsR0ASs{{rHs~HRo;`x)}kGcWXs(ZRPhE&{2Ikl0O zL4oIh!Sw(2e8wh=r#c4k%ESlTZs_A?VEF%^nZZw+opB+%^g5sx22WQ%mvv4FO#sg@ BC$0bh diff --git a/chronos/static/js/amcharts/patterns/black/pattern12.png b/chronos/static/js/amcharts/patterns/black/pattern12.png deleted file mode 100644 index 5ce070d3412d2bc70c7847061bfc8880d7250507..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 161 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm1|(O0oL2{=I14-?iy0WWg+Z8+Vb&Z8prAss zN02WALzOB6LqjtI!_WUf`XvKHsR0ASs{{rHs~HRo;`x)}kGcWXs(ZRPhE&{2`tkq2 zJu@@&;d+%bALM-n4mEHZ9dcRdCCLa>^Z!3HgK)0s+bf>_JwPslr>mdKI;Vst0416# AKmY&$ diff --git a/chronos/static/js/amcharts/patterns/black/pattern13.png b/chronos/static/js/amcharts/patterns/black/pattern13.png deleted file mode 100644 index a9d9e0e8c16865ed942465b7d9600d5902a8a635..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm1|(O0oL2{=I14-?iy0WWg+Z8+Vb&Z8prAss zN02WALzOB6LqjtI!_WUf`XvKHsR0ASs{{rHs~HRo;`x)}kGcWX%6qyvhE&{2`tkq2 qJu@@&;d+U*BnRdeR-hEa|NqPkxf|IStExj6gZQ4VelF{r5}E*<`6ZYD diff --git a/chronos/static/js/amcharts/patterns/black/pattern14.png b/chronos/static/js/amcharts/patterns/black/pattern14.png deleted file mode 100644 index a34e05e3f2c5933b73bda0edf04ff70b61aed427..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 160 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm1|(O0oL2{=I14-?iy0WWg+Z8+Vb&Z8prAss zN02WALzOB6LqjtI!_WUf`XvKHsR0ASs{{rHs~HRo;`x)}kGcWXs(HFNhE&{2`t$$4 zJ+o0lk^{3(Pfw4A*NlJv|DW&B;Q%W6|DTyb>N*Fz+yo_%TNpfD{an^LB{Ts58$l{B diff --git a/chronos/static/js/amcharts/patterns/black/pattern15.png b/chronos/static/js/amcharts/patterns/black/pattern15.png deleted file mode 100644 index 91d2939582227ddfa6ab78ebe47a0af4906b8a3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 157 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm1|(O0oL2{=I14-?iy0WWg+Z8+Vb&Z8prAss zN02WALzOB6LqjtI!_WUf`XvKHsR0ASs{{rHs~HRo;`x)}kGcWXDto#(hE&{YIkAwD xfq{cr;n{!t^LZ0J0y3l}j>~g1F#P||%mdKI;Vst00i?Xa{vGU diff --git a/chronos/static/js/amcharts/patterns/black/pattern17.png b/chronos/static/js/amcharts/patterns/black/pattern17.png deleted file mode 100644 index d09beb9c35dedef3bf4dfe6d3fc98a8375fb6d08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm1|(O0oL2{=I14-?iy0WWg+Z8+Vb&Z8prAss zN02WALzOB6LqjtI!_WUf`XvKHsR0ASs{{rHs~HRo;`x)}kGcWXYIwRhhE&`NIkAwD z!GNd1;Mf0)Ghey{9teptc-!z^y=0LMP|^SY%na+aMBh%WudD=e89ZJ6T-G@yGywpJ C-7Mb# diff --git a/chronos/static/js/amcharts/patterns/black/pattern18.png b/chronos/static/js/amcharts/patterns/black/pattern18.png deleted file mode 100644 index 546b8f75ad69bae924a7e794fe16b9aaa5585bd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 155 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm1|(O0oL2{=I14-?iy0WWg+Z8+Vb&Z8prAss zN02WALzOB6LqjtI!_WUf`XvKHsR0ASs{{rHs~HRo;`x)}kGcWXDtfv&hE&{2N=Zog talV0NhQtMi$N&Fpa2bRGB^mzzXJ%M1iG}%EGvhxH-_zC4Wt~$(696fpD0Bb- diff --git a/chronos/static/js/amcharts/patterns/black/pattern19.png b/chronos/static/js/amcharts/patterns/black/pattern19.png deleted file mode 100644 index 193a543c31d6b31a33f5e0fbc2dc74a882c2dc19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 160 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm1|(O0oL2{=I14-?iy0WWg+Z8+Vb&Z8prAss zN02WALzOB6LqjtI!_WUf`XvKHsR0ASs{{rHs~HRo;`x)}kGcWXs(HFNhE&}0>DtK4 zV8GK{@bCXj9lua-9tGxzfRmon13$Aazb;mdKI;Vst0RI>& A2><{9 diff --git a/chronos/static/js/amcharts/patterns/black/pattern21.png b/chronos/static/js/amcharts/patterns/black/pattern21.png deleted file mode 100644 index da1a59a1ffec6a1f48785b128c2413be6a0b630b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 158 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm1|(O0oL2{=I14-?iy0WWg+Z8+Vb&Z8prAss zN02WALzOB6LqjtI!_WUf`XvKHsR0ASs{{rHs~HRo;`x)}kGcWXs(89MhE&{2`t$$4 xJ+o0l(gCJ_|NsA=&$vpclW{6gp5gz0W`?WkLLV9SbpHVHJzf1=);T3K0Ra9IECm1n diff --git a/chronos/static/js/amcharts/patterns/black/pattern3.png b/chronos/static/js/amcharts/patterns/black/pattern3.png deleted file mode 100644 index c1a81f41efdcf66f69b4461d5f75105b992473d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 156 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm1|(O0oL2{=I14-?iy0WWg+Z8+Vb&Z8prAss zN02WALzOB6LqjtI!_WUf`XvKHsR0ASs{{rHs~HRo;`x)}kGcWXDtWp%hE&{2N=Zog ualU~?;{Sj5hsFkm3mADAfwBz$|1&dO_G4idRj^kA@jYGrT-G@yGywn|o+b(a diff --git a/chronos/static/js/amcharts/patterns/black/pattern4.png b/chronos/static/js/amcharts/patterns/black/pattern4.png deleted file mode 100644 index e2f07c3e856e08b79fedefcd179fa26065f4dfa9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 154 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm1|(O0oL2{=I14-?iy0WWg+Z8+Vb&Z8prAss zN02WALzOB6LqjtI!_WUf`XvKHsR0ASs{{rHs~HRo;`x)}kGg@>db&7bP0l+XkKE88vs diff --git a/chronos/static/js/amcharts/patterns/black/pattern6.png b/chronos/static/js/amcharts/patterns/black/pattern6.png deleted file mode 100644 index 709847da249a449cba83c995b12c0a6de2e15eae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 155 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm1|(O0oL2{=I14-?iy0WWg+Z8+Vb&Z8prAss zN02WALzOB6LqjtI!_WUf`XvKHsR0ASs{{rHs~HRo;`x)}kGcWXDtfv&hE&{2`tkq2 rJ+qL)fuA5+dCFmq%OHFI|7T{Heud}T)6YT|fm{YpS3j3^P68UGP)<2$0L*>FVdQ&MBb@0NNNRMF0Q* diff --git a/chronos/static/js/amcharts/patterns/black/pattern8.png b/chronos/static/js/amcharts/patterns/black/pattern8.png deleted file mode 100644 index 5230e4c293252da8036bb749115fd90dcc47ba9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 160 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm1|(O0oL2{=I14-?iy0WWg+Z8+Vb&Z8prAss zN02WALzOB6LqjtI!_WUf`XvKHsR0ASs{{rHs~HRo;`x)}kGcWXs(HFNhE&|L>DtK4 zpup3x;Q#-g=1?&qCI`{;!6#iC0&fd6?5;n@aGaa}ckHT=r)FFDU$P1BmbG>gTe~DWM4f=W8e| diff --git a/chronos/static/js/amcharts/patterns/chalk/pattern1.jpg b/chronos/static/js/amcharts/patterns/chalk/pattern1.jpg deleted file mode 100644 index e3101b5de8ef8398852c8e0adac4fda3d4e5a7c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 116199 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

AKY)GWnnNhNN@1GfrIPgIG>uggxWpy z&vSOPM=OQXqligW)tp0hyS#Q+KIa!u0sN zu4PQ{K9^l+D?2h~N~loQy>v&$p*IHqXJ(uM^qPY4+q$A5mMzrlP#dfVwp1$0fDpu0 z+HE^JpJ5~WjxsRQ&aZ3(F45>oKRtDX zX=)Z&LC9L>zuI@Npkj^>;_9>x!J-N3)e%Wjp6=jIP3hK+mhmeOeWg4$>z}#YGL!Dr zCoEBvtC^mLoU-HB`Se%8tDeKCRvLvm$Fq`e-C|_4hM+eQZ)ixvRJMRThN|-ST;@WK z?=iWW@yhJ9Mh@#lo#9h&F~e7=dVl!Lrb)P}o$`Wyn6-~P1Z#)@R%s6mHHDE?Ki>MzCUOq5ng*AI1z>SM>RpbJ`J#%ud1&Lo}4IuR1gIAmg-o{~hDfiTg@Psz9N1t&p# zqkl#vEbU<^a)T{Rb;P7jJ^%ustdB)96JRA_v9Ifsg+IXb?e5jaulx}87bv~;4!?J~ zH81YUg;NGxs}z8uM!Z8BZWw5TYeRiTHP&^9&CHqgTd40EIHkJa6S6AN>busnPC8Pr zMXZ(eeqr*-_qz@|!bZl0p06W%mr0=g{eLj;H2rs@khBAwVNWQ(K)Pa5JW6ysU;TEA z#xUxQm4vvxp9e2(U=ioQg&Wua@RcQi1sVLzIBd-X(=oXBQXV^yJ!yF4bC_FPEO`5D z6JE^oRHPL4J3Qb6&gDug>x^<~b)u~v$}Do^RAi;%K}r(gNdk72NtS)BldnK<0Z!8nX)PF&lpPY4u&F`_5WDrS6CeR8+<2Jd9y)b#+iF!KSXNlM4v$f_YfrLS;Lo zmb`~jTZ&#^Vz=)jYpEE*uU{v$-edAt6C5?pIubWnPR_>p3UhOHhe1Bb7U?5fSl1It z&s*%r-ax2?7nbL1J%gYISgBA26B^pK{$hXSs%SayD3gXp^R4&h z&Ks@f?5`8hLufD0(~V(}F`F@&Fa0mSr+Ic4I_c~A5jqu>W!#&yhw&b+dEl%mx-=zL zLdplouV<|o`dN^<`gbhu%>;^}39aXXsu`8FysEQ|=7)ptD2aaQbmlK1vg>iM115GgPnt@H1ZcV#7BGbD)i{RREU_dbILwp(g0 z#zD9016sasgkZM~87@;j>%w5kzWv8~9;_vR)JslLS82_;RVFv*Dk*ol!l(T8h|F>V z%W>}4LS!ha#HzZZ;f0ds0ZPl_BVxD>N9nQZ-}@FY0Y{-$leQATZ-;LGu6`*>)l*(s zY_6VeLG+Euvg5gY#Z&WjSdgUe9?e2ZSJgoSi#4MIfq}PilubgmxtpF}S%#x=FXzZnEe8qWTWqynnm)wU{bIH~ZXl^3jITz{f(q1=hqgUx6$e>Uvm{aY{j1uwvGfir6c&6OLac@Kx<=o)y z;#?}(nps7>=0wdUF3<0vZQbh6@@>r)SwBqKQ$QT7J$P@(t1{ahd(4@;s-EOZUVBty z<2N6q6#}Fz!h0I4hgmUK(mJmObvqvB(v*B9NvY=!zf(UGj-{rOv>~cvaVXUfyA_T* z4dEP&5bn0W7(?4Fa|)?U>NtH<^vl@l&rZq`@fuPzkL~T;&Q`04gFZJ_6ydT79kR}R zO*<@#Eug^Adf3on<;r$laA@+BpWiO_*mz?$YMQ1cZBAnpg1(pnf3F2|gTw2pUeQeZ zaqu+mBcWdvym?g^)5yrR`zVB}pUMkqJ~j1I8sDHYrt*arxn@!t71+bM~$1}PHT{_Q5ug!EQoCg3Y4J@{g8&v z_3d(%x5o2njX>m67dRLQlb>4tQvwj1JU~a;g6Xt{a|znCcVvoLe-VGSKRBc6^e7qsPVaDdlWPE(_MDnuWZh;-OM-=u60 z`TcDT1SU|%n?i>32d;HbZg zcWu9mOQ4y;AO7~$n3ZH%50^bo1l#f;xZ=gjk%!XD;C1h~T9(~b3)PhkHJ$iEkEcbM z_?5CoET<^{;Oxo)V+vInu%65PJUSNg~0gDmv4Sr7A~%2@L}JtGX>$zmBQb%$IICW zdUGy^MiWVnY1#jl`LK&`0jJU%~%{?qN$b#-v3}z7*;sZFP^!ke+=bJrX z#avR))5uk3OwG)eq?;ZT3}CqeY+k!Ttm|I(e$Z-V25ohOBA;$rp^b4(;7#xE|F8@| z>N~BinS`kh=?birdDW@i+*-W-J_FA*X04OZOzV_O`YDRde-g|nL8s-9TF&+3f@k|| zKP2#XLkW5WENR2YTSpBxfgt0d9F1KyWjT4RQ3=i}4-#1N(11bg2l|njKuNI&)%A+I zvGM}lSTmI^WYdVOziOrxnTHu#>8^dM`t7A9KazbQZm?gudXBXV%dT#TboeOb`<5oc zfge-fSdDK>(6qoqb-4ed3Nz{s-a8P_aXECQQe>G}#QknKZIrPj?nN;YFKruQkG%2F z+tCx)k>Q90+6TVExOT#s^vZZoQ=m@^PTMuyb_rZvbJzNZtWymF+t6TkD% zE?pnQZJj5%2>Jr|iOSwwEj`P!(k^>zl@Z;TiL+ms-`8z#yUo2J!#3vLuE&3Nn=h?* zllo_Of7?>$)^a{#OZz-Oi>gm}b-T|EINtD`MVOE@}`mpVUQ&=z#dWCKHYL;hZ z!Z^0|Zs5w6oD*iCXh2P_q8DZOBh%ex`~pvB`<^o(@cQq%3rQAeEl>qFRi$aGy=E`2(Uj6 z^7+tC{Y;ZBrL5sCtwN>jgr?>s%JX8WIC}Q)DQ1Z0^T>Q+!(+iGOR!31`~dPM(GBZN z$gCpU<(3U#CiH#X^my-A*uasTBT$t2gRA_dggMxFVXs`znMoU$qOdf>;pQ&I{gSb_ z3rLg?knY@!Sz8_sTqGJx<{u~4OXrj*sVifqsIrN@sld6Rj=pc3Lucqt%}RunT;>RX z^b{f7+GYSAt~CQVDv1T3#q2E~XH@e+ojqqff_Z44yrmh4DEOfcOjtsDpN2GzdVO&c zl~|~&(fq(3_2bw!ms{X3;^Y~@FG1YRN13lK3scxG+bvylO7?;HoUnBtqZx`*o@R=? zY#F$@!lvQ$pNk&p;Pc57Rt!WHMTG0<~;fKZQ}88(>*l>Q9)(jb#5y( zBCR{WAlch=hPF$KW$Cb18QZJsq#yl^Xy9UbI!WEWyTE@m}Xt6EEOlcwUw;nZo! zK%>RNW-fE4mG8s$8mKcjGG9;sS>Pkp2-M{6y`9G{$ljUc+ zm?X%@Ar&zGAXj9Dnc_vy6hKUpR0U4?n5p1s5Q~hPm_P<%a!PQCo6d#r`(OioRd!;Xc^J3HA zSFIyl_bJnqIK7cj@&S+Cq|;Y}c^Pw&^8`pnLoYrRgPjp=nXSG!L29=MI69u8p*}U*8q+|Ece~*B&A>tx^y~nm?s)rJGhEp#`qE?So ziJrkwdvHLp^>wm=KR<-|A;{%4H=aFv7|s&V$nL`~_Avae70fI_r2FSS4TDda$$TOC zI5eP}E-zsaY9%C^`_i4Y64%GV+UaCCiR%6}MOTBK$_)@T=hdeE^@EI|N1dH8Yv&{F zjaF8q79|!t|DX+jL*bkDqfzH^vX6*#o;MU@Gax%%9r6e!6A#RB+{4DHU-e5QPuX|; z!`AJY&OnaP%Ly9=%gN9xB(G+(w2e19^G7?iPS|0gf8+>O%{8A`CJ#-C2v^;tX)uoY z?~o+08>oMnAYIrK&wt_hYGzmB&p+NQ*FfMSoefbCJ7Z;8BrYY>Teqg!BT?$rgI2ot zYIkxDNL2$2x`BVdq>`$4TUE_wM=PZQ-9A1axrdSV=0{(zabeZd>Z zKs|etMrO|C*vLMGCGYDpo>zTQ9Ny~hq5qeq z@LTe)k9`WnSb>E6-Pn%P5q(jJZtMpWx8FA==-YdppysrR;P)M!wpp6a!fkD8bBe|nU7(y%;3l7gm>HU4xa~m?eaafEat8sWoVeJJc*ot-IR|eO9tR`w)79Nxy zL#}4h+NSOL`3BMbQ)#F4^1bUpNoNguxgpQ@r~kQxcscBOK4>$y#%|mHmA(HWqq1LX zk~&I?3#8c7(5vE$|Kx#%DJ*8EiNAL#FsdiUqOYHMQTE>G8lI zCr~FzuN+>EDNFM}>RX-h9r8@EOFfckUNYBVs!Yi-|h4!CDnh_6g4zxTGb!4E| zf_UAJ;-o4+F*vM)Y(JPE-i25nsa*9e!iAMRt>6EMVT2rp3kwi+uaEPDeT`@p7Exr*avki+wYmM_3zWV^FFs%V>MfOGN9G+H>aE}cKWna$eY`4VU?5`> zhj{}-0ZuQ8|7%+#qD)~M5l|%~!PU+ph02WWTd)AoOgR_z+n@w1gftFh-MX$YUD)yE zSmG{As(5vF^Jyc35ELp+%@LxTcII|PBf0m;irZnMQ$=f-J{AiWEALb-yR%#q+z%Ai zkcbA$ih9d%sg%!M7vTfF$GZYti1x}lYt_Jqpa#7!Q%a)FAKs4#G<9VBZD*f|AF9Z0 zz?FG?(_s zL+mgR{tI7OD#-nZ+GY*2K((K$U$$H~zR}x|+uXtX=h65~^WReLHk2EH^d)HPd z;C^3;@A${V2zGmIt40ulhb=_Na6OAILnfPQtxMJxuo45TPT>vAT^Y$mNk`hbHz+2s z`&of>Jmes(tgF=she9IO5KrD(HQ5L2bB8C`p8LcFrjltJ&vG*^BK99vjpq0)`hQim zb$f*}wJ4puhAN0F>69pkeROVNYW{qV@;|YeUTRJAam>`M7vRI4+rz%wf1>f;d_Hv5 z#2o?<96k6M(mm0sbpyfmC!=qq*Ms}B&5Xu*R#4oK)K7`vueeU9=xcVZ-u1T9T2$Nl z=)L4~-1OzzZ-$1G#6NADJzhSSrD*3H81?KH5A7xL0{VD8cKNkaTD{WBJYOY-=^cU(k-{Cyd@(CAqVbo(ZbJrPM8Rp#}~zYU zig%ywO@{6v=TkA&I~7{i+ZItuKYgGp zaFX7EE)B4p4P`OT51tR%eEWtANpBzlRdUmsaYz+7NeRNc&X(BQGg->^vm_iYcHry3 z)fnP2@n5q2tx{Po?Tv7y2+DGmF|^&%E4Dp}cY2;{zsuHErz4-QtuKIR-8M$dkh|99s*zuiK{x-!BwT^;(wH{?blFk~_*TBE5gYMo$*Ikxo`W{V?KTchejUE-z&_<{o(s> zn%!O%leqKs5=r#2&7;VSj7@>V!#0Kvg;OfSwCg4|#n?VwPREKR`3cm@Q2fr)k{&ER zI&E(DY6bb843FnLCa}tjPe{YH)>hoXSjvSDxvo5}B6{{>Oy{3)!_*{ZU}M{|r68TN zMN>2@)r3?BX~s;b*H!Z~^+73hl)mi{lqi4mM)2B4-GSHGZ7UC?@=R7Sm$#LmsYa-u z?bFgc=of-N7-9o_PeOb#X1o}NnK|Q_Lb5!WIO5^cdc%H#t&=g4OE5h6C;jfAUN^zb zCnAu3z6_SmCvw#gL@d-Mi!DAfbVqyOs*KC0h#sA}6W(N1>D|~ylBkCYwNsqx_DLmN-*HNG9&bPB$GjpJZOeY8#xSPp<@|IV3$q<_=49Sm53% zzrm532QoE4xR_u+YfudgT#xmn3u`E~6gyb1M@;jJ<&4P;tShV^d&b=4!v{*pg%!{@-;258+Kk;Ab9b`5_0Khg;^RO^H4V znTnS-hQF$*K#w{C6tw5}`qM%N8uWfo)IjOZbRIuy;ql$3Ujg_?U4dHI#&^-Rt5v^E zg@Ww&Uv2&7B7=2s6)hk(vE8q-hx{_kR3Ab<>*B0zDE##NAu}x*j#N>d20h{l#)iSt zA_SLif;WcYB@jn0bti@>8CU{7MKH%kAC#}vv*s}ylZK1|@?TfStFs65r{t>#U8;T9 zFUEyz+uAdDnZCc2)^k${GA#MaNg4}8Y0`poD2`v}RTihPG*Hm00MI%-+K77(u)qv` z0K^Uj4xTR!d9z+LxK~0&o{yw(+f%DU<_5?~eD)wcxvN9P6#Z$%uV?>|%%%M5C2i^d zBHscQ>&e64;|)*1ovzI%o-wpmy1AXc&iHYzu#2i7-5r;D-(k;{>v7jI^6BlMv7*o@ zk-808*gmv>o*@%*qr*99l*P4}pID7I0{;5l^Jck#$U4j_fJtQKH)#$S#SmfYUq#R` zEhbQTz5feQbV;{Kj$eHlvw-Iomn6Nrb5E1eng9 zTdvKOtctzyQ>&U&NzZzsIXj$i(!`aZrCgZ`uK_v_J1LIzgSNAa5nl7#DE2QXtBV1h zN0MD}iZjY$6Vti{#C|tt2FiA>&@ttnr+%Yum!lWnbHbheuJ(~RtV{1w$cUIkeH=M1 zL%QJl<|k5A5q}1aR=p6yMb2ZK$b$*dK3N>CHt?lM)bmV-%G%Mlr23!Ij2AcAjyxp| z;6S8R{@$hYze^lKf5O)8uomS~rQBETHky{<&(l&ajxfM!$Cm-ziSC6aS00~O%*0Y*-f-l~URsS-mstkHV1^diD!OK}FBcr7}aia7FWLy!v@yy`G z>Hx$|U%~91!{y^F!B{TmD+j;2bNe@Qb>2{2ttJPXrp6XKyLJk4NaOI(_MrViA?8d0 zbCQIgXuft=ux8`kZ?bGoS#_a@1D@Z3d@Va%bK{-{}0RLZXA1I?)j&x z{`S3bf68!MrV$cj4^z(Nva7&JF_rdmpB-f=c*=9}`(dg4TSIaqjj~B?c8&Vv9?B8x z53S7-5E=hJZ@+IS$9YRU-{C-miatU3V--TAX^>noslgUBV*VcZRXpwrzs)^fr>Wty zZIku*DEx}9EOqteYBSFauD2yk8UxW*2^-7Ho7`Xc+sRYzPMyTXE@slV{KUQWeAMuL^1Hh7 z2ZmKbctCFl@L_v}L_gU&yUHowTee-ujl%4FVPuxis_a^8UC#DFMhv3Nt??zQWPQnVXlFLA07QLMY-Bm#Yksc zjd^i$;r>mS+7>$IH1$MfcI&PyKqP;Gu4Ohob=R$?pV5z2=jZmoG=Y_n zXQW@Duc!pP54kZfyw7I`%F=kKZF4MmW>7XE@cf`&C4vMU-?9*Gla zt;)uiphQX>;#bhQo1K_dX4X>|;9B1KrMD|}Vf$Nc)7%|5NgO93b5{E3{nwCo^xE*s zR+O$oqZx19y1WKg>WnPgq)2VQ=MKa(74|G7Om{YE7QLGC@XkXIVQ_A{oAu=A&}p&t z>gy-|M$}Ud*rPAz8-fHISJYegU@-NENsrwnNMlEDN6UwgS~G(cQ?$G6%G)oo$cm>( zJlcjP@6Ef>UuamT#uo|wMVgEUahp>l`WTd^wNT1DX9`$`wk9okz+@DTyx2xJf1mNE zSbx1lA!b^0TzpqE4lZq2QRoZOb)l=PjM_>I80%es9ekb}NK;K4IPM{=<@}0b(6Ll= ztl_Ps&fQG21LSU`%}9Kt*yo<80o}eamxaAAah;8mmFp|^`z_6@-1L!p`Lt6~ELYEg zINmmpnT~2h@Bw<|zAIm&aC!B`Yqb|K@N7%C9A))Wj#v8IZ$zCCgI8jw1ILnW_LV;n zmFxl_qVrEJ_?3Q__ihScvXBUng^!eb$DFrHt@FXsH~MntQf7z-H-%vklv7~;yqAkF9? z7rl^v_M33x1@yH-fF+(*Lk&E&Su;qiRE4cAVUH6GJq*5nY6X?(53;teGQATrRixWJ zWY(Gu<5DKPq!WHT8;6XT$+#W7@A|yAZZ^|AV*Hv{`Og!Y$R8Bn3#*9yKeh=1VFzyb zYL2)+SWV^92v#M$w7$PUXPLo};}5?PxNVJdxfq(7exXlFcva$Q^SQjCrpr*H`8T$Y z7Vmd%km!x_?3Tp1I>T7Ym#8*=>Um-i#rFoz^7UL^K9^Cy0_fq{jUQ%RV=FS9+n=~y z>+9U(6v~?fybVR}0pE>PWR2KA-(pBlqQSRb^FHS4CAraFiVbo&1K~q;4 zNtfu%OSKisS;>BuRAH85M#ivq>-_)(C!YCgM~34t`ufUxG@BBLJDksgH{?n45sT-W ztUoufm>u}u!1aV}d$5CwkgmG-!RB7&lw(wcyXSvFsK*{W17g3JlPrdje8n{~CvAdF z_u_V3%W157a57m*M>CtsRf7;9!51fxd8YaGqs?B+tP!2==uOS`>J%**hk5hQ;(EzM z4L31MO#vTuK1J03(|9wkhwLSFJ1-Zpi#_Ozc+|kW@F`SAI+&*=EqQAw^qE|@EQZnJ z;th8Lqw|Jf^4;tFvf#HFT&38&TE16eh|r?Fi=D{Ff04dJIY7G|;M>oVRW+#7%szH* zy{uD*)pOUctO)WZqppT>C_P1%f~Q{-Ss~8qC4D`{ijXA!7bHZv|6x_n@y@g-_ZqXQ z$~zs8Rj*JH>(-y#_pZBKNxOj*x8!3Sc;!NDE`RI^ayrB|m7c)Z;(+L}3_kxwx42C+ zf4U?fF5Bjtp8(Oy(kji?#aw}zfRJz{QTA?)9Sps3Ty`nFR&d+}%ae?wd)a`+#iw$J zAE@HyLc1W6L%ZAzvlzA@+%wBx6o0r5_+;=LsW5-nH`Vc z7)kr&--M*m&7K7Qyo)@Va5!C7f|TzX)kXVE;*0Nd7jPeej0Ab#NyEFIFTU)&|4_a9gL#acxQAT zw2j;pZM)s>_0dy>`U!>l=yL*nx9XK)PEI#jI`L=MW(DH(k3TJzHMev%=Q{-mxABs< zwEJ!8MdnnrX6!~<^Gr+DUM5{1xF-SIJSf2O+%$X*t*T-LcckLBFtEcZ{lxP36qV5b zzH$=v0Ji5be@;cAUi#LNSlA0X(8~e~kaGGx8roWPUb#W%`MiqT|)uode@QH}O zRLv$)KI7S3y9iX>)8~WzP03}*hpz=w(XZ&QUMd1Ql&2-bkh8#^MjY)YplMD;lT0F{AtpEf>^ zYVuqw8HzNv@W&fSWEC_l*$@U-f~WSfDOhN{w@*xPk`su^{qY|XhrB37ncniK|0G6ip15P zFI=FOHII+{S0^9czDT07iB=FNl4P5bOqUV~+BbUekV+(POOGapjB|Ww{C?JGVY!kg zTeeHP%Vv$+iU_1=OE;t?R(0e4??hg0@IS@z;;b)U^HjPu-lCT+cXc!z89gp)QBM{` zmNWaMwP)guDtvP)GIRas!etHDoF035Ea#3m;EpEL<5m&fa=wg`#(~JC5;*9gV*(@a{9}Y`@lF2he62f9`j(iQAeDW1RPvHg z%&#jEA#d6EKX|-VSv@{Jn*Q$u1c91WClSpRc89dB#Y6OM30oM@WmIxpYd7E&XUsKL41~n z)zjQV6pY2)|3w6~ILiKU)UvlyLWiI@d=fH837TrVg4 zToGb!AHBs?9?m<*7PlqV211fT8h|hgQmz~O)n#U9`(I=1r`wF(+Fehl!Dlovt)-74 zCC$9<_4=}p-#jjev&7Q;A6Haw+IZdaY}#r_UCAjk&@{ymvnL?TmH4QP7l-^dJz%*D zD!Rs?fYB-z27rBn6b?Lg`z62B#aLC%p}BUN5|=i-lImE=5Xxi``X9|Ktd|QTrx{|4 zhx6oDRB3N*?q;)T0n_-!G>LP@l14;|&dsp5$^1Ano>(fM~zSR}S+QKNJT>A2>*Gdlb`2I9@|{{XAY?c%R3 zvC(g?Zf<6mQE4qBNTj$1N#rG;lxsn152}Tgp#9qa0Ce2r`+V{GZi%Vf=(=X7W&Yx! zR%vw$#*@+}G%FlZA~_8Hj7iIczYBjpbeMFA^x8F?O*fz<^m#EZj^Mu&)6|dbs`{@d zABO}*r6ihsw(0wXmAS&n#mXt-K^~&Aa^yKL!-}L4d1)fGjwokW9+wFufV4{DS$$ts zE(5bi&5u3_>U?~D(qM+tW1cHH+952fA|=v?5-17qNFxNgC#N`Geu6{r^GE(nked}T zeOP=kiUG&rr~;e%VL#z<7t>}Euc0^=;W#z3qLt-Q`@}T(egf;m>^3Tw!KGPgH4Z=BTZc2$EQrx3~syUu*!F@mFTr6u%T;AH*$#^D_06LYD z+Z2N1)K!i@O{ZxPeO?H?S4g@3-|qgzIWcWE+F4D+s0GZ4!K6=xxa>FF?@xypYioHV z61pjwE9uBpO95ZmJMD_R=Utu+J5kc+Sftc76q;#Jaeu4Z5gAFAH(0(jk^MN~R$tw} zC-q{%*4MhY)Z*5sv=8-&Thfk_5{P5xUOZFc7a?uq;~&Qx^5w(#nKoNEmz8-jWue`Q zkLKbDJUM?VYN`;EMW=NArRVVS{{T}JW45-jSrK6E8nlelL|Q&mLnOS+ zgmU$l{FG)`_@@N@wZ?^?Pt-3=ns{qz5gtp#DyP$DbeUONzhE=nw-1hPU*&MgLd2?B zlu@7UcdZA$JX5WD;;9>wf+xI&BOG%@%a5k}Dw+?l-k-|jef2<6jevbMJR zvs~?Q7z&FT@QoP&gVEv2AA&#kW=VY{r3S}pk=~v;giFuWDm_91vG)1mtRXzDJ8Mv0 zETHL+86Q;=mx?fW1xs;Mc*K$Vo~th)ir-#M7ff z&|T@Whg-FB{Ni3ExsOUXmFDB{uOHp~Er|~&x@)k{9n8O?%yP)6W|mPT@-n$u<8On~ z_<5sqY5pe2Hev8g^Ll>I{-08v0FJO(Pj?0mhi&8hu<=H>;rf<`dfku0wioVir9 z7|SY!QyTrB-v0oq*sMNHxv{;u)U79XH%_xjrx)b_o<Fi^Z4W;;5N7 zpv$1eSWU;}?u~z_jaGYJGf5AjG9v_1Lo11ql8p?YuLWp--ED$&?mhX2Z|??wCJ@7H7Ma#y}IUZF2McZ=NiUBKFph<@!~(5`SMSj6=U{3Q`2d?wnN0IAJiY*oD3 zM{J_ON`v2RhAO)%xZY`AJclpkuKxh%zFkLcyKn7^w_n4qY)rZZEl{GQRDuOTrB6)Q ztN+&R_gaOHoPt}~L@NA>*WxY27c}F^o8b)HR}o!TPnHj?rO;&K%&P8ags&!yk5GI| z$Nm=sT={TZ!yHmvJf50O8c6>D9D~+IkCL<1eg$Qs@yfRHu9;|kIHGc;xtA_QK~`T( zlq%eN{9M`p0BN7%#Zh;<&4rSyT+JLv#FEVG@bN<_ByamG`#T5*lIBQM0C>*B0_`_9^AN%f0nlwJC70F9H9yvV+w z^`Sz~>8Hl*>Z$v`u=yOZ{L;T^CBB~7{-qcQVvaJ^bzV}4%#9Bfp!E~f__%x=9sVqy zCz5ms%~sI~H4V&j6eMz>I|daZK|(gN%O+W<*%rE1yzNi6UMN{_5k;;#?ec{czs>RqbR{fqi@F;wdnk zy6{_TVf=$>{c6X(3*9{ zSVS6~_MfDEdU@rYqlz zxLcM~KAK35zMGURU+o9tBY%hD{{VgDo9eJpfsJU@Tdm!Zvl~gAD5`T`lZ>oKTRk&FHtO z#rS%vIJY+YHI_wKxcncL8LJc(X?8tC+7M_}Qq@vwm{^&b1AyFap z+*`&T-W#Pw^?tM){pkJYrnqgUc{W>ES}Cs{M3FrQ`p8)%^c*6zYt>;PRn>Ur zMWr}|^%;2Z_4xc8&oA!(0B7vszTGo?u~e#k8XLGIf<_@F99czZQ<-{gN^(}>&-U<1 zvNAN@vvNsO(rD+FoES#bJLcP|#ZZ#jL2!j`&`nZk4SH6qLE^qR z`E62VB0;$fz9NJH-~Cm=70tFPhJwy3Sd13y!ZX%{mL&CJ;OL9-CJb%f(huP*S^6pXb*#O-IA@_+#^8t7-99=sBsq zX}@fCY*ngdaRgGEbf>mED-~#hMF!uFQBu_nLJvVs-uUdiRbWCtYrTK7FO4_v-yM~T zv=`o|Fi;JAI%Vd?UBq|aH3wYTc&k(yd0DYm^JdD$Tg{s)xT|@xvsbn%-fXPct9i1r zxh)G+P<1~nRd#GmrimMixKl#Ikpo~rWB$al<67?76uU~HR-BDS+=W3uL9QyTn+u`V z^vjl#J8OiRSivR~Vd_v*eg=(CiGDA$h-w~W()75@w~`bG?ygXPG*B{x-h%Lrqk4#g|#21Ws)`^5nl7N&MVoLf`XJ{%e5*Ftmur)|H}*o2+rUGDc$z z0ytWkCi^n~0KTI8c&pewbSTmTRZwb8M^BzLWiA8$$zDUY{v9{YQxBbd%O%y)Y1(^6 z5E-S0QdwEvgbqX%hl&(ekJXRt%OZaB;l}Eh{%zNyl6y;6voRh*SM?)M@qo_n`!JyR zrHzxEpSkq^0LjH(waBqy%Z)xA!5h-Mbo?>gg+)%}&~*3CTWfdc8|fLPyEfEFq*)q9 zF_Jk40g*UM%0=VGCte@9jo#$z(HIElT3qX1a7+hE`cETC+q7x9;3< z;L>~`ABcUwvFUtV)lH+FW(DIs)k#z7w<<6-p&sLp{1#N4-rhjN(|1JeF}yRhZQzYsRfiogHY@7a!Xo3G6aR6!r05?O&O zS72d{qgfV76vnO3_lxjH>ht*j0C>0+e=v26t}^MCjc~!tQo$nd_|R33_4qiXjNk9R zKOY=b>J=R`XDn|&T*(Z=NQsC@vYCPyS(TsEh7|QCQlGj-X&>YL+`nU-d}T&IK5LiK zMD_th4j9a=c)Vp3xTb6?(}a3ixK&b?=;}U31UZw_j7Vvv{K( zl#FKBi0B$mQ2Jw(Z~jlGH$H!{@L=22^FkOd4a>zCnSkW~01I>U<5vCIpO*=nj6CAz zjlUHO-L2VdhBeL&)XwG>vVp zBlPtbdu5B5HR4)DkUA&s)<1{QRYrgK$%?XpByILuq;(y^+o<|-o>Yhyk%EtN*1ZNq zqR_QpU6rqkLT&iSBODq>Vcw_htg6n<$$k&r`gm<7lQT1Vw=$LBV}vaLS3M4et$RCdxvUUrpzNm=5QnJQkT2R1FmV~tsU zFYh^ge-;gr0LdDI#nfz9e-DDK%u(s_VyK}aw%~#~<$B3h6&#QP>s{0y z4IZqtVnNfT5Z;c z>F~xEMPSmprAMekFsgw?050Q?#qm0~+Qm^-17dQOxhP^NNTmtrd@vEaf+m<;7~?2{ zd44g-0kDzQp8|gC;cj2Cj9pI2;5SP&bK6GrcTyaoEyv>N#33!)>@F&pdW*;*Bax|5 zUC13xKAfhJSE&FFr1Su8)$qVAs9HrRR=GmXN<@l9U6#C;!d4Y`0-TsNqsteC8}w+;rHc<6#I7GoqRGVJkw=8{FX968r1P7 za>~5VF&JPCKE#X1;&0jbIpEp+!2|QRSY{G{%&Y+@RUgxl!y)*>SJdPDzwG!bp7RCD zY-m0q;q9B6584z5k8P{aWJC0)nchh+EFy|aDGP8$3$jwHa6fnz)YTO6llEQse0aW} zb*y@h%D${J@s>#?uOT7*(TNtX!Fk6200;Z4)K821%vF<_fL>%8Y<~Q+Dk}tH0~(MC z9S2j9qhzdP+_avN6hTo%U=`Iz zBUGmkh56#Cv6WT0ley?N-)hi(*qdG3MriV??NVHYpdK~C)zaOjdz82=>m&MXYtM-v z6h+N?N&d(7cw(bTjI?YEDUE|rv1-v+I5jk*mgVs)f5GwMsxE8mYh>qhDnzv(6A%}3 zLGcK~6+eI^{QzQMqL6;i zBSWzQwWs38{gzNwGBHzc5EeoGufA(D{gZL6sN6KNS=BY5C&t{8VxxI9G5C!%I$NTg&1krqM88=CICd3-PD zW>RbMHvIzaT8^h8(|N+q-XE_bD%zF`(>P^}y$EFz1+OG=#l8#;sCl9oMW6a)cJ{iQ z#w&M?i@UQY!6FrJf)*gllTfycSdr|mtyU>i$0ACM@=7D-u_DJToRVHE z@oS6ZopC4h1`+`)%~CNmMbj66Gw5m*=bfaprX+D=Qew| zuI}|Umr~<AB&nr`)ngn z@=l>NPXz3B2yLWUqJn8kdXcK4I6d+ ze+NH+#?Q+Zc2@6bK$$IBXSA7_(Usf?#6|s0_#|;eIQoCO^#1^F;=@zr>lrnF(*OfH zEh7dnJvS@F$s1FZSx?5T$$rQ3Vy`u|(sjG_zgYcEG|O^U3H?t}6iZ;X^|vtx^k-f& zM5!cj{_0K(BPTosdt<7Zy%0z8je#97JYYgTds6Wn$i( zH2Yqc?vwrfonfF!BlPA`AR>+!4e3fB!!pGR{_BX?04h2t`y#*O;;$ytzbtQHzp&Kg zFkL{Z$#V!U364bc_@u1dS~yVt>x!qwzsvFCEPpDbx03eDnE|CUTHSKwsS7vm;-erU zB zyE0f~JMo|dgS}4uYBv<$D7O+qo}!?WUH-_XDwfHiT1yqb);=k1_w`iqE=k{?+T^WQ zPm7n^!IqYg*+gya<5;5R?x8!G36YqO<}y1oe>dCxthQ*CL)^xyRqBAy{Cz$T@|wR6 z1$}!>M`UThG5xiutvQ(aiXXBM#N2UIWOmWUBTxZY&_)3OlB+_MW52^nb#VriYk zYNPwf2vr{Dw8A&@ZkHVMq^{^9jpRZKvdEC{EQ;#viWib6?|nAsh)3qT34^>bHPyXY z3fqX~q9$X)8fUZX%FJ9P+sI;io=N>ESj10GO^8o?sA*eLlm~TbK(-_Yz8~ z0zk1+4?>AAs@|_ZSBihHioFs>WpFnE{u+Quttt-RWMD~e;q>{VBb4<7lLlTfnCgrT zNpJ55rLw=pkj*2_#A;UBZles&voPaw6O)N2tg-sy7M447NM}`Kcl$rQ{omNa2Dpzy zfv!>-UR_>A2)MVGnS$Eonc_=@o9i(q>g=t<{Z2m?D$B1t{bOpAN4AWdM?^LLE zK^GX$Av-F3T=@E51fLvoU@1KOE}@1k8WPvHKBv^wQbd+GU6a&CA$f-p$@`__@q8Hw z)-?}XU%9%{8RXOKQO(4&^R~5%P)Rs6hDdlk!e2|_tiSHxwwTW^ymkgjZ|09px`x^r z?8V@3Rw!nh)VgFwa=cg6^a$vfQIw2S+hw)HtPd>;qF{`}ah z|Iq5qPf%%$xxrB#?X1O`#F3at;>UO7po*v1G;bXuyTo{#xo&y zZbeA|9w7D#De%;G#01ktwct>pj{^@jF1wYg09)Z-wfpjwvF7Rfr&i$y<>d^iV)6&#&0~I2cJekosWA2wH8iT36vU zvuabrC7r#sV|hdmES!K;Z-u@eg`bLiexkPzi8w#o^wmxkcz70Sv7n_${{TMuK|(Ru z4y8a^fxpGQKWig@TJs!{tm`23t_K*^A|9eTDdq8ck`5<}{>MIlw5Wxu&m#{;Mpa}_?=ei?BC>m@0LX+xAS%4!#YdplM6+BKnxCIF|0gM<=>as!IK# z!15|MxA{N3ME?M1iRw4@`eYMa+(-;DH!~87x!4{G7Oc{Gj=X=@Mb2ks)L-F_5>3X(V*@h0zMi0~L`^#m1-+nfO2M{{VL<_iusjyz%Ax8;I?0 zXCx`&(~xLg!U)%4Pu{Go-@N1S$MIxB&+@A7M|tk#NMvGUXMqwXKBD?=BM}ZLLI!4u zmEx11?0k4{FXcX!JdP%2WMU7fT(gSGlSosL{oB75MsWWCV-;IB=6#wp@mpJoRw!a1 zat4LU4o|-?PmG_-`#&4}c&*3gE|M7*z)g6J!J;3$MyoSMVs#26MC0*W@<}~UgZ*q5 zZ~1Sf+RW3!Ri$K&OUW2>SgE-9k$+)7XX5_=cY3_A+S|&SNRBY}>>UuHd5DrmBZ4fP zs_Hh2n(_Uo^*DOCs~exr*G4#|j@aBVTdTF9NTXYLnnk4?iM>RMFW!BgOy6($OYeNq z<|VwcwX?P1Ao!hxd<5{w8APw@hIsxcr27l|&)VbrzI_tQNVl2%#O9Qt8l@lII{{R(zjOghIM=Vqk z%bF3jDxpn&d*!rTmW+x`YsQ-rDaU>3&|<7c=gNxmpHl7NFFbQeGbv`9fMT(`)d5u! zTzot}K5D<~B|np&()!!oG&d$W5@?ZH>N2v`r1)r)NX+jiK0nX!`e?jzY3UOnlB19W z8Ub1w8glzxym79qBvZQrLaMC?5#5Q!QY$|y*;&ObVYwve-&v3zZZ}ES^U`|G4uO>WK-ZBK^^K2V;Ei>M-@t%eEcy~ zy)^3x?YLU3Ng1QZAXLV`_i}ug#x5xG{SEme&lg$wI)C!txJwe5kF{dn1{{VKQ ziqeZx!kckDD~K)Jb3X(u3Mi3-uMz=bzvQrghZSA~R_z@SfGCki5}qmmAoAhx@dNq3 zALRJ>;=c<9BCf5vkxCzBr}4lt%_NG^POKu7@rH;)G7(qx5sxo~a{F9)f4;B<#;{3_ z*==Qot`*WI3s4@UD3AP{8_Tl64d`2d~KE7E5%0PBu{_jmT8jlT&~ARr@&{xzX=r zyWoZt(~1^&OQS5U~18kj}r(zXW&_(Z8PMn4()1oXU>^$?7yDtZ&U_ zR#){BK1caqgLB1Mk&|LnsUYziiW6V6{A3qUd2v|K~0{4%0D{{XU8mtXmVPO`L~>SjKi94SH@leeiD6Q{T>a3QRtpx^eoqtLb3cX&27mf zSrE!(l*1{OH*ZPWC3jgQcKbi?%pN?WtNIrdnI>7CZi2|XT-+gPeMXUJ%gX4-al_J; zKX=3Xyj2*UVKLi7ZKc~a!ph}6R+Z33IedPv!91|Ea=UyD7o{2}_rGN^JFD$-TeQ27 zq&5s)qVys+1hDvlDWOc`y2ys}|HX zYpoLF)W3Z~f8B|1qk4qwuHg{hlhF-NW463#-dS(QPC2KCx#a z8B5Cq!r|kNdtoG33ciypoVY!|_nbZl$>7jKwW~`r0|YGts{BEft3g?PM{d8i-|;yx zKAYt2I>n+cWVjZ^+69@+fEhm9ko>+T{{TO?im+*I^%*YbwXwX6wZ-gLu||eFq3M+U z&H)Tg}EBKpkyDIYk&fum1RVl2=5xLy5MZ-bA({3Q5rs?W+2N2Xk@*ZYu)At{0x zm1I#9#;xhvC+__Q=4ABvarFIf=Z`uuv5HiZE089M+n1)`aiFCaVZAAetYlCDK*Fp| zI*I{W9<;?+^`48!#3GsEwSf`{tlYl=1ZoixeM3eU|dx=3Bdo76pw^G=zo+|rfd$2Dx#W2>e$m_F^>&>WkbzD1bg!o z-D^>>{#+}tlU*pL`raYwAZBRXj#BO(yjT5|IDfv|qn^4~zDr{{V|IRC#hFqK;4B_I3uH`t{8rbqveNjcdcP+MIR`wSFump2Jg;5cb!i zIY-760@Rd}C4N#gf}bB4g?r-`?$zAFvnQ@T5QL6ZpnZo{6lLjz(&=~8Lo5$_98%93 zszeo^gC!~Hyp2}<-@^X@2mD*Z?eh&|<#`~ww4Oq|E#oK!el?M3u}H3}o}+q0(~;Zl z{{WJW>Ef(~?rps=^;SS?98iEjCztEQez?yxaU@J*mN7Rss!)PH8Xfr$<-&WUyA~1zDR>gwweoD=~`(O1Kmnwl0zR5lBfl^FelmtMVil43!cl=lU)U^*7yMVv@wZwY zr#u%RNQro0hmFyQFlnu&W{y@yW>1I(b^ic;;;1P#9Y*SV2&8z?rzj_wO&Jc6`p;E_ zg1(@TuO4 z*sC2Da?I`ii1DFP7H9OftwfC~wH*8_`=mwv<9)wPKFohtv4=+T<<_O9pF-{#8hI|+ z6$d$gbuXvrb3}d!6@Pc>{A>PRbXg(w7!u5)zYtIlAPs2M41VkjCY5J2a$C)B5w>6{ z2wDNP4SlvBXO1eyHEjsLp)^eP%BcvuwTd>8O2bYK3r6tBoLLa_MM*tB_g_DQ2rj<0 z`d-gY^e1cKbhj6BMmVIF%M`4$ywMwkfvu)_?aF_4Ye{XRhOs*G znVj&7*5Ein&RCUwZ$(`{-O_q#E-$4=rRi3~OSuwBbS;LR9E%7BYkmze2|5lka*3XG zMw8WzKjO@rwv%BzBHma8k;K48r=p%Bq;hYE;cwZ;jWW$u6`_ojAtRKc88`z_iriO< z@jQMX*~M5|XfavoFk8o|PkC)`%Ifv58f1;)kWBK2NIW;6wb zIebEct$b_K9Y&_&q|&0a6&v-YI1qQt2qcl$q4C=lQ{d{QQ@<_iy-BF0LGjG6Dw6g1 z$N;y?z;qa;e181gsZ-c|@l_?aMCHb#n{s1X^Z*K1{akv)isnwP)C}Fo1eG7`c^u6k z3>Wr@sIN`G+sZQR#3?it0D>#EY0|%jD!zj?J-T31sM}I7BwkXGh=hf1U3is#EUi!3 z`&n~pHgH?Za`LE(6)h`r6i_;ozid?%KstRnu)2M3PPgRJP6DHFl#@XjqOoT!(lu9B zcl#-U&zdw^5|@!07g7TQyiBPlf7mbaVyVf^k;we><)(~DCF(^_Oh}RttcFEbP{@8I z{_%No9|L?X@h%~I=lufAA$iZnRTP9`p_~&RIX)CsYA?mh_VHF#n<6Lk6U))Y4aCAZ zJ!ZFMUQPq3KiGU#d(ic!h)~OZ4I6O}# zMkEDKiViHx`}h5V{Fjd(+r?g;TJ*{+1#8f5Pi%+5=Zz}vRj{~@NF|Y(2uD>`CawFn zXNpIpUlgvf{0`iH-y8*d=cyyPk593)l3AEl>l}=$M0PQg#hzBIY`+Kk+*|v+Ri1OL zX}R#m^ECm19Z$6fiO99TnJzEjR}hOkn8Y$l9eq$$)r_j9v6u9?xqctApARSaaLNnW zWtF5bN)h9TM8xqzWCf(;B;87%xBF{~rqWC4Rpez@lvSCHIMZ@TJ9Nu=C_;rMz5>0# z{y0x%c{R++?hLl_!i^MziRU8yrA|CoikSUHdbjuAvG8J!_g>! zDxyi1s7sKm#ZUsx@p_-^cwn?4DH(1~04@B~YS5mhn_{ly<$|)Ei8U1q$8b6vq=->e zf)xc4zZY+`OAcJO%Yi)@!WwZ+lmci6Z?%`}#G(1Rk4<^V3n(f#HE-n`Vyy_rsp@ed zh^-HDMFo21k~NipV0f=!C~MfOZT?WjIjB5(Z$VwF-@a~WzYRdAUt!zzVybdLvif}E zNjNtpE&<|4Mo~_<_lUV1n1x;^i0)L^f4d#bP-4ODB<;7F1*hv0r(V>x& zYm|*vMvK&TRZ`(rK%Ws`iIu(&^>MTLpHGh7?&=v*Z>WN9ZPnDsfKZlT4%|mChxYMQ z_clhK%_|-J7IMNFuc&MUPC3aJrqaBpe@#_cQ9r!@0Cr-d%@*vUIAb&2$Q;FK5e3S} zA&KOt+2Fqmd?nxG`xvVr&4iQd5>IntnqLW^p0Zp_c@^DD!aK0PJE+>-H z>hiLxpm`iGq*6rn6_kef)v4*X1>?^FzOZ2;MFH)(eO^m}K&vvddWy+kgX}V?{&z)u zRXyiHQV+}wYRFrCxc?LRMv_CDXmfo9dL zmgZ|28bNa`OE04gE=b@Tl)^xZ$xj7|TEDUI;;Fmb6+*=ru>FuK+<+~{i_5V7Y`FPx z8fH zinH0Qw(TmobZMGkhOaBMD+lbJQO2s@7w$N7=Z=?H*SIar7JNwxOmg%nNT(hw=a<@9 zIVZ!;H{tNf!B$Wz#F594_+6K%02*vTuV1r`1(>sS3P4^Y5{8^k+LjiHlOrxj!>**k+^`b>B!(7 zOu}#8I;ZY9`f>jNu*F$pa$uuv>R7VW6b79~!&8ijR42t4QrnbO*eE{_!Z`}$OHMv- zHy1WH)FHh&pm+4o1J9F&;Pv#@ilM)F{{U;^=kei<{m#D{q_&VJIqDKJk0FV;A5UN- z8FzZCfY0GAa`E|4PB#hK#>Y5JYz#EwGpGhflhZ;u)vJqcJzy1W_61vr2#jU-^DD__EeUk$D4D z6+FN@(2!S-$CW?fur;(2DPYVT9UQs2XX%Z3yQQFlvwvuvU2DE8&mnRk1dm%Gk)7I5O*JH zhqwB;@U(73bQ^s?=i`jy>6MBk0SF}Rur>ZQ#a$;rtOF@DEz60n+-Xc`hE80Xf}}AZ z4pbczaNB>H$-N62)`Q`qntP1C1XqY8lTb1_;tp+r?P64I~$ z79>)vM_-3*RU?a2oLyWnb0R%Jw|Lqf1|m`EC1m?$B;)XWUkAtWd_XTR^?L@22pz94 z96Cac8RG7aIdW>ML+UKc={KwJr}w_643;&#ETs%;P^m(s3UNI}GM3g998m(M!+-;h z-{kbgSU#&OPhyuA@w7_{7rNsmCZlr-?=aGDBv?&qG}zKsOQAui zm5t zNyc6>b5D;gzbdA?;Fnj@{*n=_t#CN686rNEN{<@17mmtNrG5@&W7LF;IGn*RCq_t3S%k9y^z7q)8(RtHkoDBvqegU-w}= zdHSCM@co`xcVpzeD#fjuD_B*QFqbXqioF+w2M#JX9KOf=oXK4?Qx!<2^2U#K={?P) zUs^*`Is%MOE^Y$?U(=J~_<8=`E2ro-I&Hi*(4cjI@{Ob%2De-ar+jCA|7Z>{;r|tgE z3(bnCDy%W2NTe#!6e7?HcqktT%%}$v6b1l_SEYK>7ND;xZhD-&RY7QXQmjtIf;TJh zw@%}H&V++bR0Ti*soZWUi+A_UOjQjmivoa9`edpGS^zmPjC9}jvWP$eu~EQ)h3WRb z%CMo_?yLJaDw&Fdu^6frSxUyvpggNzO%(3b{ho*Z2LR1|GzGmlnc|HJFC%;&twM!X zW6gp$#MMu;{nx~tFx(=q*-$=PWf+jB0yf+5HQyCTr;!0%FQ-lhB`(~4K281K$0_2q^<#L$zw&>&zT3AZlb~f#Vy_|p00{ZxP4uMkasB7SpC8-Kt3lT<6<{OES5j&4 z*<8s#tc994wkW8rQpkBar@=&3W#aAe{?;Kkll4jTsI2ZTrfb18&oKfvQj<*0C#LNO z6`DxD-M_i?-M`r9Ma_z^*77x^me)~STiZ<6U`cR+WQ;t^@W&@LlZ;$bkp0{r^LkKu z3f>qXhDq)&WZ@(?6H9R+ERqP3#ZSbm>ABeDG z$)DgGM^=7MRIe1|&FQb$#Oyq)ZKvPe-$c?pmuQ}-c^Zo7#s2_wLH*huUlJ*M8=DnEOQ%}QRLX^d@5GbEi0EBGqyGT1$46%bTpBduQoKMU z0nCnDcjXL^UKYOwNsma47}K@TjtBn ziogHU@Am(6o*=EgtF!TQ#!8`9PuOay9~BQ5R>xUty1%J(+KsoP3}~_;{{SY8 z(s6U?`k(K#92fk*@|9#+vORmP>Ne6->Mm{BM3LOad5$}CXI;(4TWWg%EZ6PGu74b;&R zJ}vuy>~TpT)R4s=te%^**5I{ddeyy}Jl9CB ziWAe8q;Xn&O)uI%0QmkEeqSG|tAg$=FXVwZ-2VWjD$zj{jhGcYm=1h?6{qcew#8FG zLEIXS$2CS2+Sy&%D#C7zu|{~q9GnGIfKM(d%(8rHpYdPY=Kla52#ylwtjy{T%^)ht zwFpXtZpz&M0M^A()gO0U)xhr`H$~?~0fW(qHQJxoAGK(}`yK1_Vyd+Ru3$l}J9We= z90mrWi~|8tP-(w@*@B`O1YnkOT&O2@pdC-xt}3sWh=%Ba!%0e>fSOa42h)~GL?kat z&}~!SZi5w7&4{^RzYPJd!HoyF&B&AvD^NL8uTfq<58C=MRcx$CWW9GZn}6It9D8rE zi4iNbN^NS^Y;Cbu?X9TQs#!(sU8DAhplVYiwRi2URkNkkC>nzPuJ8Sf^W5k8@8U$p zIq|vP@7HW_h9$}fmH}mAu;|F(l0@r3c-X-zMVm=Zo)VMZ704FHOi%px_orTgXr8 z#g-N^{z2cc)MmiSxY}$&XNrTl(`^Em2I?vftwuPJpeVYd>$?6;pC4HH;7xpvuz8C+ zA;Pxw;47xbv!LWTl<i+A(@X-^yze@pRZ}L_xm%RcsH!Y*x!^3?TB{Sxn z3#G?jN2Kr{irm1b3SnPH@#?)h5^y@iIru%Jl=mK1j|W^liBDws+0*QKQr7J9rpPSC z0hvqy}RK zH1OM(5w^{GSJJ~v!e#s!2Jj~h2TJtc5=Q0{{6^>tHUEGYF1ihg&;SZD&Jd}}jl(tYOW9u* z{sS4q&r`_XM8aB3-4WSXPCpxoq2Uj1vmZ70C?_VmO#P&3>qo+-IAo}2E&_lWhK?cZi+iXr1bj6=FYXz=hs*zoYlcAcWICuj59*^sAuME-2&qyTsNtxo&w z0;n4C+P^!_8N$?v$aa^+@5XoQzo{l3a~~t&Zdt233UAzww+KnlMo0gW3?dU(YRtCC z%eu4fQN*k~kGr!q)4~@LpJhHmFu9mYl)EEKW;!09!zNEPhX1CVgzCJd4N-g=uEva? zrcQ4604GcOgbk|HSc6~ccOhdBm{{im%caW6Kj6-SdFFY0?#pWdl6^?!i8BxWScbX)&kq&`5T{;zoI=$~Js+m=ORVF} zJ0{V{SUM&LUGb7cpOfJ`l`Ry>o+V)}cMUifv8GMb&r7%9T(72PbXj!gy4TEdS>((5 zguGxzSq^VxngPe?==O~>RvPo-ktCxz1HKq4M(jjsN01jbf(oPbuDR{ z5Y|(o6iDn<{v0;=8T2Z`7*B_(jWFHewBnU*Q`F=1kGyn;XZUm~nm-A`^RF5_mr;=}`017J1>5|W zHtUsh2S1l2#{SY@^VY1~{%B*}5W0-oNG$vu956w6QN7XjpM%pqT8U{s`A+7=fA?Q) zr@cu;r=;g{O_THgbK&H)^$N^gYg3W749tc&t@}c$TB1Ji1#+e=g3u{FG>GKT0L7B@8mWA;pqc zL<)>kAYM1?lmWegT36|6xm^{S8D4GpK4%(f>O7m9e%WRC=wLVTzOJ0t$>mz;^CWsu zX(lu!chH!}p?9o3J#js_@U|b4PHFNG8btyR#ntL9=p=75ydQYpk6oP3yrk!X$dQ+ud)0i_R?eG!kskF z=+4awE^;e^bN)oABn>&T;l^r56P3pjySqeM-!%-gl+V6&cH!;ghv@4Y4`~nBVta@0 zD8kq>h`CMfBT*At_5?6JL*H+C-qJ}U{NCFogJua=(PmPCH5am<*=JJluy?*)AD@%U z^xZgMvhGBdH&6M5z{l@c_GF%FP7^%d>dopl2{I2!iH$RSB=L3bb_F0G@R0)Sgut?y z_}7)f`w=RmzO^}0i$Xj0aK%%o*feD}K#gktiPdtJzNT9F$ zA^e$yV!oucvk(3JHi$%8ux1S5JU{=eO?fsD+vg?Y;*2`p8{IKSqxIf!!!)?nQAIAi z%nc^uq502vYs|EdE+lMKh&2ZLHa2(3S0^{rK4}Ak7Gd4UDLuB(fK9TT4fnP_;J6KH!@M zh0XMZNPSN3{R*mA8AD%uVR9bSPupLd8FLZ(VubZ1x-U2LBmmac1MVdwce|t)SfBQU z>1Yk_4Vpj&*@KhI8>;#J{|tkT<|#h?=K{~mZL0M@LSP?B&src91Ag=J zzY{1c2RN8aZ2o_b`(JeAQP+Y|5FWVRua|8GqDJhdKZ_l~OVQk(l z+Y?ep=MbXRT}0)|$GVnRj)i3AE=f+gPf*!aqUgU**G+WkF__zw9ZW+){eJC|=F(+4$_(JU6Ub*d<;!+DJh-ZrNn3(PAo11wikqVSAE+Va26<{c-H3=%@2gsN zcx@J68~{BBLw>9gCmM~i-*)M1c}IvrYsb;Zl3VGYz3A>R$Z?C_@148Hb#(<6mP~tv ztFE6lcQRvnt!Blui$2{Oot44><~O{sZ?KU!4cVkjw91^ONW!;8!rHIKU%BTNMSy7a zlx?E-M|xWq0$WhDiuV~Jo{(dpBtJa zHu1}gZS!ei6%8W^<069BTYGA78xs!n?+z~=cEE1!6+Fpcer$2KakMjcS}8SH`7EzW)deyQ;^>l)NpL43da8#U|Lcr**3n9><*``eDLCbz}u(F zS}{SJYM+GwQw=;XM}+kQd=4hOyT3+6(CzZ=s(|TS)GQq>0e`OW4PXRcz+meCJ0Z}J zSipZZwZ|@M;Aoz;ltVyO}1|3Imz z_&cm#qyjmdGIZ1)DzKiWTC28V7V3>0Rjcynr@Ck`4_E_yX0_}3rv%T^IymI-2-KW? zc6*;xt-^%udB4|u7BLtIn;I8(yR;9ljWb=?GR=|`t;U`jlX zpu<$Zaz4e24d(E9sQfctcYF8Ajo zVU^#i@da>FRDwYNKoUa0JIaRVbw&s(>jHK3kXBE)9UVvp%kc#}3{8 zMxva!dQaW52;ALt(8<7I#_e59j*Xv|_LC>M0I!G*F8Rv6`v1{$7X?6n$rPC-TngM~^vhi)jlVy}bY4eAxnzqxv zw+k*iC0^DEBFlypENBvYMZ3B5k3fNR6xq7=!840TOy~#eNk&1uGblx_ z>6R6oX;vS}dWIi`!{Z*bzcDOf^R}6<)3Eyi`XETxYa+vs;md$P{qPCXOu2XMg?#>{ z;>aEXQ{0Bx%6wUb6J{VJpk0`xSGH+!dKaDmRueB!kQ7(LXhA{lO1Hr|i*xxkem3%9 zu+V#B@0m=8FVR~}1+7~0_t?gE#^|-w#fvfRb2%&ZwpV2j=DhGLol>?_%SMz}675ce zg-(4xY#b_PfPrql#(G8w!vT>Yfsj(DjEHctx$(=2c%)Jw^mqw@2+w!m{Mgp!=9q-r zTx*>YFY&1QX7V414jYWA8_?uY8H>mmU`OfkbYMESY6|tCX8peQWD@GVYC?tzqZ^y! zriM?o3>`p)+Da023NYVCQkC9R111#_+;5K1BRIhKDOtcx8@H?hyau*FAtiAWP9i#| z1BW9B^elj|+HXYP$v&#KSr}$s`!gLVyBA$(v0~@Iwj(C7AMBOZkK)Ce1VM;nRb8NA z%NiSgpP*A}#Gux`y3Uc-DBgP5d8cl)<3{Mx0PtVFg(bSFyuUQ)q!pTmXy9R>J2VrZZrW-G7%-Q(JU7`lPDpjyR5=qKwZb5gaw9yNHHm^n(|_5E?!d0~w%Z&6x^v$KBy#AiqxUim9+j zUeITPbJzqlws3skmt~2QkZQ3Xs;?Ek=+{7Dy;j;VMNdlk zo=_l!!T+`Tv=kR9p8lEuE8@8A^{Hvj=v7SZqhD%#g`Rb0^SM^giSO!9UACQKw{v0# zf&sNU)rPPaOHp3SGhfBZlFa-^k_HbX?&FUKj1Y?9jx>st#$y2i*lQP4>c<4qRL!=x zX%Zit-iq_4sbnnXzgPo@++_vr-KuIQ%(qIKN)gwD_?kX6MpsUe-!B$=hZ)5VZ_|f{ zZLADWR)!=^9909d6xXWuezVAwt%y*zhQn`?AB0b&<5VZ9^&l>FtDrI+E>LY{NFU{==qEC5F7_DkTz ztOjheA-Z^P>l>o&&Suh~9xG0?aA>fhb{`8hkA;xPO7Kz&BQPA~45wQ-ZB&`XG}%~ePP9L?x%)anywijMX9^&hqHF3L^yKZ2mHWO<3n z!LRv(Snjv{EBlTHIF64lJW#$%Py3>no>|8=@!;m2Z{>OtF>a>f3Hn5uM-oF;&o$zF1>d)~0Frm6H#)pi%!E#J?|B5b*H7H3HTVT+`%)OQo7u2COWm zTo$2dw)LFh4?ucVLs#T}k1dz>1;>9sl=Or8p9kSP@Ab&NsNY0qFi0M2BCmIkAua(zdVJ&!^LxRbtkJ>CVdll7gk)^4+DnL;h~?3 z$p2f86qx^8R)j*={#$v*|G!(!|GVD&&js*74p-nr0-vfud8QS<@Rf$H!ACc8yZ*mg zLIn}^lZkF{cbE*Rv1t%WhPItESmhHy2n&L^1C zY&M#XTmO3~b5ycrn>x=kTaK!W-T4bSDh>?lW;vsY3!|#oZ^NCr2F$ghS9^P!^sIC$ zFOBN8vHwB*+;nNQe)2lRMzfh$e&f4?p@JO_`m)Ce)ZPG5)o7`H2qb=z%3rT-yKQAR z1;WT%LC+Gn@vME&G~2);RT@$B?A-%SYIn--$r!-7eL%vcKnrAAwzR@+#3uF{eusE{ zT=T(X!|H6wKYtI(wfBRrkm6P(xofOi1kb+v>%6XUiFBpXzN{`8gp)-!OjwZy7e){F zh$`>sIV^<_ICCWs8Y=x%-ak)-8+KU51pggMC%v)rt-RPza#0#8Ur=(;{X9>af(F|j zP(JM*q#)dj9eB-L_*m`!4h+fr?hu4qo)Py+{X6xIITP+o9t4!Mbk+04+c84G(RGp| zi~eOmN#zEkFxoKUtoS;v(BHIH=#qTqyR5=wq$aCD3WxSE;-l?aS$Mz0 zLV~w`70_5@v=;B_{d0VofD=M32YS>1uMv7fyG}#BecO>RcZ<$xBoP{@%hLIxMD7XKU7)Wc#;Wu%CwwZg zFQ5Kc`FWa770uq5Eve0PN7M0aAXKCN;c&`8m~e0+;(Y>*%G&MM@NG}H(~~;tbf%g1 zJflk;maGHO4UWG2ORt(^tDgH>{609d(Ho&bxC4F_MA`vNsKKwJyB48bK@}Re0Xa%2 zC5+MpXvW^2Iy=HffOtT1PoxU_MUkX93A!8G zzNluW3R1?W4yCe!|Hy&7TffiQS~&Cso~K2ZSDy0lT9cSsZU08yM3KzTF^Tc-J6h}? zmaW-6GHFkqmXHt*|6GRq3S}ImV+CcofHzm9g#Q?Dl%>5V)M0&^Es1zymdg~Staj+0 zxpqmiQ#7``U19dX+hm4z=Z`$&7GVnou$*``n7-He@zvEr8TwH~(Rdt&6rQ53PODqw zcJ$>T2z1Np7U&`F*-(5OS{OXPD)Us_iZbl`BJurWwT-+$e@=f}|EZ~0&0Q<3_o!>GZboMi z)oHob>5DIQOha<eXy=6eUE=1!pfeA~H#EP;`aoZFl0)zz~y8XcO=NtdgEeW_+&QN4*n2uUc zQ_|W?Ym%l?WjTE*a`ZABf~}X-{V5mp-;_9gyb=PZM;^~faRGi!c-Qjmfo!T&)m)OB zftnT)X&ot-p}Voyj;i#uA4#sriWWfb$a*b>4lWJ6vak7LFXYP{n8?xy>%{4q9LuNp z2eR9}?u=AnMmt_qB`*xZAKE)R8RD@pEPJ}yQd$e;&u<|0h4f!{55cO>CgYi1-Bi!2 zwtK|19!c_bMdD{3c<8;sS*uD}8#KV5gH`p@(v>x#Sl*3L%ELV%r2h3_ga_z*$*Nt!$gf}4oSDM}{=v&+YQFbLhUAKvtiHH;QS2sDwgulA{ z2l}*yk=(G7GAN%h@32lF0BS+xjpB5zuIp>CG=4y;(J5T=!dMi%>RUfa4NuW|#) zYj6wTE=C+1sc5Wj&yiJp5~9(3Mk2a9LLc_D;cXQIj{Ano--0_xTVh*=X-Zz4gJKs^ zu8V|zgcMB&HXHy~ErGsQSZ-_o)DT*uKow&Rl>rIfxzHln(M65bbh)s+$-_XNM6EXua}M739Kq!Ty|RlN+J5F6HN8 zi%FIqSm3ox;p(W+dBxE@E_!Aou~rGIEcfSfS3hK$&5{G($Zd0o7;IKM^mZ(0k=a1K zW$Y6?Bem1bEst=+7C(pDs?2eGEN#1Aw~pOHJ>AjjOT;t&Bcw0+Q}FMNxgK+x7Q2?l z_pkJ%#+2eG^5J8>#>~n}KSkkuCU&DkC6R>rVG={{Oq7QVMokJdUbofTv;!k`sp*zD z*!vB~uk0BjJH4^);cj26Wzi-uatAd0^0JOmABeBnTm4F%uMc(xv{yu52B=D&Y?*VwnZy!*jLaIrFmtK>{`bC zVQ5BH?&_3lQcYd#0`)Ua$W=>2FZje>o}iyDNF=QNYWJ>9YRU9qZtL(JEEk5URB_KA zpVo$tUN#s5$lCJ`AG|*2_(j#xl1Tlg8`p37!iim2G&f8liz~1imqPy<&+7Oj%6ldL!`66RNg*KOP*2>CZi36FShaE(h$}VhS>{B9V z{_L_`B6TbR{<=?}P_dlCxlD8Vr>+1{1gwsrF=!vVUp)Q(Ml4g`r}Zn5&L^iO-?r{h zQIjEuMBWZxGUbN*npLl3L#rVPT%asD78*Sc8);OD_+%u|%*Y#G&-cArpX?C~_pHLw z2Vis2|7H$@IPB-@9I2aY|74moJV-HMhCWPFy-jdP66}%emXod5)|1F!=A&Ij_5qjFBuUCY1mwZ6wrapq+*6b- zcjHj5x!_hPE(Uvh{;e9)_sBduc1HdEE!8(zXt0~7d5M>h>0c8XAFDM*mRG5YsA7N=U`eT z#wmE4EvuT#HrdJPeCcnnsC<9bIQLq=c#^murElEVf@+G#{KaWKg5mS(mMK}ul2OsO^o0Oj)A&-{!RAh9NEN6gFg(7 zpN8n>NnryFWw)un24(!h^=^&(Gsqp!gu02ZDb172wLcPQmKYKUBFe?A4<0;L&vGR9 zgSB)S!@0&y)N{6M1imk&zf4B^yeV>^QU4>Wa{H2P!QVCbyNF zC*d!;&U6N-mXbtkWIO6iioM;sW$RZSi5ho&`whOGY^!EuFreZ(i7|ZXGnzY9)nCL$ z;TNEXQiDFoWri!W#r7>=tz-zp#Ig7I2eIKC9KO~`1nS#Aw4JtUgO}Y+pAY4n!PCqn zATA}Fqi?hr2TpHvZdY%@iYS>rt-3d=lUWmgU3e3zKbshaiw92wM4y)1w_UQulZXbg zNh<62&~xu>={r1np%H$jOd7gk{L>2_y(a#n@w@WKy3hncyX%;>sRIVL)R94We*6zc z-ZGBRyVctiOvsQYJi+G5!g9pi=5dgz?PEQ2CAII;=}I_ELVwg!F7GHI-y9&L`d@e~ zt5;vdHN>+za#WC)YR)0F8v%#bCVUrbE)2Yj;G3kfTKjLtVxKjRRq0HeL{Bg^2U&Zm!`4RNm>;!;}?Ts@s+R!yBH7&OC3;$K>(^F+D@h^O;w3dQ{sFAy7J$-OV`xD=?uBm*4#9(q@siu!wSP zzE+sAX)jxVVS{6?Jzta*V5LV zjtX9^r6nD#x?*jv&bxl`)vzj&d|tsut%^6n4wz#cx7_VxVbF64EL8epUjntkp=X zvjBcnl|VjjhbBK-f+5blqXyu5C&4ZA?gR^S%+9IYwClkFHP?1G3e^~M)l<{$yAQDZ z>xRXG7`L&kZ-vtR{>193AGfmVu^i2xMJ+9FG#k4r?<+glTM0O*c<34$-BgAtIN=jLhe$vV7EEdzfX5X}S~k*4=;%A}STl;!^47^Jd?}s8%V`Hhrgl%_m3{6LKK~53x zHWmk*pMyRATjavfF?aM~udVZa`0PEIcYH)I?&CI5+EQqztXffiy4SYIu($d6EN+!Q z#8}HLH@HhRXJxNH{}dbUbP88S>Uw8$F*2D4y3m)246GM$umzuP_vakhnTHPJ6t0qi z8P&Ho>$;VKi(R+fc1S0rJ70RJZDY|!n?X+{%oxOJhRoGG44<%f!ml8nt`SjG+=jJ# zoo#~)9yjeMoo9PO`P%_>%cEYx3dn?C1P&LkANHD4`=`OnQ9zAD@Tu#q744E~5R1F@ z>S;)OvLHV%pN*AK5v_EU;xXgZ^W~v(FpmRzBVGdOeQ&bk9??CN5@%jY(-7_(DosUpcpy9+szf$-I+Bq4Ax9=>TiSQzl!2PGfdvDT#p+&mwy5OT-l8oP$ zOrX2ZX10M=HE6Ell|7PA>qi`Sr)3#Wy*Qk*tGaitNP!Z)TXtjiej)R0T}`5El6*$Y zKag!Z_^M1h2G*Qark(@^@ARK<~0Hnc2P~SU&v34kGqjY!cnGcCOc%CLZ1k` zu_ZbKCX(#rhR|!|Y?|uEc-PU3Dl|jS)wI;i?7E7)0 zv-AAJO~ihmWXh~vJmZ7-q0$e^6ow&wx{4>#ih{A6Ce0rf*nQ!2p&;K&Ns1W?f-oTfdT9^j*&ZnjP##3pE zRK`z=2Ct{;er*NF`n(4C*5f)RB=kn^f@33$mv`QGp=K)Kxi@R-P$vC#&_p7y5`CQ{ zdCLzKl{S{>%N}7hwb~{;Rw00`OnoVX;Q)eE>&CaRW~ipg!S}`y+KhT{J3mZ>P46x! z?sW-ww|_E_YtOQy>A0N&r&&lDzU8g)-%DKB*}vWR8{XABftoJYb+WUa6RYRkpi;#) zT)Lyd;V+i4uH^1kxy;|*s%J($Au!$@R3N}AI^U-`8#J>XjONzupXqFmF@5t_UkojV zZ#lu5=sjIEa4Kv|cO8G)xi{MNoSSC|1!igj8|W-Aq$ppe4CaHw|IHrvs=MRNc>=xw zWn)?;P+=8d833d^ji`ry_{Kh)#{m8hKL@OdGE9r^W*L4RzG`H!STB7^bS4ie}ipjH1@s(NV+M zwWVr`@0xH<7Jn{e@ir+xeYVBKf?&|VDa*}};H9aA(&u^+!sPn>Xd9(uYaH>tK>A8R z^ue?v8tF&K8 z3=~DRutiKY^3a%6Vog8bzrsp8y=AU|{ox8u@ELW$lm|M|!}VepoG}XGg9b+cd2k^i zj-xTLbVnp`CZDTidr_miHun>lA93$ZfUNYO@fRNcx7!amL3na9{G03HLzv8*z`#jp z4nbIhXQG*gMa)aNfU4Ckg+*BM1=!=DvHI&E3!0c+6BF(tFeXjHl*;-%_yNYE3&*H^ z+ZOQ2-UqM#`lNQj9rbvp!ZCPN(grFace;1i)>j7+NnzA6nPKKKbxYy!KA->*r3{aM z`maxW3W1#7j6gLNqFvnofyA2h15d}c40&ziF;sChqwkf3v=3#Tv4#|`aF@?ycF3DZ z_an~I-Se-Azg~UE3cvqiFj5{k~p?nch+@9?B=gJL5b>z^&LsQ4j3M^)yYN z!H5$qS6y-~=>=FZ#ta{E>&Mmsp-1@1oilBHW-Ymx)uA-G3c4k`CnM#a#(#F+zZPi| zsX5)wH%%MRal@g0Vje8ZOr|#Q(e;-5M`rE1>5&K(h7B&Mkuy(PK^k*=5T!*KeDYnZ zii7L=A1EVxVp4?H|1)kT5Qr&iVS3q7Kb68T@^$H5eQBNtbZ#`81n$n@ln}Qq^0y~L zh)OSq|F+QM#BR{q-F31z{ek1=&ozVWN^yVgvy2Rgp;8ee)o);l1%^b~v?riISpJ*s z@qi77?N$W@!AoD(OWe)^o)(s_la9`I4}U2U^~c|}>q78_K8J>eXQ4Oeh%!SQ?)f!< zsvkQ$z=UvAP2{ysoB_6*z92ti%(x;9MBr*%gh2o37v{!w!ijv2C!kpWy4q$rrH@D6 z{UrMH@WAVglWDxcV1AL+J1f<>^cDQ+CSlQrbSJVgEinDttw_r){w<8c238nOUpK14 zgdEfmXHR&IO3U-+O`{K0SNp{(jk_uBwMMLyd-Zp)eX_~Q?IiKr+GEcaCh z=Wixf$oMI;N(}=Nxu|WWf;tQbzUOefNnMC1mB>Yh2&7>cY{SL^ONUh@8D|)@0Kry% z!}ss00$R8W*7ISL%wm8-5wy5THieqNopDB>cr9+1aYXf2@Zws_48IeD7SL)p!K<)E zNon-UFRJORslpe8#r1u~Gl2k-7CSEdGz%KRdN^A|K`dW`mAJFTyp@(SMMPT6)%yUi z3|fixoqvCJ$x0Ec9QSy31hSyaL>SkyqaA%2M~}4~&y(pbZP++0d1Sd!dRx-7jN+16J&asvNC88Fli;iILb~p>pQ4L zVB9!k#tB0Duo+agzwFXhiNQRMpo&{MqSoub8wRVJS24g;9tHcM~7`9!=|oe z3Wcg+r7E4bCCY8<%P43gvW6OT;9Dd9bWb9{g*6MGPNy@x(Msq#`@pj3(Q`W_wvE!`%waGNuMyunBUx) zhkk$TKUDsYu5~C!&2TqDA7Mr0d|8ZSHu=<0)5n-(YE$Atk?8U2DCZvh7;h%sV-MwO+Bldb z?>PsNpP5ahe%QpMY9mb3$9OiEzJL8VQDst^1E|$hRbGYK@UtAST_>_c#!{C@t@&>C zU*?3bVnmI>t)+9MaVv@5Pm?KBhQg#T*{oN}U}%>kdof$<#{+8KJB>s3txCo5Rt=mv zG&l6}va3XX{JSG)3mkJl)oOgtG6G_IKRo&jHR{{la}4!%Yn?R)!n)0 zE+9a z)#A&a(NHxy{|6dq@);?2yZuUfCT>f$Qoq84GI9v1g+9OaUeFWktx#1t9*@Ha6qpo2 zByVHxejRQ#O$Ar}NQmnnNnIml;Tzuau1FXOy3;&)#q;OKek60v!yNg{xg-Z0-k{t1 zc+pL(jv)G9{m+#3K|fAIjWOu&4aQKT^kD6gMvyA)h0P0A^G8fcJNx?;{SSbJAC zX2*Am_`L1m%cq|ekzJ3iRzgB4M!S8E75c)ykWp{=6HLGz%y&sYC(FGt7~k4KyX%Jk zncBt>pwN74Nc8!l$C8(jr$sMW3LVmgPdRl3u(Neg;5XO zUpwK%Q((J$SfuVN6ahhhO@sP{8V(J3sXWg$?pqe^VSM3YSxNRTgnYX4(0V>OqYO!4 z4Qdl6_jDE=sknt0KW65}q@t23i(JzG=ydq??kUxRTdP61LWZC7UIDxFfHAWpZ5f(w z2t}IZR0cVVr5oP@!p;Ggi?Dak$8>pAiG!VKoP_+$QW6l^ij#%*xcq3KM(mt5X{@hZ zjMp0hB@MJ~Nphgcm^FP4dmO3cBp)L^GK=^1ZY+F2)XBJ%yTQp~CPskxHsh`yhzO~B zVaUJ?&UFN5a>*-WZ6zoM(c7LRA){!U&eyglYBTx9Uw6J`-_*1!2-$Eiq*Q}HswL4BZTMvEqK3JQbF-#6a_p%9P9 zz)M9eJx4cbuj}8ql(G5+uj-S=-AagW8;$1>{#*m@uiJ}Gyro+B^)wu)xB3UH&&@~! z2L?V)$n?PvRLk-{irW*A07&U@$_gMM2+N4vKjVr}1ml@>g-Agl7if>G6N<&8i<=_9LYq1i*qIWm;r?+vG`g~WlLztQuT!0kWzi~h__%!F1<>U}0 zHY4Dp&xu%~BHqHf-W2@_$Ab0$>TU|30-Z@28nYFC(bi#1d=bT z)BcpIFGd{_F15OQaG#1ZqFE8Q#aiD>iOL)J*v}tYtx7+c4<19-rZ<$;dQ)+L*-&2q zjM^8@szbZF`Xt``Tj2Y*U-Xz}0+YoP4Hcs=ZBvA2elGfsSko|RuJ7_i)e7kvV?BoB z&PTWJ#tGH9r|3f?viJ>Q%3zM4%C`jpCj4%}QhcOkNjgf8%5L-gG0CvfMM>J`)N!8) zY7Wh>TB@g=)g`xU98Mc|csGg2+LET|q_|{0eb|ubupLh6+vI$1)2-V?>M$8qU(PBO zfFY)qAazR?MRSe}s(-FB_}1-#sE*^-EKAbhfHqdM-SO?1UHJTPSh`0O5_TYwVn@b_ zgQQw1!TY|JED$dkLY_&}B8`N;?>wFpD=&@-Bo}c1uD^&T0k{N9u-VznEqAS1vXa2P zlPJc(D#$8U(dWun9b<|}GxX@FvW>f#{CNm+wxAA_SS@hNM)s#U?~q_L4D@~>kVw<` zCxe5UhDeiUya4(`jZohJ18rj#797>nJd-5EP-2Znn0iZ{;JFct*Yp`@R*+MWT@Y{Z z9Z|$CqBdF7i~f0)449r%c(7nPz}bH^<;ru#In&tTb5ou{o4nSup07EFTW@)toV>1X zYsX1B^~(-H44u<2292Xesqq4p0;`2zP6zG}17ds+;T&>3I#ul(o7>32VLi65zHlB^ z{pmbPgn;D9agyI1sxfMwuv%F=bpH}1`jQgBLq*C}q?JOnP6=PKh(f0UsbCJ92s;_X zU_tY~7FdGlkSg}2UBNOcL4DSjD_8m)&;5L2Msut=wGIc%sXy=a*ZxYw>kF)$d)+u4 zR4j+L*!@)PmKHL3j4(wX`e!t^5+d#*i@HQ+_=eO4ki+Y+0=gy>o zlDw`eU(7ribC#p%kl}tajh);4_AWIdJ18~k_XdgD);b6; zfp&8I5}k1rt~iWnUXAj1EhAJn9Mc4Y;llI#cU8dNL}}e?#e$rdlV+zK&CJ&0HLB&H56KWvxRi&@+J{4NoUq0 zje$PjvYh8Mu7deu&>nxoMpTf>uVUH(msgX#ChFX#WlQn z7XX-*fOvQPPbr1xHLU6#jZPk%_EiMDnIj}@Kbh@KOH2K*wk%atdU!<>U)cwIs=9K> zd{1i)XQfnF|BieYYDB3smtm}T!pI=KmwNZ)Q%YAJ+eLw*)XC3y4SrTwM5br%nBGRU z^+xGsi3c;7G`CXApVc;rJ9RYRi(>i-ZJsJ9+&i_ebqsUaKN~or=<4cQgqOG|^^ScS z*5y;M3K_Qr$Z6%9!MUuGHZyW5BYIuBLN0eVuAg<>QRvR|oWJcadh})=|Izg-tx4xX zWs8=SoM&}}2ORk2I^4!XZW05AvtD>0#(f=mpMS7W8MMyr5WJ5vl(MTek@Cm3VA(`X z6g{q@J)kwE<^2rEwz*{ZT1L*5zw~*60K9LY zq+rBCo6=!{w=m^0=84mX9QQi+k;t%0P=rW?dZG|rX9OU^9j^-)4KNq>=0A5#-*wsL z@x9%^cNA0hVM@!oBMeU{TE4BNdG%vbUHaJi-m>~^b!+;no-q&c*tJGHanU}_KTx$u zm15u3>`+csZMt^rOwHK;Ve75pqHM!=Z9-C%9Hcvjp`-*PhVEvDR6sfu1SF-Kp<6;a z2apz!k{BA11}RCU8-{$>eU;-ne`Wqn+?Qkv={ zG|dO9GPtzXcC`-}EZgf0Kn~m0{_m`k|7cyvR*lgPlD1T(+38@~JzT)w+?ORxYA<$2 zT#Zc?kJH!JRA4s@L#np0Zd~P^*A3$;cHREmnlqL?>N_W!5Bu5v*9IC02>0E#wpO>)4^cUp=!gG=~!rN?55ot4b-FrCD@Q0toXz z)nYlWIL{QMJ1NRjRSAIDz)5UY2KmP1QRZqYovXx0`hiiiqQ@XLLuE`r)P*sgG*TL(fZa*;tH-RLhC4Qwk?SYH;mz?!>>H zJh)t$yfo)tG2<-o2^gY?rnWXw8~UD>1fn)3%3-(um~cemue%DW9)-z zIauS2PkA5%Qzk_>_CuFa(8VD!MNoc;?=~S`!pcX>D%*F@^hGV#B|0sX0yr)}W?GV@ zwsCCel&j>1K-R$84KEsqnIe_L@CXLUE7P+6SZ{uCMn>83(J*CT?a^J{w;>TBSK7BP zb`T|$-!w=E$i6`j8iSWBhf+DM2KN2vq<=^+YTdNt^pD-Hhi_PoB!Cnk`GPf+aA)(q zHzjztK40ktV6^jccZzBlhEbZG6t~=F1+KD=g;t_0MnU;6)@1PZ4`#ZY9&Mvw0X5W; znX(o>xKci(18K?u(5EKdWQlMJ9UKaZ`F{*Odx$XFN(bQ^POTrLqbp>g%{8MLmPp_sCYc*|Ls1HZt!(_m9l`2{SzEtLN65DQ81JXBeZTOOUOO$PYq3uxA_)G7`OSi|u1~iL@{>XynXC zwIJqrFkS#JUgw@pOIU5h4`YP#ZgPQ)1d!7-cyrqW&0xH!Ok%W*Hpzr<7DH;$LvrR}}|nGyD(J?Aw$wLDPi1T*u}2 zg{w^?L}1C67b7S=_Nk_fWYMgB+z4m2=}j7GX5~}eOK1Zi1bXjiw2XuP;wV!CGJ}}3 zBYk}1=I*MVk0J7_&)bZ^aM9Z!>EQyyW7OmI6_dOa_He!RVGK z0KxRm|M-_O{>7-PfIUfFiIe8wwf^CNEud(6sw4BnH;)V_z&u_8X!)K}izqQN2)h97 zX?!DUpGW>ga5ZbzO^;>&{}Jf_{lmYQwDDNpnTv*?ToTywTrjN&he@UD>aPl5#d-!#06zGK9%?fiob=aniv-XT*uOQ>r120Vdws9TF0#Bw9_RKSFn5<0dOuXb`jck1dV-Ruve5WF!z97wGHCYTUb zI9XLMSg<}mez0EA{C4Ijd`IM0m4~7Oo3AQlKiJC|Rw?D}y76EJsg!gR8sf5XKd#0o z?L{CHE`ihwUn`R9rjC3_-!UECq8FB|sQkL)+eX?#Dj9fSf2v?H14uu-n(24Pl~#e^ zmzQ;o2>9}|>uu**>vhEmz&CFVMVzK~`V0&O1&@VIK)%)ZO#WG9tH)|B+o{~g@7f7| zm36zqU(IJGmY-ZZ`;YrA4VlS0`r%02od9|xs^!8&+9EOvbfP!frm4Hi@;RN@mX0U3 zBO{^92BJ{N!nW08+nbWRzF*X;R^*sbOWe-WtuqPZ-QZP$RF^IaUYSk0C4{NCp{wUR z^=2cs*v zhC#gYC=QIz>Pr(}>@iw_l1nl7gV*nZ36{>OTfG?L7tFE_UxqIJnL8SAr9%GvJsar@ z!~7%~Rd#)MGEEO?5i22mpQEt4R7cxGPAWL_ZI|waQ9_oLShcdR=bx6{3giZ}rF(K_ zFt<=J4vS5#{fA+m{%>;Gn^@%XGw;*bcUUs+c2@*YNIyrKN-C58_oY>XWwp-#Lrn62 z3?={956Jj5fXYaV?&#C4;dqb76jJOwCWDk35<`A@`{ZKJo$SXKda5)We3xiP!hJ8M zgoVD1>4J1CBDEi4>Bd}&Jf-p3hgE52uOc9EW8tn&H#VrYS0+pB<0Pu_WYoLd%}?7- zoW-tY3Kio9nK__soZo_|YJbxQ3_Z9sAxZ&d zV970k3?h=EGIIKrZC9gz=i%K-aweP^s--iHQGHFedE#jEVg37=nfY5np1R{bfcHjp z5WjE}xbCvrHTjxiD@x=RDVw@6t(nP9k5eU zTVH5)v_|`D=^7{)rd+o`CHZCp1)4^B1KGoOLbxEznZU0Xp&b80ed{I-RIYt1@BbW$ z`{sSq*Urz{#`z%663WDr#`>OX>H*)vYv%l%hh`1$(S@mhh(S)}TCRnQ_;rYkb@HJq zb5ON#T=Z2sBfIisl^D+~u=V%zw$PrhsAYfJ=8GW{4d@)TnVVT&9(1^~)Wczf zZ&g{sQZ7GDb>05c@D-9A&3I8XIa)?eDZT7fKVk3PByMS;3cBYERi+@7_cDVNWF2Vz>O^U z)wsAy0kFI4Py60QXWPeV5(^TZRq)FH?mMLd^5qU{S5i)&3R4CViTE|XjF)u_b#Nr2 z4O2F?PAMG0Qeia|g#nw2)1F8uA1+6kmcF%8r2j7Gl7JNK?XLHix|?gL=Y+62xb&`9k^SBNcB)|i z-``;ExJ(t*$L~{O_{+utTC@XPp`jJ{u}vV-JtlSR;G+6gn}SFjwoZDu_&^3`=W ztLociRm@M3U>3|GnIGWCtOL9L5&vPpr5E2crRUWQVP%h87*h?f!zm^lZU^aHl{W6G zz9fui02NWpY+$x5%;}sOUFau$E3?Hlk14|v~qQQn=qTC0tDBM3f3 zv>S&3Ptn0CM`>u(Ys-4r0eDfmKPt^Amga3h3?f)GREr}uifyXPn- z;)Nq(8iCnDJNxPH*5|(_e3)%ykQawIAJ>=2lLA#xS zqXQsX>6q!$0PuJ~sIsM7@-3u_CY!9ZFn_9M90VH+MjaFwz7cedomfmPOhieuE^e5K z#lEZ#9~q)}hJV(#WCpVMAzJ#kILoqpf8La@!HTxsiOEauSrn_A)1}u6aL*S(*HPbf z+r4{^aNjwr!F4_ugbc_UTrehD$LB19v;>jdYDa5fhMktpQ$&`>!KCXpEqGUsY?4-P z0O*@D`~?tTe|hE@;9Xz$dEYYpPlrdKhK!|KG4A>#cl%qUaR7at!RxP%!AaH#<&71^1cJ}7eE-MO2YV%Se4k9Xi98=pjy_)2Y@eiMc zxiiNeN>nQxt-j6=rAalpIX&1xi0r+wx+U*pn@Z_;stvRunW$}}g^0<&2n zyqR8{+*^$Jzr#ZPB|AQogmyZn<52Z1`DyMAB}C%b9mJH`v4rA5Y~ff5sAf*mm#DT0CYxlX3$dVG+4BU- zW!1e~G0lo0JG_|(WO^xeiDGLsi8{{-=mIk#G@*e|j zUIN%1lk22gvG$DW^nZyb5w;L;3}nk~W{{lQFFfgfaXHM}62zdqu}h;%y9Vd!a=D)s zE2SJSYh=^iA z0MT4p&woUl!626NOmuEmy*yVS9e)U?J%+hJd!^^_vC`PC;Z>68!ow?GM8AWL{4?WX zr;$j6-iWX(4nmA^`ewX>4l(&2*b+1x9|s=xzcMvbnNn*OQhZ#V_FFLuWW6B80a*$d z=kT-za!Z#2FrF00qqmnKjw_A$Kjlh=GxgN)?2HwfvM^8X)Bpn8DuVJgz1FHG;@9Bf z%6xylBE=k2Uc4^Q?Ze;8qI9Y}%zpoehdNNCjlJXYQ>~+@D26;i{8KNo(a>Ae=VCYl ztbFvqkA^0IXuLmu{K!>=aG*_XzO2TPhY1pZ6zYrhDkWe2hcQW;b+&f0Ug7^azQd!e zm?qI%&i!Jot}xP}+sFIcaNM(JPm|QDyZv1j6ZUI7KJb+_PB|B+LX=o!1w+Ppw34H3 z{%E~oG2%#LLo-hQdHCyRWwh+z)|gRxXp?*@PU$39psog&eNOP$-#qVjVmzaK=zb0r zS>edX(;<+Zp1ROTfEu5R%EicX@qQ%e9iq5-~aovEXY-OHW#XWew~UssVT^B62` zkax|pZVicENJ&dBEO$^n&~eT3eG%TiDbIDO&`44*8zHi_FAfOEGChszxiIeXKfd!T zMsK3wg6>aKhaRQZvktudZF1xKye2;%#mMEbce=iG?c0TS$00ed3cOkRLCMQz6zA+& zibfl8{@~%HJ>MMZx#E*MJ<*C?_XLnnZfoiFfI$O+r=G-)lxm<-Wg!;pZv&EN)8@J( zHwm{#O%H}d2CKuMDdtw16q9B5_=S;KsG2>{6fV{|Q2k?F{^8-z--p!!$`9uuRH;dL z<*-yZL5swF^7(vdZ#q*J1jW`&n%tm13a^ys;a;)^OweDhavOD>; z+>Dg5mGW;CD`T5?jBmS5+5+{~TJNm#Emasa{n-W>ORt9-|zRxm2Ghx%!JYA>lXr#rD$kh*cm!F9!^9*QBY;lIZ>2p zx0D36h)No)m;=&P0 zy_z4+4%XtXl7z*1#p$JuH-e|z*^#@H<#mgvMJ$@kxQgbXSAh+mxp&{=Kw|nRx4n}^ zkFFkOUvhtlmSgvh@0;xqUF}ffcHz?=S)?^UJpMuH*^KihcXG_O)uC8tqObc?Gya4b zr|r36Ldh+o%ai=m556U1sLMJM)fo-#cX;@l?mE>HOERpVZvJv;5v?vm=eNgFGI`#y zTRX5A3UndE!|hi|fCFOhD-Ww;0URrv@M-8>KkyHp;Ale->mo{GA{!v#>~d9IkCTz5 zY_Ri1pq85dPs+wv@-JJI`M+p?ZE*WIAv~^ejCw^>hghhutBhXd!YuTDW(+z!@N4hg zhwlPex^muqUa*S^9}SyOdiwmFQ58tZ@bo(r0T-dSNU;4o7#NuMR5?? zs!|GCl6ki^i}&Hi6CSu>7mETOj}X&wJBh(1*WX-;Yus{*wkWg^OZPAI4O6BiBwc#% zf9>B%QzmTK8Gi^AKvB33`0BAqXB5L_c;xv7N7*@;RNL=W68!6Id!+ED^qmUG_oHjLUk)XQ@q}I+WgN?jF{I+|0n}HuWC-Z^Y4^ zi|HR8&aN^Ir8Q<~er+1BHo9w!al12%tDO2K>#h;r5egNa0)*cT%2?`0N6A9cMRtp& zPQeyGydW2=>ZfKq<^M7a#}cq>65l>1&cG@2qReV zx^G5zIVz!wCmI*>)s5dx{6@$MyVfEjpZv)8J26b#g?kgWw7#V6yn} zYy)hi7|V$ohJIb$^s^~4JG-o>5euA19j5>zCzY8+@UeWgiC-8f-wbfxniHSeInnqh z+Pb<>*(pUwDT0(rUso-(t0B}IEfWaEa6E3d5uSH>7tGJd3xdFc0b;q*Vr*0 zX_D-;0X*GAvBC@a7tDI+Eo;Crr-g59a5}b&jwdqp6mEG2@~9P@Da|N$fBc8>Y@rt% z2s!^-Ce+c>7!ry=DVB$`(tUT)zwNt#-SuC1kW9>ezDk9lr3L$Jz9&! z3}!<#Psy)!3Zur<1Xv2&Gb{-n^byrgecP-u#v>Ff`M4NOk9E)%?6Wk+3{-12$s&gD zhd0CAhU0n>DMKmyzgv03igTSSP14L*s?`ijrAQZ8d5mbVOtUl z_aTcISCi&nBEqGAER>t~w?66QYe^95|2;y~#-yG(Ej}`Q!%z8HW$joM_8Skm)KV@e z;b!c8f@X2>exp^eb@W06HQ3Vfp(*iZ&~fg4b$1OV*KM;=k@nT5VE0Hy@A1Ir=O_~_ zZdutiHN7ye5jeA96d~?3NCHEKzRob!%m+GVb8kwU`6P8p6l^Pi3!W6ZsirMZ@^t3E z9X|~8>djt@NZ5?Iwp4YoP8TndYeXv4Khrtd1BwRMjgmdn$e zg4w83A$_1K-9`K0WMe#?QLr+k3R4d(dq}LC9aQoXQ!D!e5Wy9zCgVzqwaVtIB+QGs z+#S{a^&duD;Lxk`Ms$9NgsBB{Fc?e8`xuV>+r;B_%Srb%FeXPgR(caWzhermRoMaj zk_(udt9zCqJ*z+C@f1G95q*HPtEK&xjeSa6(;F&eSyT4=Sks&51viISX&qUWG(u$zha5h zi)G)_Tj}#xq(Hc=_su&DIuf|Lpg@T-Up}dJdr7X~6B*ASViM@7<8*=2TXiOj4Oo!jqV`)n6in3P636HGL^k`-RC zx*_Q*-t<~}g;n^9ukj4>+vdGu*L!_4Sadq+Y5S+ zDFdg_t;Mb#(?ErU82x+#GznEI^NYTkL79xoNV&Vwb7ysV#Y1-W`KjtzPw~H}30n}$ ztNpyE%9+zyEJ(K_pn{Yv=JPF4FkaflLu#_gz1EDWXDoHpDSxFN4Y#B$_du{uEndiK zDTQYA4u7tLX}!giE+Kl9X^jvrQmGo76()SW(=0a+^Xv8E_$+cKpkNsl^d)xEoe_^y zk+3)cVIFx9u=jvzpqkB+cwK52@#|xl5$_kcf__%=p*I3jo&-TH!2MNeR9V-ErM*XL zgv=E$KCLw;`|z?Q>~T?Oj3R$)vsq=7P$ltp`JjrocY*wk=TR@nW&uurmhP|;@U0__ z-^br%P$PYiZ{5Q|b5dyj6N~Z&XTR9s=+144s?VKw@`F=#)6&;D4n{RDR`TVR4{%Rg zGH_629)e+_Ajq*=_5@H#U}onyFx9)RCCW-`6gX>1 zvb_IOEGuQ!207oFqUXJDqk)dbCcP;Y%Q)ZmG^Qt=oV;d?PC&_^*H<{uF_GZXhE>u>mTqJ1@px3npy{tu z7oWM^eZ))4r$1h&m5Y^N(B32CfQH37xQG3(0u^=#9SN`1UY_St0#ut9a%z=|9_ZGm zJa`te*X!-7yP7X9?~N)mXXGg#g@fkFn`=Q|oGq|?Pe6-ZBis?w6~{Hc#D4X~Q?=Eq zfJ@6SV!NsA)r`peyH#*scqnO$2yGsrRfTyG$iB8($gpB0zjUF_0O`4ScVGY4>F$3t zUHp)iN}mQBOF)zL1(0+F{0nL(rJfRE7L=ER3d$c^&APtR#WPK|e=R*11F}AfB^b!B zqncvVh6N(|*S6d0;lc$KWxm8NxsdAY$NB~hP7RjzjIUurO0a3eh-t=W{44y>&HGL& z&eXWR&^GFm{iL&Y znB7#}DMN0MF|RP*`$R9tKo#TmZPyT@q4PtvpS{$BQOIkaX?rdn$8B*o0}2B@-R{*( zYVZ0@&oi~TWc={7-3BJvp5L{Y!5D%asy?ZCp~=2(4=d7(O4I3`C3B@m?;8Yzn_1ee z1L(Gt_@u$JW{$}LXB#N}otnbPPqvsvI!F3y%)-Rx4MF^V6GaY%fs@bFT`pXX)Ta;n z2C2QVhs)br%KtoQVQBM7PK?t}pDMG}<6JOX5=60pEp@FnpgpUb+|82U)>G^euGWtO zNktcA7)yaGK4c0`KH#9CQNh#grA{vEEkwOjprC`O9z@Z*v)~P5iPEi&2BLUsEl|@( zkg@L8Nd4oVMew`V>&hP^Onq3Qjny9kpRTwq^CrSB{zWtMlepto0r06ItS#20t`Dyo zJ#1B$i=)|`&3}xTL014z5s=gGet+$v(j5J6cHy;b;h_C%Ust-^E-WOQYt24ny~1WZ zkB8U!o?3r8xG=gXi;UV#RRt59fqUoJdliss`QHWN;otm{hWA&p8gpPx zVA@p2(WCL$KrHKYDZU|jZqq8%@+O&T-^sT6tkeTZJNiy+aqO8^yElWWbs}4CNkA`n zxfQHfd8eqG1bn$TUB5N}1zyM3^IV=7FHx_1o+Ad1CEHaSv~`V6<9%2Iqx?JR$g={@ z@c*2ZeO~|csxS8VCZ6}*W+TI{rExrnGzcDLamVq_gd>Q(bV0_}%t#AJIw&>YIkz@?_hzk{8<&au= z#y)bkGp2~`-Ofw?MReYELqoTn6TQg_n<7(|B82;6KYvWdI;ltlU8m>}? zHdFERU*Zr7)e~2%x&1R6Gqt4v%KIF>6aB54Q6^4Owa(&+H0h8VIY`7KPy~*^Y06cO z#d`aL_yhZZnf;1?gu2may*ibNa(B5g9Q#hzVtZsqp6=aHC$aoNz=QCQO-tKNqF8MD z9nFZvCv_vVkko_OHZO^|Ak@3Hqb(O{b1HR5w{H4jaAO1K&nG=17lz3hrnZU>0UX-! zOlZowCSH={>@1~6+qtFJ$IRl01Zsy^HBfcl0XOT|aeo)BfBQiX4j~d5#6*}!tXRG& z6{^q6TM$PB{s|EhO2c;6LM?YKNKn4jIra_&H?fiKQZ|pflJ`*!(XjgFB)>3MPVJ4U zYvZDEEs@GH*dsc7YL(~%OuYi()G{ceJY;uUHBsUBfckPrR~P9%2RLocps`=$(9zA z`=ZB@O_n~8=*K#`nSs-2>3&FLwq7R4Ol;OJDa`FgVK{ME1}m;xyi71BvqPHE1zWXz zbp@ZZnISv}m?4WXR=INRvc6x|&j#dkSKpgn zfGN9lWfjINH11AO@~d{Vb}(2jOIT0Nni(LP!-5~6=qwJ_Va2RpsvXwFTHUR6u+c8?$FOx!DjtjDPej^cC15eVA=Q&qa%3v)U8sdvIU;p7A3smFEQRo!vl7?=Wr z{6-FyK3=0HwVvedH~veG$wo_5*Tu-;>cODZmiOZIilPIbK{~;ga??k0A20R=d-M;> z^wo$l5$(S=hTc7+E{a>L^U&wWew(CDMT*3|U&Q>O{_EwB%P=sJUU0Zto&@red@hg(9-~?8 zlO-Jc%MoG?!?jM8%$bj;!)^^9W&VodV{mP?O2Y8qvW`+F`Yyc6T}t&gPZal!#abm2bCOlA3MxyUC=9PYO)hGU4F$Zh$Z{heK7GG4PvnNi4q+_qC;rwo7v|76r zYiSO{5F_Mve+@(-IzO(bRVz7O9`7NlREo6BvcfkV?Im*2$6zk>_9osdWVJ64tN*F@ zIr8oNIS)w-o4H!7#5_zPJvb8 z!W~J^-L`=BMAX%&3P!Rg{d)l~_98;6#J*D|9N|aY`bj`KCAxlKh*bf&eS=j9gF-Zw zwJMJjnh{0fOiVENH6Tx~krAW^$m`ixZrNGfk{N+Lm0(Nowp!aGt0J+8G z{RPrBlhk?wDM+OvSS(*@s<~OU6BdjnsVbqOAObJNa537)vwp$Kcs2QM8n-hv^9@x| z1$qyK#AGCNML+OI#=n%(TG=u_Fn&#qV9nA`rh)xDTUUEHT0;Z)I425G6rh{Fp zuEVo$2Rr_wVYEdDfdO-zKDM%?dnh+nT?mD#Xy5ngexsYWySqMt!0ipWp` z5-z_LURR+P_cIk;K*33WvQm{}-v438Fla;j!LfzNcW+|*Fr)|dWEiD$883dYOrbCw z{-7z4?M)yBo3aIG?m@3x^M*@-JxM(!YT9YCiHVycF1l_I)G8j*x)GbE*JSeKCJUXu zeC|$(+oiN+71Hpb)^XTZU zTe0Sz0O92deKnVnCBN5o!lXQtbua^Fd9mfFO4rRk|IeL($2?X7$A4U|zv#UWzYMlc zth;Y4H;C$#DFgY_Aa1|~O=s7VcCT zuA}K2AzZ$C9SpT?)vH1{(c%y(R~)-pzI^Kl(EnKT8_)F=QgvrEopd+i4c?gjemBr^ zRe^$SMD;JplaiGygkg|io*R~R+9wSXO~NR7@XaLXr)iQs2YAXRE^S?U&*fok< zokmHjCOQpVZ{!ypldir%HfSm3^*~;P5_z5y8w${Nz8~H{YszX($hdxWZEnPTD{6u$ zs!dOJF8`}Uh)q`}oke`1sIzqm_VXbW7}r;zI7P!ng*>uoj+l~u4a#(WD8xd~1bcP_BI5`z`I07Oi6}C!~@Q=N^FA5>?E&Q3G`?qznHO|h9{9E8586m z)mDh5W;{o+`cC!dD03 zFP}0+{Ps@K{dx52V^BE;2)5B2q*q$#R;?$BhIonkmyWo@4jb9KWBrO3)EzR)90ltE=3c;`J{=Vi+lTY6r7PyG z(tj9ZuK=^Q%o7qladB9vK1!`lxH^FG(x|3L?Po%xvEmDKvj}MERAk^rHylnVR#8rI zGzZdCRQXk^y=^rZDx=L;_Ene)1lI{6YvZaRaWVt0MH*#O)wv&9A^t|akPb&>h@rdw zEufOJTr~)ZZO5U~{dzD}V>XWr^CEfKf;pmu$%JdwH7|7?*yp-b&PupXJw}z7pQ3hW z`UD;ON}p){*LrYST%Vj$E1@b<>y*{f!iiO3)H_ou{9HYl`WC?5giJZoYoO z$fC$cped>Aa?9{9=Y{u{8{1pRN5r83e6>=vu74)-UC?!oQ#$Qz5b4Mor`4JUT;JEW zpJY0J>8kAb3!ExtP_NCSoarNtJ_t5^MXP@(md$zamhh+hy9b((k@J($N=1EkNMUKH zg?}aDiy$OqRIcodTo%1yV5aP-m&TFp@_Sh@coP9jY+OpZieJzu#z)r?#=fY2fej4A zY!F{A(hF4A`>PBcPiWnKwb=;Adq+(~Sv7{nQIKeJR1){nwbLZ?hd(BSO?@@|PMNy< zSTAj{;@-PbW%L!I8h5lq)BcI?zUZx_TN;v^`WUiED&OU3^V78gnWEKG*2UQN+(NXN6RccROQ&+vXZpqD?DgV^D`8-w*(ln%KGL`pp1f&yamse&IjF-7iYNJ$!4C-LZ3 zdt}{AbL0V=*D6{^*kLf@LXj%&S5dYb=i2HT;P8G10&opF9-rh!DA~RvK^aQTg1H>8 z=?_gs_Ot*NrlNzmUW|Do;lmss@vYbk%9?T%RehZ-GgD+4>iC!kPMTSWp3D2by7%oJ zz7K(GgGXwjT2r9c4zq#2T66#E@oGJilIw^g-N|&s;y5ovNnW#spGmLgveiG$rQtse zqUwDwMnhfa0@~zc7+HtX>ez7V`dz>*KHsPr`x9DMgY6RPNEZD9-jk=$k>2~a9*|;) z>-O{?5Cm*r<>N&cm~oc_=gsuUWM3mn`X0lpmwieHZF7b%COJssn9rO489-eCmTC6S z9bPh%3fL4FSjJxGKPI6R_p23mJ9nj=Zm=i2+&T^>Z=H@$cjCxMS(GO})fKGd6K26G z7LzYgI$j0|f`!~o9p*E6Kk1B988o}ULutE6R>#Oy!wsb2>IUI<-vq1cZ(J3%u%me7 z>;9hBagDf~N=r(a=IT>@digw7gX%u9_zoEFrvjf)KA4~q^M<2FafsoJ=c+IH(6uPz z7D{iSy{TkLnPv!Enef>kI_HxHw}hXSf-mzB0uO-H_Vaan;0@Vmn8YwIwS1uqC~(} zmuJ`JdU-{)RgOVXtOeB;)In_DyZ!`fM-g6>4z>vnRT{Z%ph+Zb61&w4?YiS58`@sR z6)W`WQuaYW#5Qys;h8eP_%R{oK9|XFkx=)ZnlsK$Iwjw2Qkf;`G5&Fh#2bLCB$bt=?OOuGAy%QqI9KsB?mH2^9<=FwblLAX2UYw#%u;O~L z;68Pi9mqvD69YSnHPtrgz@SWgN3OjPC9Wd&_-<1k%XHC*HduS`JY<_XYQ%mOOyd7=d<-~wYeRgh zA%5m#ocW5fZ+GUq>(zZG%NlNC_H+Bge|%Hw1=yp7H%_cptP$b6NEBRK$9N3m_6K&> zJyW`vjAt_JDTu{ZJ2uR~A@E!5e;CQ*CjmXbeI&cB-nm({rcAhz+{E24Vw*=9uF=!p zwZld1SkjQm-qU(Pc^4JBubiZ)KSnSS{v;i7%sMH%Q^%0{%^r5SRp{(MhxBB2xUA6P z8_4EoycEMMJLCD5DbS0xv(7S19l)~Ht!i|WXE$Y_MVHhG)%_1+)d=Z*I!KSZ@|pg# z3|p@7Et`wU!#HCMh2z5zwBE_AuJsScSzyw<2sVvi(NUwdhU0GFc$5)h({k$t#TXLx^lga|X zQIl;#u7!wnprt(KR`V8$i`&xG5Eskg{cfeedsrS<2b5ZFNN-}abL)+7&rreb|9%pd zNa1E-X*F7zhi;lm0gB(W>yCfZ=CK(6NDraTh04Thn8?@jGM^9daqTp|_v7x}UoUT~ z5x2kWdEq655-=0&%P+%aeiZv-gr3H=4~{hi;yc3WG49h>$}qpmW!Iu$}@I|0fS3i5dpP{UT+{Sd!% zzvLF^4O@A2Hq%ELd&Ntm?0i`W4%1TewG>GRLxe!X9YnbT=7=vEYNU{Dtc+K>wy}xr zq0m$E|1fB+(y^(2XJfZI9%=>-e}SBWB|mTb7{HRxrrQu&+|(Wl;GKRg{5{B>yW&X= zR6PgUrhVvcXHLRT%1GLu{}ZMcnE_lBDc|b5{A;4G%gwLGd!t|XABOZoXb1$K3C8H? z0c>XbSX$#h7&BY^-3)&tM*yl>*6;!ve-~s$_L{Xi{sny^kpq@sWj)NYiRQ@ttxQp! zC$cq`z8}|-t=`e>LvY8y7t>51?p)hLxz0C1<@tN^x<@N5$WBMZR9ECUw%i^o6jzuC zl#xJ2<)=CA^(4+T!Wcgbkqo8Mj@lUUol1y+Aht}VZiUD?1~0E;34WMCI}$?hn13l< z(HV1%Cm-Fuf=>7ImDpa5Te9oBMKP!h6~Kk1B<+U~MeVU0#^N$7v)AnBJaMmb_`0b6zEGUi7@qobkZOW~C1EVX#!R5> zz)uYM{dU>B$4>nR(}wAm)X3&Yt`bwMJ6^g<@*6~$>}V0Gai!K-TV_< z^nVzGZ;3fGKg3vZcPv>{iiI$B8^{&Dumvg?KsPZ%t${!wuN>*!KsNX?vKk+R^?Ahb z^6N&1&XN&*_N9@_*N4STj=3`-`Syt4{U#D^UdZqApkz^Jf#EN5u1{cF$7k`{SEdj1 zmHg87S)uAQZB>PdjoOEd0D( z5!O>^t%@~glcr}w7+ZP22(5V7>ltwwJ8)D#|7IU%@MYIo=i%fTva2)?o7vhtLOO6I z;A|RYw(k>lw>M7N%yp(*Lu(5wK<#*o2|;u;70uLHBfZ@6F|Qb#0wV{Xp|`TGD? z^d@g*9oX(tVe05r_u==?n9~F%3$RzcOR@S1J@dUq<4Mle0S6G zVs}5Wii<5W(a8#l1(z15)#UX#`B=R>`;NdodK=Q;Mp;@ zWX1+wOr0LVnRu7*bX<6ptC@KNV_%MdVf!mb&!6%XX?pPyHVkEb7MQRRs^#3Aja$a? zyQ4IQy3%nvQJvR4CmL{hLpN1|?o`I$xlaZ)2YzIBPeMn`KYdI73^|miaK*-igBcNN zAM|9E?8SWp@&*R(uObp3jINR7v`t5cJ++&Noc{5i?8?UB1M_Rqv4@_T*RRdB)zVsG z+Zyv)pSG*#>)n~u4mwzriM+2Pn2Ys$amEIqa!YR)Xw$47ZNo_!@H zpivFruVf4!J~Q=TY9)alS>I;{^toK3*B%9?+T=1C9O~0I2sGM!FcE^JrzI4duBS`C zdUpM=`l}oJG~@?()7129+^1p4Qgo7a8IA*K5*qa|o_!bi6q2*t(Vlz`NgZ|TND-jQkbIZFq!(YL=x(935zeA=n z=DAxJfjWWbccT+!;fIZ%4vBW?!mDW$aa5fJkx%6_ll1St2nF(U3CuoxobI5eJp9QF zV%bknU;90oCL=33$w#!5vj6Q=@jlukGPRLcoQ&4#c?F%Nh?SfQZqY_f#qksoZ(}7l zOr;$XxGy$Ys_%P%f(>H5*Tbi-S+A;kyH-n z#>ii8{614kR^%>wQTB%b4lgpV7#<^()WZo-++b`IRNifj8e@ST`9qh1-On*pItG-g zBk(+6x8#>xk*8gWHp(1lL|tVg&N5D}KcXD#%UFk5D)uVKhj+W^Pl4yUlen{;QJCOs zr5qFH57hajH?GS3_%l8u$L<#oc(+tgtiQDR`OZfChP;mGkyaV#P3^Vb0WUj3;!3q7dc#MWWmw)ofXfg) zUjs^pt?^S8eoxp`zlsu=p)XSz=5fYW=8if_X3JLR{i z$X|gmnih0;z{m9}Ek+JgIhNuB*1~>;FRTUcWs|1Ca_t*}Wp{?-GYMBMuJ4K+j`>Lm z2g|z)HjyY9rr<$8jls2+w!rQ;HDthHReyA4gO8^FM&3CM%qxRZv}==>Oho=y0G$eA z^|}jqSTIf$RW$vdv(Puf$@XwVI;3IEODP;x5QDzJaibazSh!9-MRz>~I-2J6$3jT} zPy$K&{Bczx5!qQ-h5L0=MI@G6#xqEXglTc9Xfom zR4^|msT*<(4H&HfTCIK)w%Jb-s&Xfv4b6As!mPYk?5hL&SR}@ktp@uXuqY{tp_QYR zpMz3G0U5fG#Y0tVvuyb1AyvT@C8@C7iVpSb{HK;GAc!zkNSpv^J1w7qpZsx6m_*# z_{~vXZdH)T!-EL9NX)*U!~VVqyMtE^9M*<8LaTCuL&S0`@Npby$C|I&D~9JbDw9d2 zTwg;=nb}LIa;O)IOVsQ`B#Hh*t|UCQZv(f~nV^lU&LBso)ioia;l;Ns{eCa*{>Rup z%}_QcbFi)|f=xCQs_*HJA~YWgfP#t$PCVA9?6<@J00D~qQab&F<68ZYNuew&?5FJD zgY%*7mCbr`9ckCUhAN;fBZt&5FB0dOP)#{_fJsHK?R+@(fFx@fC8@P&pwqDUKmZJT zNEh{=U_0gyTKgJP=&yQWt6BtLD^gU3T9Rl-PPuCuAlX1Qtw8R2oJ8K+)F^f2)g47S zF6Budwa4PkCERxALvrgHs1Ld5yY5W}-wrB>RSQ}G2U-sk*EbM%ugiQVgUs3;>H}wc z4B`1#gn>$hPf__)hF%G|%^tm{-$m4=1Y_4li zE4ip2Mnvzt^`KZ*d#RYAF{i*(sB$G^xgv#q9uNM<_k2D)M&I)T%Z|~i-3a|jN;ouF z)!P-=?h}!~E>%xI0hOe9?Pq(9K}+-9#HX{S^!+(M-F!Lck~3njttY?pj;$rcI(@oYPD4!-N}MZg9E4l5M<^_p5_)aNl6-vI z{pa*Qcoxq^^BtoC*EfGxSe1<~c|%gKB(c0+oRxT*1&ug=zkNshdF5Q#tLyuFPc>aR z^{y^0ZX%3HXwJZs!mA{6g;5l*$^H~(^u8#h^;^<>0}hGixgvYNQfM#cg(GEonRziN zsLvWZ$M7Qhl6rD~x}GoJq?zRG*sJT!H$%QR3MSSkH}O1?I(m!)GSR(q6cH%o-k0w= ze(&Jt%bZxgsipasP?@YGbo!mak~t=Nxb)f8IP@GjF3lT#u3VFsqnNM2~!)gpg`isoM?Pb8O;rQ`6qlma9>%7GarB$i1K7Kp@tA5YU9!}>_yx#9Nn$N8~W*KvMZM2Q2zeLa-wjHWwz z8KH^UKV#yGMo(08=HI<`ROkLpujS5`)~tLxdnE3`@DPH{9-2^6!!+*wsnaNzCxeAQQ<^8WxU{giBfEi_9QnhS(dOBlqi z?im(VW@ylIRcP5HWnZ=Nf2p2G&5FLVZ^~UDY6e7f7KP!pFpQ33?u6ZTu}@%`8Le`Cj4u~*mkzm}F4(#LZV z7IKv$Qn5xP0c2K#jF5U<8Yt6`!T$gU&-a+^C-T=x)1<3`Jn=*#TZaa&tg4(|CLWU@ zG5U(XAIF|P&5FL;kIA|cNRvfp95O_aMF~%ef&s=Nc?yv>-s*&?R{D>#fy`~SCbmCBw&E5Isw02@D^-U_u`^0 zc#2kp{Q`saV}JkvHUpr~0OrMCet-wdFQC|Mo&n8@zW(i-JOi5*ef^s}1Dh3n{YrMt zo&n8@zW(piZs#>Kz&Wv3-}y(CMJY||hLXs+X1HRctL=@kzPnV8(4>l_M*>7!GxTJxI*@)Z@r*rgX z`s_SI9zvs$sE<|XuH@7-w~?WCp@9HU zik07!dWpk}`t0ibKHu2SBIdYo_p%(3_e$Q|ZQjCyslCXy%90^csJM zi^`D4`@fG9i(d2dwUns?%5InAkzG|8UV)_HBxM9KaQ^Zo<1gBYo-FewY*p{aRrBxx zbn8ZV#J;pq+lnDE@<({yIXy|eXcza(AEMv9_&q!sss8}V!@aVe+G6oayne93q-glO zvP_T7#EBoK>mSAIdY+e{zMuD*=UmvU*nh$vZ+lqTL%@C$E6!dviKLNHP?SpiQ%urF z`^i0Ce`Az+bLn1nmgyunH&NTh7F7UBq)Nb<6?walT?}mUw6ibm{{X3+cQyrk6hD`K zcAZM`=N;4YxggZvr)x zPRLkCC#k_12vA+wS%<;Nz8~A;{pSqinXyaRu0JRBG@dA7xDK}j{a=!rxThuIz&MZv RBh;7oaV~7*Ik8@k|Je!JGTQ(E diff --git a/chronos/static/js/amcharts/patterns/chalk/pattern1r.jpg b/chronos/static/js/amcharts/patterns/chalk/pattern1r.jpg deleted file mode 100644 index 2cdc0a88871bf088a65748fbf33dee8ac9cb21a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 113803 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%0A!n^(1djaeR(~(*H+Xc9p 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

@s6txHs}1$KT2*`FS7^5jx0lvv9)Me=3 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 diff --git a/chronos/static/js/amcharts/patterns/chalk/pattern3.jpg b/chronos/static/js/amcharts/patterns/chalk/pattern3.jpg deleted file mode 100644 index 80611ba2ac8b7fdcaf7461b2bfe187b7f4510d46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 163966 zcmeFacUV(R*EhNW0Tlr&QlyAtL5hHYfDjb{5drB0Kk1GKH$1}E{<+4}+@QnR;{_NJzIR18nWvv-5HjZCB za{aR&Y+`@cgYD2i>%q?UI}bKF_CI+mb^Xi^I1k=IiTu2?23Rw|w)Gk~Y8wLVtXY6> z-3Pc_U!!9U1Gj-~n>TOXvU%HWI4=E8>7)9duau0khTd!M?!;tTuyhlT%|gTsHbz#0O!ajciQ1AqW& zx)wrhWpTFee664|Y@=ECL!tUmoE>f^_XU*s6h||mp1Ay%q_#UBBEWhkkN;-d7dlTK z6S1Vh?9M@{K)((~CmQDne{zhq+Bl+@W zk;XG_+g@UC!7Ur8g3BRe7;IV)8_8B6?(rV)StFh$%U`=Dn(W9c7BN5P)Xl+5V{p7b% zr0med$Km;(-!ipV6yB|KTHKrsi0?RYK_70hqv!_ zMktqG-?tRc0`6p#5k}?=Kh6~o&%syrSRL4z^du^x1%~rn0&o$c=0ZIMv6`9s4OK> zzF?+y>V-0ds@qP{$Zc)13V@qn0;eEa_yn{HM>vQjGJNB)tPYu8nq%lgF?N*+=)DOXF9`gk%-xAo%#IGhjlwfh>Uc z76R89FhH8d-Z3GM=Tm50eRJtC@_ZcrU67g6xs>1}()?lx>|?tL{HxXDah18Utut~W zN=+SpIGu>rrJ0;@tm;zX*bEEUT>gTbbzsM1qC<(@BsOyyKjI!h)%+lb31$Hb(IhLv zVlYJE;7K)mZRv$8+x$w)x45z4FP;AGGTTss$}YjuO;dz=tZf`DqG18Nb%#xg+7xQr zjeDSuEMN=$8+LS0-YXBU5@Fg$vckv#kr#adDlacqmRm7zF| z5)qbD$%dQM3WymPt4s)8$2Gmh0d!`2 z=kT2Jv^z|CV?8H$Tt>aafPd|A~XqkrZEBnUz2mI_i2c~fI_<8 zHC^HM3Z(bpI;a6Bm^Vpd#f0RNZmP$zqj*e4BHOrdbA3@mmWQ2&?M(YJBbm+{QL-96 zCQemG7TY~&w8M*d7GX&AH45qi_>nR$^QKP_3Blq66Tj77BG>3r>ZN{X81~W zp~V&^9q*3{a5KcUrP4gKdb7yOEMSOCNMT6lKZ3=5?Q{1y7OGn(|DwE(A*exzTxrT!Cc~Jwzxki=8314Megt3>+^@Awd_;(&f9tz4PL22capH zgCUVCtNTAL^;ZwhG4Dr)`RnS^c^-H4S9cU82ziWPdOFc8;EgMid8-F9Gc044v8s7? z`P(Q!f4vzm`d0K|X-Mp#h}H5$wNtm%0McelM1O1oNC@IX_EQlywQLG{P# z;ptm1U|Aipxq_KbJjqE^`2ez7MIV<{l_u`W`w}Xj!52!6yhcw$ar@Ywi?=4fhLwdT zzX)U?@=x@P@6_>Il+nYUeODAUXkSL?#xo>U#6W!q#c%Eyer!FO*e&ZW=f**b4O^`o zaC}O|rhmcSGLC4ye>BALBD$FBhZq`_qB%ISY( zkZ2dBIUT6NrR_gRv5O;(F=S^!b$SA;#uSCS_QrU;mn^sPeCfAO6{}M-C!W^gX*{4< zzykE?A9U{aJ0}+nKI;13wvy4*)8MWm@Q^-Lg=rtg*g zsJ7yHVpU1Czr5*dJn`Xe(lZt?ABVk3r^I!ltcvm|bsrn+bn?psdd9Ffo1vI~QzGek zD{5+YFY}RO<1@2>nG25Pjo9-qX?KEaqG_n_>1mEcsD*-27qLtdeHCpoaL zzo{Uta_ps6JSU-Tai4t~6V5E7^j=7TZOfIctbflNT*D=p*@49c7#EXZsw`ln;87f@ z3!A2I*xCxWcOWN?Tj-OJ$6(8*O}NR&$U=_=uS9rdGS=95MfntY24Rj@RjhvLbN%Gt zu=Z5QC`Hj8R1&L+;-6+1BE7cq;dYPiIvPNpla-}l!;3hq(&$CmJK zOQJz^c|QvvdO+ShBk+Kal01#gnPc(9(|qzdeEt2d8jQh{GE2dbr;T9SMxykeUx$s> zEMFPqd)MGe9r%{6mT2uTXR&0my21k5`|_%mMr>gCp6Qf)jJ^F$_bSatQO|^CGKngf zB0^fpYQ*iB?ukmq*#yGQZvDK_u=4j9qkK~9zzpG&2z^-TD$|25{c4(P)Cyx+Ue{eT zEf=D;>*4LG{U6GsDHR`3EAnILV@w3h6}rtwgM~5om7#i3Sdoyy8ZNdTpp9{c3$ZlnD-CeOmZP5Vt zmAYurhY`(FnJ0r)L5;ScCjOmZcr@sT!c5V?w1xq^`(qctFM=cYGWYJBo9``|fGpm( zxOlS}K{Jd?P)Sg!cJuCcT4JR1|Aij~HC^||D22AO2}9%N%^%)86!FZc4?gmqK_*Vq zWIr(Wu1KL2UsZW#NyZ0F7ZWa!Md`hzAI43)bjR>L%SE`Q(Ds#salL4d;&#U@YvenL z+R7yj$xQ8X4HP9LKa2(3Vw`Y#e6@0rsMUCRx~iqvdwToG^@GFqr7Yk&S+Ix&I5550 zzKC?H^%gg7#o?t3pN(_HPnQ=`G>vyHfXtOp9%Up+zYi!Z!aJe^PL>Qiz!2kd@wAY( zp6`UZju;%PGrd#iQP7GSU)G^C0q2?m4|1T0AoYoHwqYLAaSXGm*ps}X(%&m|rk;Ev zY~Pdn^(L|6`paMHglfS@0S@fkZnUdapFU(<2PXyRNKuSR<Lx0eR7v-+)l>`Y zJAK}!;_1DJgvvYZ#W{i#Xiu?W&&kS7$~~Zx0a(B|q%&t#yuhSdvTgdERNe8H%7uZS z3o;B;s6r8-F7%^b?NyTrSE%|X@|5TphiN+q3`N;nVD^HlV;V*M!BOPdRNQ3hFm0D4 z3Kct3^Z@ci&cokN3=|v>lZUqD=yT&2JUQ=q^LrlfF5MM@dPtM^^kEGgS56_bqNx|K zFY@e@moA5mR)&e6(k$QSaej{jL}kcFXgc>O;ggU164(Ki111Gx5p}f$ON{JI#h~E& zq`DfM`l%s zwa=9fPvO!P&11&iA<$*DSO7`ia7=@JwN7@?+hGe-#vKvIL?=2{2Pd^>O|SqptA)oQ z^Pbm~-gh1wBTT zY08D5W}bq~Xnt%rB!3iuAz=gMs#n~2vj>lR=7qRwVLX|!(M+D16D*)V#>{vp?FKB) zu58>CT+AI857Dup1yK2ziTA2|vsQ;{?%vi=U+zYnwntS_r$od&Z{f3jml-1as00I4 z(bJl%(dMsdTE@9y7G?c*+J$vQ>V>Fk`TBQMRVzGIlLXd7J0>5m6<;1tlFMj6Fr$34 zzZ6eedV-=DXEudYgNugLE`yXu6FbK>(A1|pxW;>&`iim!QzC5U3MIicn$;3ybce%H znwcD`veGVU2_KBiucO4r^TPG`2KFw!dU2qrE@Q zc`V~ssgODaXB#8eCc+`Sl}+G&io11rfaF!ODA-TelpxA%_>VotAV;60_hy&>>?`cPZdEG|iPj2mWpz&}Ju zc&1KJq_Ouc5_;Aq&$c0FVepoEkJZ`uk4En_) zHoR)YJ_GN}&7;Ckc`Ps9bp+06Lf7Cv5js=9I_f;mM?_;yCam-&j@$Sj)J8P7v=r;NwU(1IL~TG)v?lHod;Gn%NT9$56LubU>FlA~y?)nnOt1 zrHH15sg`FL5eQmIoaB4~jf+yq$&Yh%Kq_GdY?NtvP-yUAxC?$pnFVA_u8L=Zn!WH_ zM1qs)2V6`uvBJ@SP59I-DTKF;szD_5H(;0h{VF0Q8h3nPj;E%PGA{^2c(_38m6+=#>wQHTndJVKvTyju z(tTVB&kLM~jc2g8(lv@5oG#gsC7z{~D~r^I;nFbiI!_b*BXeK$Q+%pI^cWfBQfz-m z;pDZHgCjx~{-#UuB%O~-!)KKCYF5`=umhiL3myz*$l0E_57TfL*Rss$;&H8j&lQmg zC$S?Q{3ZQZstDw1_NItaBcY#N?ObKYLf*&dUq2sy1Rt=XO4CYMkY}Rl!dxoe#e_lP zC9V6?B}f5G)WIITs#h0>MXD*m*vBnYPwLfiGuXERHK{(~ci3#%y%roEqR`}-Dgxyi zxKyTIfZusAG=?}szqzYUm}&80jF`CPc9fO~M%gCUl) zfAmq^kq-m@3C=Yin@h?u;#N$#xz1e2Qigy3t)63h#?@|ARGulasMjWEl0G!P^GK#b zMwmXh&K#@o!tCi*R93tw)mDFCSxZ$(Nrd@jaqALIti5AQX(HsI)WJ0A@E35S7IZfM zOT38k^)L%4oT9=XkTHiMh=DVP`3t<0iT)aL2|J8U8{Nytw(R+O={ymA6>>Q_ z)hm;?sf?hY$|A`|J1ozLxVP4)kZ6&uS)k4fz%86-FX z&Ujuz!L_AlvAUZBE>=E{;2?6CjFpTaf=%eZ z|BGYvBUqkC$ot@n18=+D?hA=5ES&6zIx=_SI)@qO;`-|wF$Eriqft|DUYey9q1Xr? zJ~_@(3O%r|S-`2rW0irFZ>r*bu@Bx;iXYEJi$L8-l)M2JKts``Gh*-I3=4t>UN-@r zY}MH%)iTB9%GGj=smVcC%1Uc(HLvkOdxPrn^k_hM|! z@zJHW($8>bcdJV>*Jo6yHq#KjfR05-TCRZY@Q*2!t$cl}EXQ8iV(R4s!P;UZ^!Gd> zxGN~1dAECV238=CX1k9Qktuvw_JM?lk1@wPOv)-6!@hh`7!*Wkj)Os)@zkrEzq6{dIykl(wPYyzwGdm!<%NP|F@aa+Z7st4Mp6vXY_gXFUaw5rS z2^x8@EYTB1Jv^wRi=9kG%j!_GBOSL}Yh~Nc`t1LGK?U{4YLornSer z1Vi4ce!SH)|01W+G2CNwvB8j^OrS>SJSm_S6JJ)Fj~!J_&#WwXb*hp3K03(0HMFw! zd->t+Qr#(`S%x_EFbhz5_Qhxyj|Zl3^3zW3eWD>^EC31aMfY4GumCFz=T;fz@Nkbs z{}@DeRG7+Z6>0>%&ko!`;ihU>S+fqj``GD=Ffn!e(T(u;b@YhXw zA`$_SWT%4uhm(Ym$l*s;jI7!|CYBPs)9gUll*nL$foy4TlHg~%n8wYE-Xn7uO>OZ> z?Aws&9&n501s>=(p%esU#TW=-o^h+Z_K(;{{6e|L%K|taQeKp8*Uv*snGx}=U16c%bQw=zOd7ja0SIjf$*!9vJ)9Ye}U!<$j!0D0_ z#r-I&CyyDO(mlk?=$_^xq|?a2OVx#t;ZSTcifS-nT4CYsQ8mo#ucc#iqNXRpT09~M|m&v;)!LBRWUhPE0rO(2RnvJa*hbJ-NvUUF8WSw>| zI1Z7q(vL~Y(&b#P;QmBp2rpyb*w`=}=0<`c=VP9DBQ2E+o+&I@YK4ob*4*AT_q=Jf zJ)oPx0w~zg9mVKdoc3o*bb4u*ulkcOi?m2D+EF!WG?*Rqe;kwz11W}Swu{_#iRHx`@HUyps3-EEV@(#)sYqu6%(U8*9`G|J7{dd zf!1*#nRCo}yueS^Hu8_{3-2lshk90L6<6WB4j)Lj_V0F&EZ5lDKTFeWr_-%ykk1{s z=*aK~{ff6jjvyEAi>mgjE3a6JPg=`IcTlkz&ka`|+1a!=R1iczaIQ+d(imc{_gx;sS1(@d z&Mc8@{IEnrco4dj4OAj>l%fo{v!2XhO80WuFM|83sY6S}V`X9yuHUMrj_(^<5Nq%L zba}9#j|E5cM247g@^|Angm?ZztD!Cs$L_!2-#o;kdYN3p0!*a?`<+PouZs#0j~ngof9@aX&`KC6Twiub~7UrD`uBF1AcUwMw{ezy?d8a5@1vm>FOZcCg-*<$fhiK zx(Tg{O4C5muW|;aC>_}TwMW!3LpdUM3(+nl)|(nGME~YEp#*NXWAE5js7+@{wuTP0 z>l0E19%x?BlT0Se8tw`4kYPye$thJSNa+(#&^_6hUb2{Fin-ulJsI>kibzeaDffgg zU_Z&|8@aa@P5U46m(MpcL0|5#va97zL-4tyZ34zEN>-bDJ6e;ko~-0-E!m$X+VH8W zdMR>|nw-_u9E^QKSe=`*8WtYw^27QF`ag>g_^Ll!(?h<%e-&)5l8!(qocO5V98K zlBQ3AipJTE9bb`Pe|KTJkV3jJ8;u>aqmN19Qr|O#U%1sKs66SfYPlhwdtefUfey8( zVq}`_=ndfHyBOCyZE-bCbr-_WTcCpZJl;P^QIG{VHPn10bzg3qhLS*qxL|B68|?nf z(H?SjQYSUyiPgIhCBk2jNvee%B>>V3=5xPD3c~6=BzLB%65s9LGIhV8;T2b{v*xzU zYDz%gToW70 z@w<;Re3K6i9sZuTspq1BP8@+~Mx@Pv(`Gi+gbzIzjXRMJ$PfLhj7hiLs-U+r@njz#05^{ z<;keX!cmZYdvGJx@&_?C6r{*SlwTjB_U*DI`v_t}YjbbTfm=|HtJE&Dq~qQ*uXCsO z2F2Yg4i`LMUSrG`PffOmXCcH5le@co2BD}Ns(aOU{_;7b<{VY>)exgCbD8N1wVMQW zj43{IfR?;32BIfdgM*^K~|FqSn%PWoFXp#P`q;4@CFsZ6nf|?*PdAa3J zC=R)iRZm!VR`cYP+s+?GU=dIbNBdrE7MyNBfm-zbp3~HVpRsN|NNH^*mN%#4(cV5< zxCtVCR`g?oY%_m%~kCBxl_(~i) zqj3h&gNg^4_gR2N?T81Ff^i)41Q!maRVecc7$!_M@9h*aw7BblxNMPZnj~Rf$Ov4? zFR6CEvoRkd?3sJrQYVr$@a|2?i0EbBK69*A3a*W4JbCPrnzGAF%7;wxfQvn&Ut_Dt z(uwe_-~bKzojBx}4gKu}U-c<(BmD}Khq`vcBC+8WrPu5B)ZEtVAX4{bGNT#NfBjWn zK1Mk7{R}$ndC#Y^=ig;>)iY@d)0Kp$q@EuE&%fC9d{5Dv5vd*S9;WwsY{o=f>BNJ| zKAnoiGLy=1=C zrm<+c_XnST%G9R)jqTtS>nzlpUBVEHnkPj9$GYl!m zWjiT?p-p{j@ONA9_Q9ZVqi(~HW;wZClSIQ?NX;eWQ2W{>@?(zUoe-(KmUjol#zT{W zLS^iu-FB7txzmRk)j2+qs{<)#GN1JI-%EySAN^2ZXuJ#GU1Hx;&E)$Umy_~vDOo(C z$#Tr?sQVzs=)4qd?yMtc#%J!uAW1*)S&6xDI8 zH{3=n6mpqr@us0IyQzm`f_Z-q+@rf&vf56`{^9NZta?{=g0(CpwbgyNhR}jTgJ06T zfqdC%CS4?&XqckGn>v)jk3IVyTbYI{^?g;0A-!7;-Z5xtlAqc**ypXVsiHJ=(ep^O z$K$zG-OP~jl?%N*>VA)BpfB}{Q_r|m#ETO{R4kCh@Yq${L~o8y6l^#smK2?QUJPgQ z!eD50#{C`Ce`NS-2+52gzjC3=%u%lTWzh#6_S)8Es6#Kvq%Hy-QdgW+l-by z5f>7*MUkA*?=l-3jimAgYIPeUMm{z)r?v;z2uYDX<3#s zkeoaK72*}-({#Z_apO)*B!h~5VlLV}-877b=(s6)Xop`7u0Z>PD{n0Q zFq11L#&@KtWdFwu$=pM-={rp1?|G0>9Zk(xW*scI!p1OjnGr=ObB@tj!Iz8Lh#Tb- zlEJm3Sqgn_;lf_K?%9Ie;_!iv*L^MmbHRrKdLKDfRTnLX1Vg|b?Uj0YgZ=T_s`edw zKPWhtKTLiHV3q7hWphiasKL2_LM!lX<%F~1LrjW6mU6kdEy?Py_Dp5ekn{^C4%O)j zb4+Ie7cw5+rG6)3b%{tZ<636i_-46-HSLX+gx0Sb3y?QN7O?MyNpK1Oke8TO$vJiE zKL2}ST}#ZdWo+nj4-KLhYj}0aJ%^mHVg=(Y+*Z}7>S6GNjd8$wreb+^*w2$04es~4 z&n$wSE}wQJ3$i`gd-|Xz4rlfSQD#HIqE~Yv7n)N2go994fv!4;G|8E#ksrJ%1$`nq z@zH*&DDhnIomo1Aw>iInfX;*Fs72oN;b12&e33tup7e%swj=$35y6OlW?*q=am$eF){bUxCc`V%77ll3m9s%v6j_$^Lvu+X#1s<9$0iu{ybG1Up91ba7S8`?4fbfT*mt z^)4Bf-CLA4YzgHfmU}MEQ3L0|X@@T4YRhD6Lvu;Mv&*ek1XEcF$dbQZGWCKyHjC^# z0#4ta>Kn8A^Zil|pVF!t%gu9Bfu7RFvlWn^h+4Gzflth6hMz-NS^RNZ*|+cVLKXY= z3Pftf`imCkvw%MBmh5q<0pe-QqYsL8MQt8pfrq<^$XzKkO63aqlWWKkn5H&`GSCi9 zVhet}3DxAM-QAiyF^4f;>@t&9s0uUYFUVCfXnXsddeOsoWIRZA`Lj(mT@$i6w2P6I z1-oQ$bb!a8FjYIx<(*$yKm8+8shq~(pJ6`S{8bgoTdCVTcKpXj%~o_^Q&nF`%n%De z_rZ%Gmomy<2HQpdmEg7o8r`v&UHpPsKrOeUk56=&IaJR!U-9KeZ+^|GBn7P#b;&|RjjTiU$h{#yLy5dRM@dl4t3P&d}znEI9mH6nufmx zeoP3yqRn&cQy{!GzvJ}*X<=i%_x_K|UEZ4WQy#eI;g3IEZOLVl$G}&BN1q;3l3vW4 zsGE`T(jpj?HO!MJ14bbvtKn5bJCg;x!0m>@h8+x5)SIkk*uEAwCiXs^L#H@)Qsfwt zM(=1a=n=IPNR9$c)5=}@DffcVMM%aZ_>fA&E(l<66>XgoMV<*UIyO&zv1t&h=S6(J zd}$6`tK%l^=%kesaRWlA`u9~MCxdy6hpPPb7W~8byMhp2@=#FuVtAv$k0@+QmhyC+ zqKmEkjdkHw%*WWwE2rvekl=?>S*~Jp*ynT-Ri5H;SUP7;S!LjD^Y*?|E#Iey<%XKT z2c_K<5f5L$EoPu(w5pO32ynXtDd}+{>&sYBh=%da#;Zb1x; z8Ci?FEOfPu`V|T)dgW8a%SR8aR{cns#7pBknc;m52-UdjV0xv6$gs92gOjTMqgN-*omB+VO~?e=?Av$D+n>M>f;z)&?TlBzI-&5X2zrGiknehN^-+4}QjGf2EY9Vy|0^m zN&vZxRV6Gw#i16SrmlVBSCm+k=x4Tg^W`v(Jt4-4)Lh?2RZ$=<3$TE$zB|d?6ZLMc zn#n@&Ng=~FqUGxHTz0af;RhCA7(SVqt3EvMBduJb%1-F|dc{_6NP%#2&=9rs?TW_8 zSde2|(JrM-Vs!YV^Vf(cc8O%D@&~zMdM#&~RIe;4gi@%Kc3lPtBTPqppK3bErMQwWLRWo$Z$d@x-G;=z4P zP^Gn)r(A=A3rm76LY5-NYX&g&T!cN^S zNINVr>aXCQ@fO)sGSa3-nfA1)B}~JVm_mCYs#~d3NQ`_~N^ea8;}~1CpU}1?m=%ox zey73}lPvC*(Tl9Y-?t@Vo)0P?r(p{FYV*M^`N@+M^GNi}Vz0v?ds(vR$(W%tn*?Xz zM(>#cqSGv(qMSg%etIMu_15j0w?AhTLjZbaDR#BedS-|$Hb;A?+XlW03OC-zVK@As z@1!-X&y2sIgPRh5gjjNzxw93M2u{ItoG&;Dg4BwyP?`*SRQZO0c#G{WWcFCb28B3qxtAv>=FE61NnI!E zlvQ}x=YcxYYOZIlTfv%AM6?>5aG{E45YqR)3&l-h4oj={(iRDH@ddTr>6vOadm^q* zD@WvAnaobzr&~*%8iBlK9CKfC$a&~*FNYSSw+bYN93WOpmPgM&-fJ{PhEw;3JS}r> zy<7SfBB2?t?fJg=<>uoU>7ZIAtw^wB4xH6O1h@>oPLq4vEgs0-Nh!;G97$3S)k1zh&#-!7c|fuv6yLvup8?k`4C7_+p;P4cq)PqK!Xt}7 zO=oZm#s3zbM~jO%Jn&`d)RYRi)O2J7^yG6N%7P7I9`8mHx)?$&8BwG`l{H|GlplOWg3xuSSSfv?`dTm>zHTk zr7C}Qv3;$|m)tX;J)O>*F)#>c_KhMKb7OHO^KDC*h^^nN61^$cql;ZP4;g9@soSzb z#>dk$l^G>mZz7G$Guy5RBpm;8l3AovvBbOVOsg@(efVr$*eCNIn+Ba~YHi$gtLNZg zc`W6~do&@760Sn^ECXkF^+C_?^!^AlLSQb05sfrjxD10}pDWz@rsz{1#Hzv-d2k3P zpI-cNl)SB|TnQ1m7iu5joV%InGwmu4v(zMX2Vuw4v&=0XS(=nZ3f7n;dsYjAqXXRP z1a|^1ye-4E!Jy0}-2A&em?sWXF9(L^WxKN}Sr6unv5f47A+6}@fI{OAgB(|qVX21H z=O+?;5ub-E( z^Hu12l1qROfCB$q0SPcE4Dbc~0I&5VTfP2JgZ_0s&wBbIfAP7^+0Wh6*B!Z@B^bYD zom$(_#^9%nG}iK9mj$iA<*@S~axnJtbw?r5VEo=SN^LJ+HeMdS*Qp6mmq#N6kw`%RvYAI4eAD% zx=2X4p!}Rqqdu*9*NvVJ@;`;0_59CtXMJ4EEs(yt2TVQJTKtbW>**r#@4`*dp1$kh zmjXRcoBko+>JNkZqI}Ld`8uuDV4cZJ@Js05ePzwPMhxE9*aj}bTz_WsABr^xk#zsA zSTm^S&+tn=(9jAK|>e!%f}cZvTwn`5giB_J@9L1aZv#!}crWd1BI^5XJRyThRVZvo_$^fVH0gD`Y*-70?f?jVzGEe`7c%)}sGS1Q_)H zCT?98YgvPJ131=wYq-ocOy@7N9(H`)vuO?ax9(r#evSXN9=B;d$JjaE)IRr`YC}mFTig7^8%%90U$v=;|^Y)pvG|lW%W~L>vaEO{Ti14 zlK#IU_!It%$u&RH&vQ*%u2q@K8Rds`LH~#G4)s+44T2d|T#FG>&mwARPT7v=&60Or@cem_FC{v=)tS&Pv}z$L)j|Lyv7 z`1yGLdJz3;wKd`YYltBl{`+C|lZMO5)7RVy{x4K~P#BmF7U-*wK5uS#@wejJ{5$wx zh_|?*e1gt+y2F1L3snIsAp{##)=%3?ujUG^%1+6uSKl^#HeFE5IKqrV} z76ft08@S~S-0}u)c>}k+fm`0dEpOnKH*m`vxaAGp@&;~s1Gl_^Ti(DeZ{U_UaLXIG z}k+fm`0dEpOnKH*m`vxaAGp@&;~s1Gl_^Ti(DeZ{U{K&TZMiEpOnKH*m`vxaI$k zaLem>q5UAh2LQ2lAo6Do`oj;L0ikv%z!`+xNq{(EH_+`1Ug&j~7f7+|f1r>6@x*3; z%36j$kw-t#ecbEtI`4lSClG6Ny$2)RbJ$Tpe_;1G1 zP*IUnIH9bfq97vy9wMnIe;oW*kySXMuB@W2s4DTxNP?yLxVWmDp40tR7UHd?MMYVVLKb}u>FX3Ii$ovzox?d88tUV|j&YV)%Mrxy`uS=~ zf}H-W0>bN0w*OXE{~$Cp{O?H-h&2JMXN&gL@dr!!?-~KUhGmmCg`rV?K2VsBKMd)6 z;CFJb-^XtL`z-!Mueav!L@v-j)LtM2a9unuP8G!>iS5uuM-jq(?6#v2{I+;?(U+lazf>Vn&LS%MFqvPI!X!(C$)9d z&M2QdsjGD2tlC)xg>|05wC7MzzcnHJPV2IkR_TA2_9xWS$@BkN9)FrjeI2G~h;jjC zs3a-j0#$cK`5>IYPU4Pmg2UvmdcojpeHN@5$nbf0G}u7bevJY%nD;N2r@O>@*HU+a zuA%ldC829g33HMB73}`+g!DgF^k*~b|I~ft|0}-H zPX7M`*Z*VF{@>&JmoTAjPDnTmREqMFYxR&{Qy)K@LjFIt(%;SeyPKQ=yXsmSqJK%? ztP}i?EVL9=m35UAmCl~gR?=41RZ-SGp`fO!s;hKTNk!?Tf|BCTvOL{?m-;iY{C{7{ zI)DFAcfS*ZI&{tXM|o@gRTcF zEn9f_czAjEcJP5_$Iq0%Zrgt4v+ds+)@xwLW_D|KYYsL^@DzJCjvZ_)BKRXQhgkJ& zsUVx&Yrm7Twx(V;n>abxx!3@1uuLBCR}|Pe{uv7ftRF|e7P%c@XXD@ie`iO=jL}Q?Gt7(sl`zATjg_y zW7A4h_L{r+)^&Z}eCXDet%5?g<8*Y>OD(%CjtKwwvQXdil>+m-^C+XNq4(ROtAA*G zW_e@Z7nD-VN^zngU5{3bIG;F9 zEKp0SjgR#YDhq^W#XKtynNy5yzJB39fc@<{Pnax*NO^i+0gf(-n1>c zG9>qg3-l{kIqB{5+MI(p6To1j}Wm+9M%+<8xrjSm((>V#r^ShshX6hV0TjOnU z;)b$8=JujU^PP@24pwrSM>bW{AtiT>GLPIo%kA#swQH$?!yDT3JxyN5&N|f2(Xh+@ zjpa3`XU-o+1hSX1>-KbyM{P;JKb>*$N)!3m5&zwM%}4Uo`V;EzKaX)Yu_$=^T5FI0 zjtBd!?r40!>UUWLn`v{^Ti?1hMs~L%u;qlahSjQGUD%d%ZSSkaVY|3_8nq-IdDG4a zV&#WiUmL>$(u*%fbq(zlF3Qe%cIdXkS7N2Acv!sjn?edLUkoah;vmh4QBz#rcX#)j zAosHp+7w0^ZC8$_U{fyYR=+ma@O%B-`Xh|3A$EM zuI##>jouJG1ur+)M3&X!veUEK_di8N>G&RN*nR2Yr5d}>qj!>?-a$LlJ>Ls_xu-2J z$45Dc0ng_6;$S0K+B@rMF!U~$lN=++e(8NDAY1Hh>$6g9pL#88ics|+`?du}`p(E! zuBlIuE1$EsCFK>J@4R@QemU_9@|1mm={pkt09&n$?pWVZj7EKK1uxmQe9}bc%&wyx zgrQ?gFNf_)^t%joKkk7U8ClelwyP@vs$*ZG^kiQ(?eoE0nAzJYU5a>{wxiXP``+h) z9M4COyBhAFx9V1?5j?Vuz4BZ2591#pG8$G%Z+lM3ye{6^9P+-f?w$DZC7R~(%#UMD zQ*5qzMe5y2MW)sAjU2*?5)PNKaDJ2gap+=}(WyzHp*+D*iJoq}{7Q&*u4R&6RL-Z1 zlA-6Km$MH`e$Cz&=#%y1FKdoVKVUxy{iUf7&b^B8WP=}M=db(D%L3p#tAZn?$u<>1 z5j~-U2M)x_n)jt+3d5Ou<3%Thr%ot}ytW%XD$FOr3EA7&HouI#obaW=x-U_j>Qr9w zH71m;%ktED6Qe6ybYlUekVKStZr-J1LaAOCUT$Mw_~LL;ON;;?^%S|5Irxz?@T=sf zRJ_*dO)s2_RgvO*XRaJU!f!OB%n6*pKa4!3)h`M*nx_R%aE6F~aEq|CF84w1 z&zr<}-*e9(>oQg5jJnHcush9R_vH@UJ$Rr9;*uZoLCAgCGG5Xx1CKJbk2uHH)?@Wa zccuKQbL@cL#Q7z~xUac~ci8^m{%oI|3-*0Rl=P1jyOzB{o*9>@Wc5d)YzH}v|I+sj zu8%O}>cZA~=shC`t{`Gx%%)v?+HZ0SZsit!a^zYNEvS;Fr3yx##nH~cI+lE7GqZP97V=pD*)N{EAd;iR9N!>vvYrbs?A-e9p760o zULlXu1Rk>`Z1Pq=(L;5Y!jp`dv4ZI_Wv8zRRpj*H_}{8~zx6O^VFB_V_1^6ey{5!T zOvthncj?|^QT^lFOj^yi7p@VG+G-rcC5_2q;LPB-2-abr|_TM zLgp5IEWV}aUF?He&ptfxR9Et(#d*V8>01ssz50RpjBn?M(B7WKvTu7`#soWlY%O>e z($vs)&H46;TIlJq*hNl!SReX*#D|znx z>Sq6PgccX-+vvjyq_UwTatCwlz`LOH&*M4`-5e9@N3hAG?|t`{+x8aW-NJILak@In zll5`pWi6js0PMbbWT~o2yI;Ec!LXP!5?8t02JnX*zZMLLk*veJVtDTS9{}AzBEML# zqmY>sVH|`K>`|%4kKu&(_ByVBUF}GFN9Xm32mllUg!3ioURYnM>sHh0h!Q`tjIIp> zDJF#cRX=EaJaJZPHAG@!G9)C1qo0Y7AG60{_E`PDkNu7oMFpw4lImE`uQ*~`i6NAe z$esk!ygL5QLTvTNfn&D4en^qx8vh4*n zvbZOv-wScC0qS*DPqW7ZK^*MS-r1p!H(oCP00E)flXm3K{J2#&NoTZyO}R-_HDnHV zO3-l(4<(}F*HfmU90)DL^X19fvPZ<89|3QOKQC-8hVpwx7XyHVf$Pl6yD1>>p{IxZ zHX7JZ7NH21(l(Wlf&t{Cek6oni|n7;gGJb){j4Ln)2+-hO+92WDK`tti4VCds@#t)yWw1Vt697< zLahuy7gAg^F$K*@@qe=0VyT_vQs~HC5$-Ma^&);v!GNaxY4E82Y)pya4SN*vfkb4t zN|PrL6&G@Ox7u%u4vW3JcXX7z4k*!% zs6(rGkArWvxT__K=FeKQW|Cj@mS7b~9FVBlj>G+2VAKt)XHM0MBRD9MxGEi4Nmk{* z`lkt|Mv4Bprp94%cPzm2ByNJA0a{?|nQV3FL^94;APVI`R`mxiJb!17C}F-~(|<-z zx3)>>Re>flcym7$BPNaT(;uhn;&~8A!aI{l%&kfV@9`WTd2_|apEUJ~QVcSPl#Tuu zZHL6nqX>0921|JfwIRR-w(CH=$?AG$gvGnZN3k6-w1rcrH}aNM{pkSl_W&FZ`17kmH>QQ zvh450Be4Lqr++nLS0=!+u`0yg+VHCXa3Pkt=FwTh-UIz67RZzI}E6h(M6QW7fM>&$#S zityw1f7$-l7FcRmR?ON?q0f_p3~UGjhi#dE;$O>$m%3%OW|4!mG$5)$BcJmRWA2eo@F3RxnuolA({qg;NPN9YO8d-r`kz`&(;-c;qB)Ur+*R*aNoT7AlT{TYXO7)9Wg!D;HNR z2IWrQ1qay0Ej4-K^z5%m^au&+jzxg|l_dVg6G?4-rWK!yqBsR#a1B5^5$xDtZcXe; z(n_Krw3I3W=XGz0g|FJhEQrA^jW4u&qa49`dNK{#KnE(8G^_LYc;U{MtJ?XF$j5Sv z^}2DHIRFW(H$BN>wLF__hG}}+S%GVFS)nx$3h+FDRvh>H8~*?|*};01w1RP|>5;vg zH7cc+gfS?gcF6=%}%M;SyP-}rS5AjAhQ^)7Wsow%wou;p;=@)U@ zU5EOZuctQ=x)rY$Wv={A8|r#OYcZ|$w;NO=m)9%t7K{Rhzq9sfwiGtI4xwr2-KdIK z!?&iOjzlqYM(#L#KNc&bYB5BKAMYiJ>U}AVDZ_3R}j0!eizT+Y zotC?0&KX2fO}f=ouG{RVm-$$$4bkxks250VEYFoJYiY5X;7g?c}~4R>oLM zNP;VbCN)uB1XL5a{#E1qI7|8_IB#CYE>7qU>_2V7?w@5;5KpPg?5+p7(Wi+yK`JWB z3wmWpXvF|?8+9DHf5PIZtxrUP`Ge_3IIfuSo;4IsBo1E-eUtI>=Gbp-skC-WZ*v1A zV~V?)5LHb}lfPBt*CG(>GbOV`(@OrEGPO#ATC`KmNN~IcALzP;z3RA~-dDIP6q0sM zBjXk2`z!wdG~%in{{WREzOxsWagoiKd6i7IHHSa4XqjNEaC4x$@KnE6bp?*JxwO(bg9*J=$mu98qzdKhU z5#&=qPuoLYn`Ex}r@t&wk}$zm3NWP!+=VIp z!~KpcYpdNub|pNEy+o>18iGZ3a7Rz_aQ5{rLkREV__tqFsb{HgiN?eIis3G=r6r?@ z?dSTyZXmZ3wI_Z%{345rvPdr;>`L*>WRef>AS*%kxhCtx{?-|3%Ay$~oysa}bKR!+Id^MwTui0b&05)WsN%IYsqX4vGjPwz_QW7`* z?1nUAD$UD}?O>>^Vr7$q32j`ndIq6awFlbxYl3s zKjw@nH#ZiyD;56H*Wi$YPfwEu{iQA5<_!XBu8-y zhiBqZtLdT++?e!c_`k@*i=97E(p?@`NLYUav1*YT+nu?;#WGSmi729pouPc%#<}o-b6GYp(d;mKg!O3 zsCjbZMwTg+8dwEN$v_EFyD0{~Id)v_=Q7wbgGL;PB^&&YhQA#?)++T|oi4)u8XhVc z1d7ov;42rQE)=gKd0|!WldkRV9`4u`W)z93$ZkuI<=I#Ha1Nd3Y2x8-&FIXLhA^M9 z%u1+bBc|UE9GF?_N%eL0L18LxBxC!r!~jisar;LK7|dFHyuAy;Canv4o0e{UTlRRj zPF%TUQ(V!XiCF?hL289kI1WtwT0{1>UJ0FI`%V`Y-nEfeRZvAqs5_dPa`FCLkKMq? zKX(9(u_8$1%rE+)t_ub>cf!o0l9WOD{y5M^$8*mEgE# z1TQiwSbwYA`LRlcrPO!4%#pLRdWGO5`~XxTQoYqr*yDwF+GhgOM=6#G3H{JkRzeLA zHTx>d`%B9V^(_lgBh`oZvPba9s;8MW4yDIVJb!N;q~FIsr)42gEjR^cWcY|7$!-4C zc{VDLFV-y5QgF!rFtG*c;cvrx=TBLS1}jl z%~=4U_)o(^-?LGHEOiNOrsEXL7c##QYWx)xQN0&$=D`*h38;x6Dux*f{_aMis646_ zj~|PX<+s|v)97DSya?pHWH%Wj1Fa~a0BQWVt31-D)3qp;D|vZbC_b&bkQjyrwV+;K z583#>&PF`Paz-tSZx_lG0-(yi~H$#j%z~0;U8<2KGp?5>pobL;644Xrwo*t39{ zoBdoPy@BO%e_#=AQJb7eRwgx|6$E{=`&n8>tM%?yw`BU?vB;1ZuO?D{T|OV#!<4rX zPV$f3tJWDPPW-4`p<(dw`#)>>t zkW|!!A!vRj{k@lE$tJO-TawrI3n)h*+@l|h(+%*rVZZziB{q*^t3fQ*ugN3ab80st zemWCZZa)hzEHtcgVfANQl~tBGIU`1ENfc20RQ7N9Tvi)M@1ilr%0r4pMIZ*EQFw}; zOIEM@^Zjg6))_7CX0g7iNC)oPl&KUuhNptyDQ#!7lhn1Dy)jNr9aXE;f&QytR2UbU zT&0I4BWmtCgSe>h$xfMhV|#8OC>lmkuGK#P_)!&VJOei$_mUL{$K#;dgOdC~Tj0Pt z&zI-5c`vOG!i~$|s5>9DH}S*YMmfxRJtlDMY)-0rR8U5_>3X(X| zu0Z=Czn2L-!R5(p$|Q2y{l1sEwmvrfEvX3;gHa>gs!gmWkXWFVGh0P@-y=^OtcU83V|O7w0s=V%GAl3hZCo9t>hs4h=Q094_4#J zzS}Ruim@SX8Zz-WsZ&Bgp#=2*0AoRhnq}%mc@!FC#b#=O2P31qhiOw}x!7@}a&4rS(Gg?V+PeOk4^EorJ4 zkfg~ZD6Fq8{HRTRH?PI;^}!PhJx|h^XHQgeVz7#C)D?1^zSVHsPnjV>V}I%yrrt9Z zP$(=%7Umb=r`o0}mPI<-74#e`n$i^%r~{)G*{U#DyJ`I=g_0R~f)o%5JA49!uP^nm zZT|q5M1;>|hB>2PBM1){Ad|Y+;rlfEU$&SEJ9*K4JF)5BMndya2|%SxyvOoD!;cz`z?i^Q++#8OU*G_hkrmRP{33cU-E}0`&efbW_wmB zL~?9ol43Zw7W-qBXjypumcY`%>7upgIUz|2Siu1CY7+c{p0)TnHY&<&t?V_M5gNAa z5VyrgK*yI8`&a_iFKnhZS1bFOY3Z<`HLu&-n*1mBa5j-NR@0d@@#%n^k%uqdG3`n( z#H!yP`|l*JC9Ls3IF(G4JWAG%N5sOU0sgis#P#hG+F|vWV=zm}fOu$9L0^Sf3VpBj zawSWvYp7Kf?Jf~kqj5!{1%N-W-)rH?=cO&Z!HpUCy;yTY#2(*kdZGUSVE9?A>6W)p z$nwX<%|5F)#2TmUqVhjym-+tID{8ubnbgl6j-o>{)krKGcCYjNKMgSQ@$+yMR6U#7bT-;+NkIDln}g^`HyzPEi26znr+l;c}eXVsLW3$ zq50Rh?ERco=?gIT6n%Y}$UR6~UQ`RLN`FG@> z%-(1#N*7wCIxs)+EDsMW8=@s%OsceHqOECPiao9Fvn0ejZs7o+;p-T{>hwv}%1$XJgNeI0AU~{{V)`O`A<-RNA?c5<|%s zA|p@+?Ondt@^ZsHPe!xV;90H0M|DaIfI0!ic>Fwze%I{%tSa-l^oUF*cpwo6U})gA z5E>qw!2bY(!FqM&?u^ZMBxY-LJb7=iBjNG=k@k*TNpYsm@am>SmwLz=p~p~EH927G zX>G2@Ia$?cKXmQIHx=9clQQptQC9acYN9E_f~v)i{K~Jvvj+bFXZtyNosGm6%SULYqxQvcJsHV1y{HX z02KQpf5#&_#ht)ZhR_d2Q$^wdASiC9_E@U(NzdMZ2q96jUVVT;Od+)khnrbleqS!PN5Kl^5dM2#hn^$g08O zb*UzsfIB>Ne%2mJY<0LL^j?6I&BqR}`W&y>jB#acewa-9gMPM-k)j zkVl8|)hvB;7>e=K$`~3eSCu1b7O%n^;>bK#_j*PD0IY+9 zBh{j*A%`wo;8tI$=+^eF3^vEqw-Hl|ro`5QjX{J`TU}_^DLu2SYe3RSl?3CXRbV1TG<7}VE~eUBBzSq-J#rlDqx zv@x+BxIsn~JUEhm&#Id*CI0{`B3Jr6(awy+{TYchi~;F_c`r9={{T0|%N5btQ$7{vh~ z6`(ae6qO&d#eUWs2?nWX(HO$r1ZP%LUUgrFf}`W*`z{*`HA_TE-L0kMQ9pTX!nAtv zlkEiu;r{?WcoR&$md<#hx?~W_s>W2Ib*I@CC+#Qf^2JbAz}jD|7X`gBBMB3c_*^Ga z7vXP>zSzUvLdxpZQsTe~D3SWng{Y#BiHY(4U-B?6qoCYsiubl*nrZ_Y#yJ7Ld)tqjN=O3RRhTd|%CjHJBY`{UHgBElI219yGFAZ*{ufOLIWbNa38a({&kgxBCwTY<0nU(15^jV4=ZMz5tu>4hpp zTxmhLe$q$iZqhhr9*QVOa4%IC66#$L9j3(9Xr_!f4mU76jN=;R$qy{J9+xlXtT|ZH|(JuHfZ%s`Ky3o_a ze=hkedvUGWJ@7xjg?&g~B%>`)#jre2$H$gL7CALW;z%E7fi&oP@@jO&bbUqaZoLcF zkV8_8s>Mf87#dS;tBP4>i>XC>9MNi#1k_fyOW^(WONHd=(P!*Zo|ENM@O{{WL*HnY@@i>Uog+)H62ES#8f^uRp^;0=o8S60&R zG^?UsBN*6^4bI2gr%X1nzKY@nNA%w65k(dIT!`k}egOXf2g1vWrv7EpAkM!P^xz7J}yW(WIEpZNO@b_kARWPci4)2sZ2kx)Xk!OSJeIE3aABmt5I25xmUyE zPqY5E1=KY8H6iQ63mKReX~9)jG#~D|{_S^OI2AIE?$T(4Z#Wkq28sDpj$L_Ery6~n zW}#?fyN-J(%G@9Tpd81-1p_TVX@6%Ub~=pKKD19z&N#P9{y8htnP-k@f#-0i)b(Fr z2~kiJWdW1D-#YB(D}CifB`It712vUAgoH&YoSSl1@t(FssFfEta3V@&5pguqA~@ZL8@M zI-xMo@n;RN?mi{^@T${g?RH{G3&jX;%{>g48WD*)S}X@ zPAmMlWoxh6$d2~(Wi(<2%Nq(2RWu94d_T*IsZSBLHt}1QlFC1cZcnI)4Fx?=&E1Fj zEAeEC((=<)NWnavei;IVRS#7tqNCz&Umg(Y_wREw)~z6TnTnOT1PY&waRZ4~{jc?K z&Mhm2v0FmsXX0jz^dxZ{fKy-E#ZcO>mhLPhlJ4F{mLIf1YL+!D#c9jG+2puwp zCx}rsO033}VuFiaUmY0zuk!P08m-sXWz+9eMga%|02DAkW~YC$KGNg$9Sz`>FZ5f9 z7Dgf3C8rmmpex7iQ2x#pS#xPwUR!r+68^ky$BjYeIJep9fKBC%DChnMqYXU=*h^^MZ%eqZD0!Yc7skz&+p z`1}2=RV&tfyq591s(S47h`B-;Pbve;{Dn^03BJ-Lw+ShbJS+kA0W|m8oV({i(frvK zuWD?rz=q;A2_h0JA>O13IyW=Pm0RM$dZvwGEDI&HO(zwkk#|%ya#fe&W5@O|D+lu7 z)K*yJws4dxQB-}ei}w3=$=#l%9n!pWju*=xRWk*iL%OHKg;}Phr`c=P(nB&3-~^4%%@oeg4<&e=aX^rNyJ&ppql?Agx$QG;S`=el7mh6a9`2v=T`Qy@Ri& zLwb?92Z>|wlxhwv6~Aj0NOX(!w~?&%NSX_>N-3csi6XtY@?5P`LAbh`)YA-~y&kJu zDOv$d$X~HQPARL~!q-a;+=50w7`rkM6`SHkRXxuiiMZo5&2n2Qj2G+*P8Ak$zr(cy z?tyry#ZWqPO=&8{c#K*SB1x*0Q$zc@d|bBuw#f~bm}ap~Q^?b+w*pmmK~vJ7veo^p zGP%?A``c)m+{R^)gX$0|Me0R1uN6PFi9w}813)UJNhOLBl5rbvzWe+wfmLRlOwnpK z>&_L81IEIno*`H@2PNRc{e}V5Z;jnWyRu5}%1C4Y5C8;n0DX^#j%$UHEf&*|_1l_8 z!|aj7k`lamb^cs~+{LKr@)=!7cLegO8+F_0{hTVyA)3-Q5yuc{iu`fPc2cDsO${sl zulpPYd!<`nGLT79URU8?gb)bhPuk>pd|%~q$n}P%F76U5<^e%b%+Lj;e`js?@yTAB zDB~lj+!_v1pWcu1Xj^7ft}2n*>JO$%Zx#0^vkb)@DNsSB38AeDD{;f!M@hEU;z{FW zQz0TL(K-Rg;UIp`65HX8&W8q}Zz9{qsW@Wh9zBm<3sc|X{{Ur?xD!|M%NbNWwtT4J zfdx3Qiu{2QJm%ks2 zgK@)Ibh`~=$z3B!3n&RWpk;RbqP1_@?SU^p(l7r2MqI=|XGTzG45f+y-)=B?w#(Z( z4aS?Kd7Dh-11m=+{=E;xc2=kbTByzYSrFEIx2W4R5y^1HU*k6vtA(R_dw$(jc)7xT zKUlo-?DP!NTgczs9f2Fyr~0e@%N0b!9-*MmEv5Zh0!l{Dx}KYIKNlW9%a^P9eYGeA z(X?jaKxo2JuD|7U?fkhfwl*GS(?~Lc%txaO6loEF0l0<%hxseZBDYC@qF#MUW6Isi zfpY%qq<}>@93_dW$KeN! zIyc7OZI=q=g3;Jb99*s>U|M*^6Nn%pf_}%@{h#^ii7l+LUq`7y!UR%XNU!ZvlQji6 z^X2|u994DJlx%L6>5ImcKAb=rtEdC8P_MV!`2HM_Y1Y22xR%`h{(+}LYD3hwi!b4b zTk2NYy+KhG%B5Jo>Pdf&L@oO*U$U)@({F~CJeKpA)<%xLsN_Lq71f`JHIje_9}xRP`LN12wbV4}nIIhMiyF!U6ULmM zh^uk^o?Nh!^j&GM$>jBHl!Q?kE|Tn3F@ipI6%z@Hy#k9arIB@^Chrs3Xeu znuQ~1ivZ8KAR6&yUM%0_VyPsshqYNq;UKBzyMPzmQ-6!%$v2j~%?ym1UFsr9Q%U44 zN{O=4H7^^o>B6r$-9SRt3Od{{Rv34mo^Sp0A>|pLBK29nl;fQX;Tz&t3X_U$cQx zcWEpzi+GokO(P=~sNKr(sQ8(`mx|#e!skXpvNtpFQ~ zPOS>^RxQE3K}4V={066!e1GMB))D%*0L`Y|qRe2Bl{F)nAw>q?7s8$R{{XFut<<#G zE@NArKayO)q2iQ^`iFK^G_NM2H|*gx&GYJLP326$Qd-ulv;16tlj8pXV}tB&-%q&u zwC=_^3dt1!AxRCl+OEP+=f!pHHE!J9T1K(Dk_b<->r=$^3)|wwSmQ$4e1w)qhE*Iu z_?LeB9;t$E5-aH0t)WQbs4>3devXJv?xCK)_>h1^Kz*{`>tJN% zqsWloN6sc_1f$d+jOe)DPZ=u&L z6uEHFscDn#ZlICfTXK0eMlP)`tk_7)R92$M0HsIXF?(fubr+Dju-tJyNEEM6v;NBs zZK1NefeT84CvGyP;DTzvv9H=@U$uc!{{XJbs4~^~Ioe}dDOCf4h5m2lrb%?$`&6Dg zX=W_~mZAYeMyJCeru=FA*$=z3n@*ae;zeQujnt7&Uv+Ta!uHbc(A&xTnPYEIIu5Ju zJb&VNp^$l-%Mjj)FKkEpO)J3#1Aq_D!y)!}^Vvvk=BgtV^*5nBDpWDw;SH0YF6*yt z{(*J0EmXFdIw&NX7ES&tbU0t;&n=tgI*pYBDi)ns?#y?n#ZgId7OY}tK8%twrL%8RcY4Sat(ly?g$Kkke2}N$4o9%IIEZ01%s`+N;^tOyx!x`jLsROwy_IT}r z^#1@g*=mq2z2Fc`I;xMhYACJtMJl|oC75bHQqjD@X0oDy?N&>L`(QCAk*M&qFx4b7j}AX)6xMV({JVYYXwSwe)G}MKsU($NO5Hze;cQ0N&V{a89ZE2!dZA7s zM0KH{C;6+25{pUZvb#%5(6D;Dq{pWs2NtgX00^c|wCz>xUKd~;kyUvpBylu97upNN zkN6xQy-4*$kZI_wrAsJ~MqB_wP#S*Q{{Sh#HupFBT(1nE$qJqlu{CJHJsE!1!}hUD z(5{l-TeV17EOYF|*OIMGC^?GKfd2r&V0fmQ%$U6*(W9wV=~V}fSC`sN2^YOYfjukj4GF2N%~eJGPo!JO&dyvSpkLkm7xhQo2a>Yj?Z#sVaS!C^w<6s8An?xc<+@g{5^J7F3%|aKr&6#kmEPI?-Ca zJ}R~l8@)?SrJdMiP-(^c0D7)Tv>jR-^%j#kV6|Ae|c3M{tCd3HE-$Rqim4RkXOYx;HS%PEL4D z86YvB2B38NTz_X5x7O}883Y#v65u+5Sw$Oi3Vb8%pNEp-si2xmlrvjgh5&I+AnjAg z*NEcCv~T6WEhGjPww(-N$1y90C#r_xmGAo)g2#KNUC#DoOKyw|k&<}*rcwbMcT@2H z0LHl`(v}To!Xq;*(zE@PBa(3-0(SKk4^Q%b)+)v0(o$&KgGyF}Bwm>`prRAE{3^B^ zXz6>ST?LA6DjSq+!)XO~3&?)a$J`{E1^)mU2thDDku6lEDme;&F#%f!M`H%HZXU*7 zHz2K0mS*(-0K7z1YAUiwe`&vK6=ZE4wy_y|SlnI4qt#N|o=x#lkL>(84oitN845`m znI!lwoxT#Jh2>ZKM~^07Rd7;GsOfGlV}?bxP{Dml22xMP09M_1IDaJ2YWD2+LN}I- z5m9O%ZhSr-JjnnC<%$@!_0E}p4P%B*YQaOH6D>o0Ul+u9@co-~sT{W{ZaI{a1^^Zh zN_E}GFNYMV+TGmgBzkgs)@?vQCH*ajCjKIs{{Sdg2ru*rtr0IY_}GBQ)U}i1EGte)KtI_h?Bb}+Qt@JB zypdF=!Vs*2MJL~o_#1zZ`S1nQmiO+ldO@O)@)WN%KM%srrM|~ZGtwnX+i?r9cOXXb znAKehfm$gC{tN9kF8*H@Z_drRM5O-jW5?mEPyyb&u~rszQe+}NP3e|b;~CwBYJ;!E z!+*1e(Ok`JstPZt)HeKS>Tw@upGto0;ERX3wSgj=n2D=aiT=<~?2E|#mi^`rvYy6v zRC{Rc*|~6QgZ7o1bpfgmAM$ZkI4@Mk6IUyt#X6sC{DJlG3iPU$hs0+2zOiek@fC zl3i$?v@{c2lfm4MUY%;Y(woz4Wz$-{sE{fWyizu)W-HU>_C_06UfN!vv63<*Ao|cq zE6IT;v0b?~5Ng&kSlyW{_qTIX2;2e>8Xlvm#ZyfuRt*`0ml(b$btig|MMo-+mmE2= z)P|bzu$(=*0_1!^fPbC-(cxbl=h3U~>9HgQPl%rM0-ew7;q9gE>~xak2&xJfD_@0; z843Zh>-#@z0=-TRUrf}H31kt-$V$SBT$QIv0DsT?yovd*%l7LTxV89Lg5MaUaskCgn{MyVHd`z8~oqt$75xUHM?-x9?p1e98E`FL^%B6fi9& z`%us?WsrJupkgJF{w1lXqaD82?B_zWlEchV2#TwT0eKK@Lc@<8i*cv(E)w7QbxcxQ zLImzylpIF^@l%&2@L!3L{8(HqE_7>_y*{L}q4b>w!Ip%)Z%ymC<09Znz4nzZgD0sp zO*Mh9rRgyEDNarCay&Qqzv5VqrE-%Oyob{YR8lWfnz5}o@NPT;ulYaZ^2uJCd1J5H zOK&WZ`mT*wSZ*W>KuV4^_N<7ChkqnWf=JurSqirTJ~g2qYrn$0@l-vUTthO- zkLr|Du>qHECyR3UN5%U%dpFl5wOH9oIiXQrC<|`wKzQv`ZYzW`q>wo=NUEFxkcyDN z{>ua>;^l_Wv==ZWjVC!ce(fj?8JTFi9l3v$KiOien@W=Ltf7khsf`B~6bf3Zei;MP z;`o)Y2D#<9*hp=;3)YbUNy%)C-Ps7U%G>v3> zrpoR}=aN!VvhfizpbCq|qvEggVysFVhJ?ih&BG(crRV@5!&E3*x9>XrjyPv2hU(H@ z1j3YHz!v9KAqUyqF|RL)FxSrhT@zV8sbW1zAw^<=Kq_hu#Yw5-kzEs5mg9}MhA})` zjD|z@fuk`i_G+v-VyJ8T52>>}N7Y!tEQ(kTMAy`ev2XTRSl3qatf-MmBW(V$sbw|z zxo<{Xol9kH>vEnoLn4rjpai8j{_~A~CdjV0p~3^)Sdjcl^-&b@3<(WN?!7Tpnq~Ac zLo9U+Wm*u*-x`_{hwPI>_I`Nuw@FoF1Bq4moUa}`^{At_ z9$yw1+d;@1ONUrykaCWy#1PvxJX^z-6-sTMN#tKlu(?XOpOM`E04SpW0K|?+w7)Qm zrcEh(s7f*LsOCkneQHOFv@o3xmaZOg*&Op}|(sFo$@pTm5 zv?G4s%Yj$i{c}y!4x=B~b|A;vhK>6K_C4_Fxax?Sm9w4Ff(4)|gNT$Ye-}f^{xl~gEa>qTx{du-h@to12uU4${1qL7txNub~1VZXrZ{#GiT{a)SLWW3;c ztz!UFfQG*g&9^GA$BxrxNMvgp*ZsiS7E`+*Q^9@(_}v)gTnNp)I)d?j1Q4Qxut0o2 znC#o&I8`+UGTWAoc~^<0OZ}lnCy?uky6;K6vzklYIM#>bQ`FT%5yX}!_OMm5>DtYt zuW(tVP^|LxWFn#JJ}#$)IIsCQwT7n4BiY=aSn}YL2CYveZk;Pd~FXLoSk`ZS%+4Qtu7-*;-i>$AQ~y}xjs0mRLgCy!c;Kz8=t2| zAcf>;c#dE2JhC}^X?39AQAq_&6~Nk^*AMSuZ!T)~xW!ktq{it655s39QE6`rAWr%A*+B92NxG$4^pvtd{N)R<}d z-HrSSYcp`Um=F+vR$Yi-r2U?Kcs54-<@tXdZM{01Y#l-9@bVQb&ax$!1)rJ8nQzQP-vfvKG76bg5P?Vm7&mx9+Y_UU^yEL3z{s$pC zpO>{CFSL(1l6^S0?&MYE%DeAMd>m@uYvIKSExq*ClBDc`V`k+dEdnu8L8$$f885NE zU1k*_8J=pIuVSS1tt-i2eppFo`abEF+@d@Y?z1`l;1wtA@u+>jmj-@}7M!KA1ynkQ z5t4WcRakWC{NJ;RQ#ecM(nuGS(egD%+tZDktt&=v6#}Ze0u=Kkw=SpD zVBfpNQj>24I)c~}BJv+%suqq}n~i=Dygnbbhh;7-;5Swy>k#o(Yj-YPP}GyeeXsJC zxEsv6Yif~0J(xDv5srME@hrsjr}J;m8|420HpXUMGgDy|$)rBJuEhq_ZN-1d!l(k+3+-dhZbd7NcfwTH;2=?fZNW@;iChJGl9Q0QhpU*i~eoJSjDCEcNVgw#0eYiD;6cX zQ;7RKzIcOLGq{d4q@jT2%7ifmz8_)xZH5>AR=JKTF0EUQ$TBvuiy^a2K`*qXIzP59z)-`;7`evH*=^_#@<({=1`7&x%kv_z%p7~>HOt_Lh=zuRT~CIKNNg^ z9hdoW`kst*`>C#MmPt^aav*vdC;`g2;=#Flf5dP!eq`q=MREJc*MT5_3KjTxO51a0 z_`lX%QpXNCLh4`4UY7T^PuRpbsPcV5(=F0frX-mdvIKLGY6(yKcmfHoy zr?)m238-4HryI#tiY7F2#=j9C5Ig)o4om#M=1Uz=vdLKFWdMd_uuyoAf7U;3!jVdPJA8Oyd!*hyte3V)7*|kB$3Ve5vMpYtgviBAk@B!mElB zt36ioHWA4!EtG&mR5!#aP_?ajH(ZcOtHVJXJa*Qypd#u{wNuQ62ah*6wz1{7Cxx%9 zmyP2NN~`_dL2c?m+wA04+BRfpbrn-2QUxm1ULdJTDgpe<@&5qCu}Uvq(UxLv>?d2P zD&H%R54bzK#RzFVVxQL?&06VBBe}j+Oel7N!3@z?%q9zNjKAfbX zF@>V4hAHtLN05`R!}f4LnsmA5rlD$whQroy!N61;M-f$^Ksh%b^>I{-RbwJeT&c&qk69%O=y>h2;2(R0b@k;2#lBjhVm7<;VH3HIA%iA5psztnr3e zu2>%m0n_68a5klA)>FrQr%cT&{_rxIHCN+iBAXTPTnfrGYn$yRc8*vK@C|@*R8NSC ztG4`AziTCzdJAe%t@WcKPfkTa1y`%_1b>u&X|e;Q>dAZ-D}WZ|c?ajxg?ju(qk6Ms zgG|?M^llK9S+waG`o)jLlnd$=+PiYaRrJk8p}#tP=vzyaVf&IuRtvv1Z-_T0!&}WR zX?V>Ps3Ib*8q=T~6D4_lp~vCDI<1YDm~8&FWWe0UhD&>dHE>Xu_>aL#2Nd29pE9Ixv58i6GioBSUi`y7*LT9ux^YtCds z?;AD5W#|hMzp?=PHN#D3OtihX7jUPk=|)^S{7E4JfdCJSa{mAcEm><~TW}g`O9@nH#aY=w0FEq0R-YHcfi*ke=p9UIs+9_am!kY&^!svumB$#+ z#UsaXiws+_VpV`}=872&d#el$bs@Nc&_x^yqmL?;6{#YdBJv8f{h#H<4A08GZ;JZP zI~_rmIb&W48Cv?Jm0yU|cK-ld3p~~3uSRjGXwZ66@eX4JiKf&wI}+cs!y=l0t8+X) zkWk3Vgc3tHdi+)6lNfx^{{ZOr8kBztU=@Kpcl$iP*TO%S6-zX&W(`Fe9ZE)yXz9or zDxN=Ry$2>Dp9a{C&C@I*4h4O3UPN*kiYqdOPPm*1lO zkJ-ZuNUbld-r%pM$Q4pFAUd}NMPk+GMe8TQgz#!}LO!o?9A%^USEw!ixHbKrKNtBp zI^trYOY12WS`=SZ2S!#s=}(9eg;P6A0eAk3etlm`yrZvfG_JsWQMM9XXz!+6ER1T8 z$S4g^H`~<}0HSK|GgJ+swjzPAE*V=JQvW(SM$ zs|GB=Xld~D#a?}Wqw58t>PaGl!kgB+;$q;q1BfyL7t>Kd!>Q*%@nOH1Y*sh=-M1x- zjxs9{Xlh&GDgv_MY<4Di%&^KDVab?utts|?{0gqEa$;z0!I8*{{w{JekG$eoO_q=AUw zQHSoq;&&kYHTh(&IYy}rKUNC2A=M%dr`hF#p|^tk7lffKIkzgB6(z+sEAgP?ht`+cbHgp2^j@@*ElVG>T5t`_fyG+2 z+aje`MAZ>ly=zr|MFA=Yinscp;Zz0x0M=ENE`x1T695!;-^I2V658Th8;I^Lq#@#J zf(cW$bZu8dv)626dm4RXsy{z~@~;)-f0_AYKHEwwa`4Wz5rVS-3q2|UD^6cxpAIUV z!K_(o7Ob+P86@}`BE*BxaxK&oTq#SNod)lfvGpy@B=pJH4V(t2h8Nx1+-dXrs)ZCC zl$z7M82^WhkPuHSh=y5J89%u zc@ZK@CgO*oYJIAw^JIE!d#xh)!6@D~-1P_CR|gcfy0n&cC0I8tz-OX@cBMLEsfU;} z)wzgXz=By=)<%rcRaJf>ML){_04p{TOL=^es!Y%6@gg8epajvr{{RfwtN+yp0$A%7 zUbvA1s(frWk~brabWuiS_*XTatEl;AXk*kEU0KTIgy-$is-x9ruZBdltLwcY@nnz~ z{Zql@U`mh=f!jJn5$RrMf>J;X`*3FB7BY6?0V8)-`#2Js*c+jaSOIdR^GNw3T9XaQ^@k3Mt#aM)<#%m&1ef zUoe}7YfVwiGJr)kR6lBr82;DAwjRxNw^qoyj0@??8Fz9xgTr1$ ztD;8XX!ZLnf0e&$;>9T4Z^`XzB$|$pfr~9pz^@VwMHo|$?Br!N%gZ+5BxBblf};gk z$@>e%`k_(#U$v6!Uoc-;ENOVF>5xMO1-Efl)xbK=kaY;8xVL3DGOIekc<=!J z*w}p4aa0Ah{f?#*8Ihx%fNng1CB7mQZ`GN+IN^Q8v=D~3JgU+kO$#sz0Y4YQqwI$L zujRsie^9yMHA5nb@Kuuu_eP1U~BxAS7Dg}$L1 z+C*{B6u#W zfmq+1EhPi=ZP9AGQ9s$97&lDSZ}bikPZ*ZMRwQll#Zf|3@BaVL$NT2wbeBBylD#a-aZl)WgBuF+Liuahn^*OXJzIKan9YY8;=;B zkH(5Vz#NY+=4QxTvT8aF%UR9}>GBpvVwE9HRI0lV59P&KUYR6o9|@o#syN8Cs@8-C zZ|>DpQ;T!JK4J3xo!hglYYen3SxB!UJ}T7Hk0QV7;LRTH&g6+AkwhRyp#fe&ccM2S zS(#59G1T;1#tkLE$0(~6Q^37`(sCoMN9^LSHHq&0y?5zMtYhWGxu{*3SC8zz%ikt8 zvFTdmUW!7lveeb6U0Q)_RV(&Od_3@rQh{|5CA=V+;UY8jhS_V)-ktgK{j4st{UM;- z3yXRcpl0Nzl?T7wfhet4O}@~kkfAMMD>4N_8iJdeivG#_SSAaLeL@M%vX4}n#~35v z#dZkq*1+Cqy>Od4?di^s*a1t6V$9OwCl9K(>?_(N|aXO7iCT;dOcI){{UMM zmI-8;W`v<_*Fmh-td>RGL(}uvR>hs?q-dC&m6o2Gul+zb{>Si&-rt-;!3GPgOMSlT8}_()UeUNn?&! zq;u&x0P%BK00VX%aY_@*UUQzz#bd1_2)PDXsmI|vj&-kJvyy#NNYnL*miE=6wv|*g zQ}Xy&HzpMev8Xsfb)!u7@><-vXx)`PXQ7})ET9_vG#>`-gjQP2o?pERLtR_Qp$9TK zD$tH3jj8c}thlNsXSi8Kjn~Ae+~t)}F=M%2HR9hAkJ-T%zF`cjV{;>VVL4*s1;t5<;p zd_U!4uGM_C9o@0Jv?#K5NY%oCS&I%J`y3$`msaWZ9a0txPy~xW)Kg9zzGDvb{Z?%v z2wjY9NGl)$ls~b){Qg{54ensmHTw}DVaIh-7#y}*_<{cGZ?%fBb}&vJPgBylfmJ!7 zpm*iO3UA5Hcj1e}tj%uE9mG_bMI1Tg8;Cy>ZoB^gsfgZL$)jDwvMpeeo|7N)s81?? zlH72{=D~HOl2|}%lu%U00-y?b?@w=w0;W1Xu`Zo(s!OG_yOxPLlBrN@P3WL6ACHS< zpH`Pm)@);*#Pgk07>dw}w*)e^ z8iZ9hZ|21aU0+Lm9&gfGSg-GB@i8QtQlzKC%f-1S54P4Vb;}<{@USSZN=3vF-8mYZ zmEGy_+(4{LDVaEhkL;)hzZU-hWvP(OW6Q?IV|i&GCjyd1N^=KxpdaL%QkClZJg{A@ z)v5Ju`ANkVps5SH9liN>rdTD_3~XNFoqV1Zlji zYb4yMu=v`munYcH6~#0x1;l}gE3<)8NIXs zYS8_%9G}AtqQr61MN z#8bmokTK&SCW?JNUo+}_SW#)KT+1ib?qyVI7O2X@kI$n4U)o$1J(E^T=w(!rBk(%V zt8exIulzO@Om(Yi?p7v^TZm?)Zfn`AP9WEqPlb=e{P`AG?rhtYqYfp5ElBD&9cj0Z z*~vT_g6csM>G)s5N`yZO75SFsPlo}_AiRi89Ug0XhEAfb@zf97>;C`)fmr;OcLr9G zKw0B8bdIf0en4^fkJ;kQhPr;KCFEkp;!i{Xd4W_6M@o_KuMzuAis|=p-O6FPV;hg% zk^u@TNm})<7Cf=K-h}YUCFPKjeKE<~Y8q@<75-+$P_JhYx{ZuraU7fCs4M=q`|ryi zZym*j=n+O)Pc7K-s_`wzSHBheKl4^zopl}gZ>*Z!1>+JE#-x3oyLZVWz{Vp4#x(_3 zjYwk~aj(J;AMV%T`%V0qRjF+Ly>72;+$T`LOooBfRm(C1;&L-}6~wD0tiYqj$DFK5 z1R8cf?A!hiB@bzLXT}J5v`C@u3J^krK-_-H_xQNrJyD^!jLQ^&&dNwr*J=gWSBd`s zE0!w9G(BYL(yg`AKh^gGfuRJ0$GGV9$!@V}4b8CBY?+oyd>ie>hb2lCHD({>eXN8@ zr_A!VBxOl;2!|QEiA?L>vYM!Q#QHE5@9+ z!^@_z^BtcTkk4=dWlB(|R_H3D;a`j5#Zntc{{Tx{M+yqW#JND`isfID^l#+n%l2}u zFYi3NcGhe)<8T$qu>2I5MZhF`OU=`H7%?P`&g<~ zBHHS38B{N)!mA3k7B^xxtqY$}w@-&QN1&d4HsF9y3enW`U=MXaEZD36)-BaEk#!S# zVFjorMs{Fcr>ax!eX-+&_LlmNjc}KGb4e;CUG3JPlm=wloVj(u&@AvsP3(M6!qMG0 zYIG;!P(zR9U9pze%C}Sc(zvZc$OuU3$g$XeGVodd0Y7!vUp@thWYhaw55clKo?mTChI}J9KZg z@qfW&n@sak$#86SDWg}ZSeZic_^1galh^%hRU)(3lK3n7zM8^52snbqLc)}&=fA~W z@?GWaTFQAu7Yt0-2h)nuqNRAltNj3#Y{ozstd78JvziT<;XnMYv zIG0IsBxMaKuNo3LP|~8gBl4%6=baMQQrwajDM9byaiHg{5(ZevvrrZuB5pgYs-hRGzFXqJKrCiF=Kh}aNM1>Jjo z(x>v_CavYmTdqc4HqI&O$rrgjfDQ3+{j33{d6!Z0waKv5zkOm{y13l*E4N*+D<#yt zv1O@1>2nAd1LH>J#kj3OiM-Vn_&gf8GAc{{V%~v1xaw zYH-DMV=pF?;!#k3Blb-_tAQndRh0q*0{jKod?0*85ajeN@HQ2BeVavVY98d5Q9#H8 z77ao0uRnp);`p#}ytlhZ)IjfU=xDU*#125vhWktKd@YiT{Swadbe_=hG$h3sHgIL71(@Bzr&py%bNT* zkZ`>#9O1&eEkbsyDfp|)d?e7k#|EVc`r%`6V&Wowl<^GoN^x!d^G~DC4AI_MnB%&t z%Q~+A00<+T%UXDROa99hM)|ME$$S3fwAFERpA$O{D&U^uBldhFX0X;5>hqF6cS3zY zNi8B03hti{Np$}JI{IxDwdhu1@p587p$)q7-<3V_4Npzdb%!&-IR z{L4&Lh3fuSmNqwfO#+g5f=FTo2>ORXDwmni@pDNWxgc^R33-np*8FAd{}R$YLQ*KSzUhOP}?&x;!ylQv`1Vgit!+sV!uM|55Of} z<6yoWz5dQgB+_kldwAO2Khg-~CFey1uQu3n`#;^{s!67_cPn#2=#n{50YguOEjI7I zGHo`}?k1G+hI9SW^4_Y>+^f92Q8_~{I84P$vxGiI;4NQ z{mUp(#TKi|yqT&Sx9xwefD#BUk`%fW;u$2jG*SrY+=tq!__|;P{UPPY<~hlyNX+QS z0bmIzrH@rYtBRtFPi21^6%5g^`$|HyNIou2`&?9h*B&@F=E^-uklUxPA_guELJkUC zFU4Maf5BkMCbZTx_4Oqm=`ILp!qsc=iUuK@i2g~gI*uges&m^9nn7FWBoiQdnFW=8A& zR>SP^{%_jJ1)jNOti&Ro7(=rvtYi}6l^lWX@cz(jf0s24Hu}||B*?r$D?+v6LW5TL ztH}QV#`un}p|e|??J6%u>LpWO6` zWl*LNK@HuEgYM~O9BXWRi{ns@ZpA+1iEnMk+jyp zk5O0@kR^T-L0`4|Uk+_kL7iXgkf*0Ty456vAB%-TbK8jfKePU}4f5Wqk14jfQ3dGa zWim5xU`G;KwI{E`@q9QEmTP)sH>kHt$rEwqZd4NQzu6&2>|)v;zF;k;>YEk;5vCPE z*-KZ$mPjsin@eb}Zk`o!E1yNlqs2;j)SEs^1l~iJ= zi@hQt7prP{mtqQlLN!TJP!3B^<-k!Z2_r70uKBPfiy9!W3IY$pIX659W2s*0?fN@W zav)uzlYfVDHvL#>EMWrNiBLwsfLW^aq2pR_zxhk{u~tc=YpHP(*)VrTXIC#>m1=u$ z`&@A9;W;5l(O5YmIhfaF+vBBA6G~(f6A)<31C*zckvUSN2iS^p{{SoDY&Esj7R@U- zWr?`27ABlYA7oU1*ZC`op*+W+x1=>4E+t#2L1~iQ5zChKG#wP=XwCX%RWGD01m7w+0!jA-_tR)hy$nh#03r1v~AQg(&RjVKl4+?tJxZ`!!7pQzvYdihp$F99;iFbAMLNv}ZF$vwkZYt|sF zUZP0FRge3uuS2~!^5u~+4b6?p!6+cB6r&;Q>ISk}2?x zHQSf-VC_#zv(+u(dp;__9u5Ffz}EsEni{a%N>(o=h8m_FMg|2X~^$ zeFSjYp?PXRAON5N@b6!X{cJV9vytv4k|$wOS=Cunig5vGRIpa%RQo?=u%a0*Cj!A5 zSp5|VBP5$W2dTwcg0IN^oK-8aoY`IdTJ|+QkszbigpIf8a#Sp)wWZFNAv5q#R^2P{ zD*_s|?ZYD%(8X}lGS(-Lshz7KB7l9KRQ<2DhB_aZ1+P0@L`Z9~qj4sH1r5vPim7>; zSgwLfoMmmxk;w54K#EVmp@$a#09y()y-Iy5;-TNsV@cshE64-lFzWFlx=*a0QAs5p zzMx}81D9X5Mn7e~E;s<`R~NR4It3_&&@%BAq4-vV;;Uk;g5uRR+i$ESr6Z9?7|VwO zmGBGLe$nNG5nWtpmycm~JxG+Y0a{QWgs@>!F}hXX=&Q!GzUB3KD6hx<6_joMwn%)z zVW(f&M{{By)Kv-`r4;`Ftp5OO;%4uPq4hg>b%jw1k5HpLK({{O6eAyRw4AeHR*9<( zDrdL66^ZB@U`VHhb6{8h*G+EY)KTS2aWATPI=BX_S65}IP7fLW@BFMoQ}X506RO!k z9M8@+SX45oDoZyK&9ZS`Ez1iuuQ7?I`n|zhR&d`4P!O{*W+!3sZ}8;O(_XfYJ~KP3 zH&hi-LQll5M{n}J)&#I5dF`$iF(1{XHCZVA3w@&1_?M3@zh$r%uQQoVVk-$CsS8&t zUySmu+}rJB`&PHp+A(yfBaogP!2wCH*`fLTSV0YnnWr+c&FVK1LIi2*9zPFK8b7qZ zvx=*EGt8%&SlvuG#y@r#(!1A-8a55{92PgEo<5;^@lXP{!l0{i-{Hu_`U^uU$!OIy z=FtwWp|)aFvaa~|6U`%)47_4az5M?GS+#B?O3(H?6!?$&xemIxbclwxUJMFLBPl$YK^0;9JOKTiDqD-4GU&ad zPy5LYe|O|1yWV`SQGIv>br5sl(tCs2GP{b7$teX#v~tTa2!>a z;jiuFe?s$p#knQf3zDiJB8kSeVxa69vT!c#FXCIMD+|g&c$e*mZ};O0QCG!2#uPCK zn^n;6n&(NViC5H;24Tck_K;+^Nb{wZr13--g~Jf942e`FfvcV(wCBeQ=hLsEidlXX zjv(CB{A2|Emtvv5(dG7X8K}lp{=aBhWdM9h@PKxpBG^>!{(*QBZdcS`xtZ$Ul|*^i`p;)QORrMXcoi05u22+d4S6wAO9b z;>@EoXOFAB7$4c*mECZmhHBQ6=~qiKsge;^EfM%qwV~85)V#X zY5vC*V)t4bK+{bOj%6*vHZAZZgdc=);;BG?;IPL`)b6zDR@+f-P%^5ShhiCaJ5>Fi zUk(l7F?NRJMtJ;h8-rJ>s<0rEOL6_I4<)U=^|Qc|h~-NDqRgMO56hZRI?8V#1M z1W|&~PKX*Q2?jF3P@aU=qxNz)9QuZfc91H+7paMd!lasgm7pi$YI4NWRMd3WXeD}V zOejTojrRoold|NhKdbAoNd$#VOiI)myken`05%BRemn_P7YnIdLmk_+OvDNI0S6Pu zK#u>mPTb`Y^10w#d~Z5_1eE^ zuiME6m#nqSaic;+ai37L_9T2IciZ-lEz}At%f?~VSHxTG6%BG~Wh@Y~! z0@G2}v==EGy1>JXt54W-Uf|P}GDojjOo+FZ;BlRmZY4$nolONeQlGW(;XJo1bnaW! zP^W^#Uy`*??6E%*ulm?kl-opRr7&SRhB@EdM@?afY&8jMeUBMWhuR7Y1Djt>Yz63 z@D0Au?6|5JOJ#ck-79Xf@rbGdK@{YzN^1waAlD={44PC z%&I)>t1Y1xZjuT{{S{Bo$I<#`dD_$Q6Z;J%!y6wKJYXovgW0o^n71#jBkQ8o9Bl>=l{{Yt* z>kl;zP8714kF3Bd0Gw(zjsSRywK@LE;yxO;Ci^(6 zA=I?z)FbC;=#sjZ2&Gq;rxy6zlKrpQ{{UABEiGPV`mMyim`45Dlkq4gb`7`fjxCj< zd4Z#Es!phejJ({Ps#(9{P0J;)*=g74W%U6-8J;YT9(1Ay6-L9n=PZNtPW`*YBYnD zN%ZO&{{YzHsb`k86K6Wv+!00$W0s`xZlE3@{{Sv@Mv?C0jn?E7>QpMdc`a%ccK-lZ zB9r-a+{Et$Xt1*vhE!jRvR9QsMg6{*%M0tB3waMaReCnYsl~Q&$a3P?sykA!6H7l7 zDd>_OX0NJ7=a8quc{lF*;EgL=lE^)tq5a)>!y{CZ-(U_W-Mnx^>N4EenXOlo6;T_o zsrY)3e`=j@vz$7Txsk|b-O*QNcA%*JoKT-#fiw>%0?`UA%16UZ_XOAB?}Qr9ms(UKO~)Y+u8_)n^U9s`dSR;I*{wT2fdZY{lN zCJ@CpAuymSRfQXN2km{Yv-?=97}B+Wf$XlNSmvQZSdtxS@mFeYtH=G86l!qAgi+6C+~=n8IaMrACgvOdHR9M;Mzui==y@b=CMuK1 zsBeq>vZsy&ggw=rzNKsG7YbrlYN_Q)bCFWLx7*|Uc#fTOC5_3mzHSD*RoGW$CW42h z7-DjXtS1*LtMz7Y-dn2@4J)y)g>Za=+f$092XtO2SK*_cm8U9}-~C)tiI&cB8JQ_5 zpOds>W$Jfr{wC|!0i@RMWq~Oh3W*_5YFC#|f3joyT$O&tJ4@7(!tmSc0iLVIIU0pU zMR(=)mwXqiXtKx>`$?j@gE5gRDzrNezi13lgqH77)77AwPF9k!5l%tn8TfalKFI$7 zg2SylT9SKM?5XObovv4Yy#ZnX2Yx(pEgpDv?K)+ZfSAxq((xcMsVq4Gx632xeEJ>q z_Rg%4P)QT6;5a)G$Q)G}sL82X-o40AMDSu2X~~z6EZm!KOng{%qiRs!ML7MuM&nAi^y8AqEH{)qpp74a=^6mk zD0wYk6-hPi3QGy3xwni-YboOB7KSrHxF0jyB%WTrvbnKK6{7&9R4&v~MMJY6web8H zG|ZQ_@3o z!CA>>=G^GSbX6G**Hz%WjpqQXlKT~Hxf)aro9V?_N@<@}W|rQu0lZ4iV^BZ~$nh;k zHEu2TKWh_dpw%KvH$mz`OUQYEOCBI~`2NcN&oAc7({5$BwMhiOx**1^#-SXFtw{R; ztNTB-fL;@(NM(-amEWd|RSLn^zanW}{{Y#pDu<3al3%M{vWtL==$9wstvK%V;AlP; zTrfdCm2Vx(u{P{On8_?S6UbBSj-%}^2D!Pnyl+lbR7k*S8jEA=dpVty+u}6=wK%r^n;JEF-bhue3|= zM(RfeHra>fBp-jt&4GY!-n}5EzP%EW_;b9r7otXv0gqc&?npr9;GbBvz-1 zG_7_k%L?=@ZudsLNG6q%-JEhG!lRI{fv3ftLgEWgG1(*A#~61bl#jUhfCGgpN5jh% zd3LR&M3N=WlvsuaO~(<&zX4kHr_ONCAH(FGp z+fZX2yoQSVl_XGx75%S^_OP!|(W_hCIJd1GT19pYL0WU%gz@-Sjs;};R<{+k%$jZS zj;&r&DNl@($J3=tFC_T5wqB{GwYY1`UNFT666zxa7NH)cPwf%$f2)w_FB<*fwYV%N zjerWGfQ9=YQ|FUAHI_t*3(rg#!7!lWNml-U+wI5f{{XRUDy1Ho43^{3Kfmu9QsEPk3$oEb-+n(4T$EbeE}wD@VpNp!1;L~wNr%J4y))HZEhoHxR82r zy6(!PfhOBlk*C4@xTSUVt&RGrTE<9skBA=?c@^K`-;(jb+9suOXDQQe13XeNqIeak ztvoR9`%Ps;xv@hnvcdoXO0trhk;bQX_`k`>rQ8#=uP7(sBm&G!R57ZLzZ4>MO+GO% z8+9t-xDs}Z(y3Kvr|l+e8>C--WggPyL3AGtMu#U@KyRtFGcgf;c_Q}j`E{w|!$X}~&R#3!{Y6|S% zvK^E5e$FhOU(>alG?G$}D=}V5r9%NmZbe7h`%TM^DM)PY)xJ2TGRZI>4>}_5qrT_h zJa_(F8>SmeyST08WMyaI&@mx-lB|Q9QLD?B9won*3a`AKsp&`5wTqbW)2M0iJ=lfwv`L&*EMzEB^oml9;41 zO7|9Q9Ss9UcL16Xvb=ry98kk`O+D>lmeS}v>obE2006GZQA7NzkV3OsNiq8Ynt>4R zl&fr}oOjO0sYNB!1~LLf$?-A}2?U1ZoJS<5Cddw{qFqT>g=rI0_tG^h(`KgiZe!ua zDGTW05n@=|}w$HirR zr_Jcxj%Mb+0UX+(3h(bof#uJ&++u6hp|=o~Mg=9Ev3GWg;Vf_S_aARC7>4U$O~g z-}$m%rRugo(%TdRbYRXCCDf>993xeKhr(1JWjJWI6@eIV)g|c0u`IA%f zpR+X%2USPIYUy0=Z0Cg6iQnmZrYyqjl*3Zr<&_Nj-oF9!q zt2ZY#_;=2I>D}qhx0+?jn}#%&)-npvQ{g;57Og*o#pPGOR^Va(WhTi0*d^e`n$0kvEyNipV2LQPm%t9q9Y2iXVt_{{U68 zR=RA+O~sssTXiOYDv(7<+n3t-j%h3))I`YapvS~Yt^g!*`v6n5KGp?d_bX+nz?|bq zrP-QFGNXV#&muyv@^AK=0ouzhk0Z{pM-s*GNO@GWAk~_U@UvIo{{Slu^*<}gXpZ)5 zWR0r+nwF`lC6pRB*#nm>k4=8gWJ#lA!Faqg?%aOG6u1rWkB=0yST8K~y98iFq#jQl zDa3{>c~c3mbZIoEYwKv%e^i!mLljh|`!6r}FY>V+E^Arn_Tg$CwG8V*eiPE9^zgxA z?)E=jt`DmbZ-KU=vvpFeT|PBhD-^|6*lH29(!}ANSb)%{CPrR{rf+Yv`&f;~ml@`g z>rP&AG30GnDyj;f1IytfmLBPrkm^>ia|A0CwLD^wkV6F<5`Nb%NA_?P{8t)h?|n86 zxnWbpfIcpCufxf(s#$3j)ssbSbb*UHgkxH93_1KHpY=X0Ls7H1Tc53IKvb|#Nmvq8 z1!WJ$jo+yA%{Zb-4z=x1Pg!v6qbLZxd){{SnCFZ&!-)#}LMyn>F=-O&C@Qxu^pNg?<*Wr*Jt3=61n0&2ibUk=S?_{SKNe)`1IAzxqF9h6MF{afVHcZX z8WsC#SN{N`bwF9DV;qPJPKxWxr@~oqZh>)m6T=k4m3L6o<3^wiIyc43Bzo7Ebp3MM z)eIK&P%9`rxsSD9=j)0WYBpB7#lOZ+s1-*h8v-lGr3qd?X|f5aTU_b42?>fw=2Ce| zDm_5MuNsEqgDkZx?=QKt)Y0D2WGrU@hXd>=3<;pBga;O+Fe0$n1$Ntfk>|z#W-3*d344hnm)zb!KBX zNYG3`2%vl|Qdk})y?@sGSQ^N+%@*hfVN=42zhx;_D!&#fWS&>^By&KP7cw`lXdo;$ zs1yV5`&fIZX$f%ccWolOGcw5%f_N7|wNSyqKm&4KSr1DU^y6rWDis-JK|l*B;yg!2 z!Eo!h)=aQmksLH8IS(ZTsqnLL{jZ1lek@fNCXI2X%JNyr_ZF-u@RljZofdL-!8hNfOB-&PFAj~XP4Cf~HG*pwR2={eFF3FXI(ED2ENqzdoEvvOawxN8tTr4}h9 zsH3`y9xw2pgnuPBRmE4?Yj*NR_L9LICEktdmQYxLDjSP>Y`}k){{S?Nu)0AQw67Rs zXXg*XXb7k)PqqF_jy$m|jWP@2M3^Dy?xe9w6UUfdRrpVK!ZwzFFJ6Ik4a^cB+)UjV z00>?z2M$B3;)Y-AC7h7daDn!)`9t;)wyMKlMGI+A({ zW9?cUTG}>_Bgu^&cB?1^h94DZ8MyPTi-KAQjs=oVG6vlw6)Y5Q#z4D~&G>v+tIh8Q zrDY>UaQv3MofHZX38wV;g%5|>z&5uM!u;5=SNNudN9>RrmfKTtogPa;sWU@zioU4; zI}PX+)p`1yT<^!?$Yu76Hj#2y(FWF1R6Cl1QlQswhwSjcn^(CyZlR~5nM*W#@@_oq zLGaKHTvnfJ6VbK5Lg;Clgrr4Ah6{s5r8ZV)JY8w_dj8fCUQEzRF5ys-$ZP2nzXRaA za_HT#MZDJfgO|FNzNt{Mo%nQ7U$?=OkM>xrDZRFi6B^k@B@{J!QCKs7!LA6F+Q(S8 zhRtYaA-{H&pr9abM-xi&$gY>E-B?fhI`U$$@+^`uJb^2~ZT?MiPOvhOcc<(&DwG%|(b?1^daFfXK{1!;jkoQ$F4%qL%|)b`Tir^ekm9efqL8Y< zQHpX=_ITjyStGbyC z&2d#-M9F7xM2aN0QVDV>#Gi}9b>9xGk{xcvVoH*ulE`aR^nmpa#eO#B_I}U#7!0#( zRFs5yBHa_K&GLlSV>*5O#6X_I?vuVOC2N@@dtA{23id z5i+ne6sF`;Za)`a^>CY0vbcaqEx8z8uJ*#ML}E;CTAWw6Pql||&!%ct%_=?Eaq=elg2qDBZW^8M1lUvMgIVRz^rb2Ww}*o!?|i8s{CB5 zLRrCKxj19x?Rx(J%QvAeRhkDB^yR4lbp$Ef3@$CDfxTNGS~)%@S6*BsJJ!7hUEZ5- zd1CO&k_)5gt-R8FTd=1ck1AK}{5Vyf$aLR2X#tfKGXfil_=Jc0QNL#(_ck+V+K=e_ z@%yF+g~Jx3D-W{8k(*{-*iofwx~G(H0!|<5+=n$?gLc^GMW6J4oAi}rem=M?B?K3Z zl(%ZLe$OW5im*>I=;dB3%OatI{_>j>u{G=aRQP!1d4B#G84+L+U%{}HlEs*kS;~N0 z;ZJ-M3(0MI`epeuMzoIE)j;G`xY4=Np9=og7V6qtEbn__+$4=bbReXFtv)9k3bj{{ z54DQ209-8o&L`j_-dFPbzo2!r4p*Dlw{hC$&V4R`z-$e$^QTY zg?1XMUc!-H(LE*LSQ-{;)*yb*!VfRz{{W4#w{XR5%2kMl=|KuB%pVQM!B5)%0EED) z@zg?ypt<-YR*jY1Y``$)J}M83BihcK%_r9_6h|y(j1-ONyt#^d4-D7P&ks3ctoE=l zQ9>#h9>5duwhn?%(spzGYm|3NtQqG0u*B{GE5*}|c;cwfE_sd%>v3UrOmZlq@@hv) zij!a3_x@Zf*EDachQG3yJ*1>FL|@`YC*mVu)Z{+W{5W5!Y17*(-`lUIpp_s70;^i} z3;xRwbd7!;PQqP2V4`BJ%*djLm3c{B+u-|HRU-PV>&pHYD=Y(P0M@~`#H}i(Jw8SUc5Uug~W^2dAZt=#+$F0reQ@W~SbH4X;{-&N#+vI;~LLG*|mF)qBoJ ziK7dywp%Y+!)4O=DJTHN%SV2jp0^kIow&yH|Z z=VB5!1j7TH{8<%@{{WDs@LIkw*zmxCrBTrC*!oG4HY1o?Vc7=-hxGDYy)D~#Q~94@ z7+8C7R3Yylj3w25Rr$*y$WU%{GU;cj4U4<<0RywJ((w`VWe8tE2{;mr05q z>E5#=%|3wCa?SY=6tomMWFqmD>{NfYC92BA?0zM+DSp=1{2a_r%9xh}TYd(Uf?6v5 zDOuP_o4eAkjE_g)J!}LsywL*)PleC4Ze*Y-$-#ITbW1^9IoNJrlNy^67wMd_KI6+q z*RcVxHthvrh&SZ_*#TklUPd!JMV0pZpJyv0)43?9UMKfd_}-e86;1^Tmk0uiuTYk$ zG!sta&K293;y!>Xuy6^{4f(bZfeCQl9ge}HaNm$;<4(F5m+1G}Cw?4s^U%WH?Y_i| zm%5ZRh&OONgC6qsX}2i!zw&yDtYS94@og>0ShzLbnW3|jl*qGCoA$qyboV5A!+1o3 zzg=eo{9Cy2QyKlFhmQ_fc{SrwiR2*t;dB$BAEKB~b(E>~t38vY>pjTPp@qk4hKm^X z-QAEd)=QElpPy5J28bX^RDBdkf~ZVn{0}E`DEr&%LHO`?e0ep>u9IH%!1&>tutK}2 z9YOA^OYL$Jg315a7VHM{ckk%!?_~(|@`*#Bx$1`_mKXDetCXqt( z`X&@)p%hQ_fW>w13hf z4dg3JA9*m*X%ADs-~h!rW(K^WN7);PKi|HN7rB-;rAO`yn4~30M=;FmlkDPO)YU;< zFF;JUGo6CvPY!&bUOxl^ZTGR-+a@0GYBZ3RV()0O&tIlUC1<@Fi>aS!U`x)$W|4YVgtf0-o4X(V3B&+O(txflu4(22I5zn8XVdn>&* zHR8@!jXLv}Bk@qs5(lLun(AziOoLu7T5t#PmWvc4+ugU$;|TXV80 zEwLY0>>mGG)bC&Hk>o;b3|DjI`-rM=h~fsP&0tG9js8UnpL0dNx7~@VmN%7BQLUaO zHQ$3TUgCDR(bm-lExOu><2!c!X-TB4gc?Ur)#Ez#z<6TXO1tD%K zj4SDBgf4%lVAekm19N^ag)^qtt;Om&a#SKKdk=uDY68HW4Z{o6Wd zy4-Nkv((C!^fO});Aq7O(-!#snQzdOyw@^S#B#p)C)(IC=o{CT-#&?*;(8C;OvX$< z)0u7;nmqC;L*np!f^1$$Xp3^+vopF2KbO^BTl(=eZRa3cIC;4y3e3D_@ z+lRMOu}!T7sjWZ0ZrPLyyd|zuM2agffMH)BA2acsn5Nere5!y;QiwU8Ye%g|?u|E| zKYRse2Dhmc&;C66`QorwN_Hfa1OJwhF%FUnc5$6H?1HpRCU`OJb1c&qaZQjsYyF6fwEWem^D{mNQygwpyoiETS0D`w~vPdABTrZn;ZX zYjrT34*20&A!7wP!RUsH&rH6p`H*TI2OLKB42myWrdx3_1?xxE&sgYCfO|8ZD9f~o90O>mGj(0XJ z1Ixm;S4+z6%vbS?IV%t@UQXpnP4sM}lEuT>3Fg+EqdQIOw7}Jw$0^4`9aKx0O^9Tg z5C8wm-<((*H^D#)o;7N4OTVm|(yqM7{@V3hPtk$u#hiZEn;WZCHQKAvHRQ;72iuW^ zN1$gdH+8?cfPOHgk_PyHID^b+tOgK3)@3ki?!n{xR>KpNW!M{5)%a*k2kKu5@$f&2 zeW`f0MN?LQa+G@zNlv56ItoeYldoOB=?xEBS94RZfARng+Jg|)R4W~C@K$)j2y&mZ zL@Q1+-zyIK;Pth>^fhO^*Nb1y=0_JzUpw2wz7lE=>p20*|I??k3C!m#emve>LLUqU=yun_`D~M^nDE1&29x9}J{9bf6WuRi81K~=ISC)xwg0{J>vfM) z0WR?oH^*GOFGga$3;0s?ma=p|s@3{By?L^rmuO7IlpX_T;PI1-{eoQD3JQ{Dr;XvE z8nI3AyXD7(N2!G`xCSu}L-ImrO|RopMRCmc zRiSlIp3>OL1Do;B)VtoGEf49^Vn!~A{XFSQNqJe8_uCy*^WqZoyO#g8Tjs!{q|?Wl zk;8$^VF)Mp8_z$Q@DNWqUK3)g$ z%zG~#Nv#lgGv-9n;#|sLcLykpjyfSO-{x?m*NRD1;&+rkR|Wei&73-%dD0)f@FlE4 ziZ!W>S|-Jc?_CGKBm}k(;PMi~KSbFe+KyC@>E{rpr1q4d_twkkokDKGxr5~>&HTne zFof2};Pp}X5->WJ02a{y=K2L}=dKFlI(iZiI8=D+QV|X9#~6bfiKkYP}W5=STBjWsWp{8WT``Q_r-bP z5#SV!KL#*C5_RkLB~fv}oBwu5r48B_BYo>|Kf0{0XNscQ(C`P29YZ}Fo&*f zW08EEoL{u`oJ!uosUms=zF0pBTmBSb-zG6on?u$Rn`8LVv_`0IH60jNfjbwjAj}m+ zDA;qk32LDbvv_LmupQ zt;%_niaw_1zC$-eM)cHlkqNOfO zSW5E762r9Tp>^zC0pz0uhAA`J7vc}jSb%)HTtL>V;_p3uEWP(4C6puQnOb>z%dJ97 zo)3$z58jY_=F3TgF|afPHdw!tJyxD2g-l3ABN&7d5kj1td($mM8cJaHq8h}tu9zan z1)|osS-@pR>A(L4l_Z~%gJ&GN2a;Y1w70N*lyI0#k2$;Umeg62%+8pc_^b3Urq(Ai zfV=ZgSV?EXFhL_%iw{&gk*9WhDjS1kI90gVk`}vN>#{y=#C~n+Tc9Y?qYJ?ay1<%u z10*gc-Kq<*=7?Z*3RmNz+RtvIq1uBk(q|v~5KD$POQY-RQnO}oCFYFH>B4Xc0k2=d z?e|LCgEj<|6jNF@Ab<$~C_S>O2Ah{WNBopO$Efd~NQVk7PmuOGJsX?{ajmKws~f#a z&CbxHR0z<0|4nS9PL)$MyT6J_8V7xeGi!RX0EC9Pkq5qNEU~2Z*=#kU?urkmYJ{{4 zHzkzn-eNQP!W8$NzpLsl^Fr|N1{thdAm9a#p4M2G7ScK1@ojEwLX}&`CSJ+vF!t&{ znXbyHgJMO@rREE0Ugo~W*!957n=klZGJifjy)vwJ&rwk{xF*GQzY|A}{!p-*72*{L zw&&Dh2uLL+h&^km3SY6W)1N2lz7m>Vtq`Hp9FPxp>jrL*pW(v3vL5u5%PlW>fB%#C ztpOw^>oy)8b_0~1tA1{bdegX=lb#;n;Ogu0RUu%&%?*CMqyg-=z@*SmH-?ie3r>Tn zL;<70JM*L`sSYzfoD33`94R6-U_yc%Iv#gVuBI9P*sULmpF_nSmlP~HhH-STE||~s{Y@0kzW% zdP=T5lBN-H^S!~9ym9oo2`!?IWq>OAWLw$Dxq0O6?8ewta95th?KxU~0*z}nZZtu& z5ZcLB<=$#p8_bk4^b)$_&KHfgsi5*Xb?h^TXqMrGzkdH(G*m}Lz;9QoSz&kAoz>*8 zTFFtT`>Ch2SRiN6Y`%h@qHG*Es(oOguaPgxLMT56M7--~7-$he7RMs>|3(C%z}7#s zF9fpPil583s^QQf*;Ig82?f`Wqa@yxx&o7D8gFsIT03e0s9q&k!=<@@&bqqwifK9P zW$BMlS{Afy=h3?9wJ%goLw!N)!`N7cn*ojpt2`cYo&Sy=R*<?QCViP%h#Ax7{@kB_b-<_54mDgIa`hG`m z)b7oT@7yFL3Z#-?Ig+LA(D)nvW>iUg*(nVjX1QZl}1&u3MchDg@Iy^M6yEZ@{*w_NPJ zq{Erdf&D<@K1`hMf}e8*&YwNA^W4oJ;u-Qu;IRZQ(qRD5^NqFxdFNwY@@s<(MVutO z>fVThS68=YVXV_f_zT%YMGGO5rAvj&Z))IYx6-U>^l{sc+D|k4^+$8Dk2ud!bU`)3 zSjU;GY?_r8!H+>ROqj!KT0R8;mffLz_Y_LzU+Gq}pz^Am^t^O;`uN)2^e$^VHlSzh zs(pM3y|2Zgou5xbNK$&cOy#);cS}W$L266Y)Od{98rA~uk%`T{wio@wi6Z5uoVqN0 z2Mpeuf>7ucaYYet$SkqFhpC;C+QFvlZnXAdSh)J!)@&6h{{zA-T!bl9*0^cq>oap9 zXa>9G0&djVl(Em+$iP!G#KuJ{;f%n$INN5mV7hfL(qL}iQ=3_y zvQ)|B_o!BZ1~64e~8LhTxC)6dJ^<8$La+B00nW zDow7gz5xI&2CwhPNJ@g7KvhOY#aX{?d

Y`(P4mqQABkO+^?0F&_}C!hhLIl62m4L=?|T7XwU zqv!qjN7<7*SEawnj#U9z3-tbSW-4>0v252RlB<2C>rP>J+jt)OizazAqbewWsPRcg z)7``>Z~6}a`+&RZVN$EHWL*V+^<14OxmOmo=A9hr>0js(dGI-v??e3W;UrS3Ro=U1 z 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 diff --git a/chronos/static/js/amcharts/patterns/chalk/pattern4.jpg b/chronos/static/js/amcharts/patterns/chalk/pattern4.jpg deleted file mode 100644 index 690c5033d23fa04d3bfab0774c31e352f79457f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 163538 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%0AN`yLkN-$z}EZwvB4Ge^*&93YApZ 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 L%xY2L%d9`z!vp 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%0A6dRFJ$>e=?7c6;7&t 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%0DWZ2<{w^FV@UCb&QL{+5qripeyIw* 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 diff --git a/chronos/static/js/amcharts/patterns/chalk/pattern6.jpg b/chronos/static/js/amcharts/patterns/chalk/pattern6.jpg deleted file mode 100644 index 3575a95f749877afe65c223dcf30e8840fc5aa96..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 146193 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 diff --git a/chronos/static/js/amcharts/patterns/white/pattern10.png b/chronos/static/js/amcharts/patterns/white/pattern10.png deleted file mode 100644 index c36de6ea6cfb727c739884d8cf188c677080279e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 155 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm1|(O0oL2{=I14-?iy0WWg+Z8+Vb&Z8prAss zN02WALzOB6LqjtI!_WUf`XvKHsR0ASs{{rHs~HRo;`x)}kGcWXDtfv&hE&{2`t$$4 tJ+o0lVnTw0U}BO3vjh`RlHvbpzNOEA-F_4rv5Womj@&7+F1KW2Nj{Oo>l!06ZPgg&ebxsLQ0JoDUL;wH) diff --git a/chronos/static/js/amcharts/patterns/white/pattern12.png b/chronos/static/js/amcharts/patterns/white/pattern12.png deleted file mode 100644 index f893c7bb21674285a0862b7c507fb11c3af02cfb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 160 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm1|(O0oL2{=I14-?iy0WWg+Z8+Vb&Z8prAss zN02WALzOB6LqjtI!_WUf`XvKHsR0ASs{{rHs~HRo;`x)}kGcWXs(HFNhE&}0Ic3Pl zpup4M@Zo>`v7=^2aRLjvuCEM=osoQ@K721TLxQvbGh3)wB~S;0r>mdKI;Vst0Oo`# AKmY&$ diff --git a/chronos/static/js/amcharts/patterns/white/pattern13.png b/chronos/static/js/amcharts/patterns/white/pattern13.png deleted file mode 100644 index f44deea3d907657fb5d890d1c1aaec733a894cf3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 154 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm1|(O0oL2{=I14-?iy0WWg+Z8+Vb&Z8prAss zN02WALzOB6LqjtI!_WUf`XvKHsR0ASs{{rHs~HRo;`x)}kGg@>db&7pzNOE9qVFgMu{Qu9)z&4eI)#`HR91!2r)z4*}Q$iB}7SAUt diff --git a/chronos/static/js/amcharts/patterns/white/pattern16.png b/chronos/static/js/amcharts/patterns/white/pattern16.png deleted file mode 100644 index f8ce248348ab3f27849cfa42822c4bbb1e501d36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 158 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm1|(O0oL2{=I14-?iy0WWg+Z8+Vb&Z8prAss zN02WALzOB6LqjtI!_WUf`XvKHsR0ASs{{rHs~HRo;`x)}kGcWXs(89MhE&{2`t$$) w|9Uo-gp?!)W(g)89v+^a6HGvPhX4PW8Q2c6a8wsjne-#Ve&LEJm-JC&DU4U6-r};*pdInEdKbLh*2~7ZhEGQWO diff --git a/chronos/static/js/amcharts/patterns/white/pattern18.png b/chronos/static/js/amcharts/patterns/white/pattern18.png deleted file mode 100644 index 1b2d90a4794cb66d15f172c4054ae816e5410e77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 155 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm1|(O0oL2{=I14-?iy0WWg+Z8+Vb&Z8prAss zN02WALzOB6LqjtI!_WUf`XvKHsR0ASs{{rHs~HRo;`x)}kGcWXDtfv&hE&{2`t$$) r|9Uo+14kOzA|!y|<0_ye!~g%x3~c*Z*yFDiT7&qWu6{1-oD!MFVdQ&MBb@02vJ} AE&u=k diff --git a/chronos/static/js/amcharts/patterns/white/pattern2.png b/chronos/static/js/amcharts/patterns/white/pattern2.png deleted file mode 100644 index 7d80cbd04ec01304d719770adcba983266161424..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 157 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm1|(O0oL2{=I14-?iy0WWg+Z8+Vb&Z8prAss zN02WALzOB6LqjtI!_WUf`XvKHsR0ASs{{rHs~HRo;`x)}kGcWXDto#(hE&{2`t$$) u|9Uo+1BVVAIMAVU;79|T0mw3j|Nog8*gmna7s^Ljf%u-TelF{r5}E+XoGIG? diff --git a/chronos/static/js/amcharts/patterns/white/pattern20.png b/chronos/static/js/amcharts/patterns/white/pattern20.png deleted file mode 100644 index 9c1830e94c37a9de960a2954e4d84bfff43c623e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 158 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm1|(O0oL2{=I14-?iy0WWg+Z8+Vb&Z8prAss zN02WALzOB6LqjtI!_WUf`XvKHsR0ASs{{rHs~HRo;`x)}kGcWXs(89MhE&{2N&tc% x|NsB5XVXYXa$xQ`vB^NR$H0?~jm_-;m diff --git a/chronos/static/js/amcharts/patterns/white/pattern21.png b/chronos/static/js/amcharts/patterns/white/pattern21.png deleted file mode 100644 index ba3586cf63bf27c37320642ef96367104af3c6ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 158 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm1|(O0oL2{=I14-?iy0WWg+Z8+Vb&Z8prAss zN02WALzOB6LqjtI!_WUf`XvKHsR0ASs{{rHs~HRo;`x)}kGcWXs(89MhE&{2`t$$4 yJ+o0lk^}qyiBk^T{J*fFv9Xa6sNny9W`?WkLLW2rPW%IM89ZJ6T-G@yGywnw>@1T2 diff --git a/chronos/static/js/amcharts/patterns/white/pattern3.png b/chronos/static/js/amcharts/patterns/white/pattern3.png deleted file mode 100644 index 66a61d8e9a2e6ea6498434027fabf1f8076f4fb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm1|(O0oL2{=I14-?iy0WWg+Z8+Vb&Z8prAss zN02WALzOB6LqjtI!_WUf`XvKHsR0ASs{{rHs~HRo;`x)}kGcWXN_e_BhE&{2`tkq& l|9Z9(hgk|h!Tdb&7{kyDYgIr diff --git a/chronos/static/js/amcharts/patterns/white/pattern6.png b/chronos/static/js/amcharts/patterns/white/pattern6.png deleted file mode 100644 index 3f74e5b54b5bbd0140211b0fa20427d8decf3e94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 161 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm1|(O0oL2{=I14-?iy0WWg+Z8+Vb&Z8prAss zN02WALzOB6LqjtI!_WUf`XvKHsR0ASs{{rHs~HRo;`x)}kGcWXs(ZRPhE&}0IlhpQ z!GMQp!-fC#X=zP6SZ@8A#alF6C6Ae(f#LsuW`=WLxY(+L{QZDh7(8A5T-G@yGywn} CPAX#n diff --git a/chronos/static/js/amcharts/patterns/white/pattern7.png b/chronos/static/js/amcharts/patterns/white/pattern7.png deleted file mode 100644 index bc7dbd0fc80f688bc487cb945543adfcbee84818..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 154 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm1|(O0oL2{=I14-?iy0WWg+Z8+Vb&Z8prAss zN02WALzOB6LqjtI!_WUf`XvKHsR0ASs{{rHs~HRo;`x)}kGg@>db&7this.maxLabelWidth&&(p=this.maxLabelWidth);this.labelText&&this.labelsEnabled||(x=p=0);A=void 0===this.pieX?(b-f-a)/2+f:e(this.pieX,this.realWidth);B=void 0===this.pieY?(m-z-n)/2+z:e(this.pieY,m);g=e(this.radius,b,m);g||(b=0<=x?b-f-a-2*p:b-f-a,m=m-z-n,g=Math.min(b,m),mb&&(g=b)),m=l.toCoordinate(this.pullOutRadius,g),g=(0<=x?g-1.8*(x+m):g-1.8*m)/2);g=g&&(e=g-1);n=l.fitToBounds(this.startAngle,0,360);0=this.hideLabelsPercent){var h=n+r/2;0>h&&(h+=360);360t&&(a.skipTick=!0));var r=A+p*(g+t),E=B+C*(g+t),w,u=0;isNaN(D)&&350=h&&0<=h?(y=0,w="start",u=8):90<=h&&180>h?(y=1,w="start",u=8):180<=h&&270>h?(y=2,w= -"end",u=-8):270<=h&&357>=h?(y=3,w="end",u=-8):357<=h&&(f>D?(y=0,w="start",u=8):(y=3,w="end",u=-8));a.labelQuarter=y}else w="middle";h=this.formatString(this.labelText,a);(t=this.labelFunction)&&(h=t(a,h));t=a.labelColor;t||(t=this.color);""!==h&&(h=l.wrappedText(c,h,t,this.fontFamily,this.fontSize,w,!1,this.maxLabelWidth),l.setCN(this,h,"pie-label"),l.setCN(this,h,a.className,!0),h.translate(r+1.5*u,E),h.node.style.pointerEvents="none",a.ty=E,a.textX=r+1.5*u,v.push(h),this.axesSet.push(v),a.labelSet= -v,a.label=h);a.tx=r;a.tx2=r+u;a.tx0=A+p*g;a.ty0=B+C*g}r=e+(g-e)/2;a.pulled&&(r+=this.pullOutRadiusReal);a.balloonX=p*r+A;a.balloonY=C*r+B;a.startX=Math.round(p*z);a.startY=Math.round(C*z);a.pullX=Math.round(p*m);a.pullY=Math.round(C*m);this.graphsSet.push(q);if(0===a.alpha||0c?b.toFront():180<=c&&b.toBack()}},arrangeLabels:function(){var d=this.chartData,k=d.length,c,b;for(b=k-1;0<=b;b--)c=d[b],0!==c.labelQuarter||c.hidden||this.checkOverlapping(b,c,0,!0,0);for(b=0;bm&&isNaN(k.labelRadius)&&(e=k.ty+3*k.iy,k.ty=e,n.translate(k.textX,e),this.checkOverlapping(d, -k,c,b,m+1))}},checkOverlappingReal:function(d,k,c){var b=!1,m=d.label,e=k.label;d.labelQuarter!=c||d.hidden||k.hidden||!e||(m=m.getBBox(),c={},c.width=m.width,c.height=m.height,c.y=d.ty,c.x=d.tx,d=e.getBBox(),e={},e.width=d.width,e.height=d.height,e.y=k.ty,e.x=k.tx,l.hitTest(c,e)&&(b=!0));return b}})})(); \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/dataloader/dataloader.js b/chronos/static/js/amcharts/plugins/dataloader/dataloader.js deleted file mode 100644 index ff87e8c..0000000 --- a/chronos/static/js/amcharts/plugins/dataloader/dataloader.js +++ /dev/null @@ -1,664 +0,0 @@ -/* -Plugin Name: amCharts Data Loader -Description: This plugin adds external data loading capabilities to all amCharts libraries. -Author: Martynas Majeris, amCharts -Version: 1.0.10 -Author URI: http://www.amcharts.com/ - -Copyright 2015 amCharts - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. - -Please note that the above license covers only this plugin. It by all means does -not apply to any other amCharts products that are covered by different licenses. -*/ - -/** - * TODO: - * incremental load - * XML support (?) - */ - -/* globals AmCharts, ActiveXObject */ -/* jshint -W061 */ - -/** - * Initialize language prompt container - */ -AmCharts.translations.dataLoader = {}; - -/** - * Set init handler - */ -AmCharts.addInitHandler( function( chart ) { - - /** - * Check if dataLoader is set (initialize it) - */ - if ( undefined === chart.dataLoader || !isObject( chart.dataLoader ) ) - chart.dataLoader = {}; - - /** - * Check charts version for compatibility: - * the first compatible version is 3.13 - */ - var version = chart.version.split( '.' ); - if ( ( Number( version[ 0 ] ) < 3 ) || ( 3 === Number( version[ 0 ] ) && ( Number( version[ 1 ] ) < 13 ) ) ) - return; - - /** - * Define object reference for easy access - */ - var l = chart.dataLoader; - l.remaining = 0; - - /** - * Set defaults - */ - var defaults = { - 'async': true, - 'format': 'json', - 'showErrors': true, - 'showCurtain': true, - 'noStyles': false, - 'reload': 0, - 'timestamp': false, - 'delimiter': ',', - 'skip': 0, - 'skipEmpty': true, - 'useColumnNames': false, - 'reverse': false, - 'reloading': false, - 'complete': false, - 'error': false, - 'headers': [], - 'chart': chart - }; - - /** - * Create a function that can be used to load data (or reload via API) - */ - l.loadData = function() { - - /** - * Load all files in a row - */ - if ( 'stock' === chart.type ) { - - // delay this a little bit so the chart has the chance to build itself - setTimeout( function() { - - // preserve animation - if ( 0 > chart.panelsSettings.startDuration ) { - l.startDuration = chart.panelsSettings.startDuration; - chart.panelsSettings.startDuration = 0; - } - - // cycle through all of the data sets - for ( var x = 0; x < chart.dataSets.length; x++ ) { - var ds = chart.dataSets[ x ]; - - // load data - if ( undefined !== ds.dataLoader && undefined !== ds.dataLoader.url ) { - - ds.dataProvider = []; - applyDefaults( ds.dataLoader ); - loadFile( ds.dataLoader.url, ds, ds.dataLoader, 'dataProvider' ); - - } - - // load events data - if ( undefined !== ds.eventDataLoader && undefined !== ds.eventDataLoader.url ) { - - ds.events = []; - applyDefaults( ds.eventDataLoader ); - loadFile( ds.eventDataLoader.url, ds, ds.eventDataLoader, 'stockEvents' ); - - } - } - - }, 100 ); - - } else { - - applyDefaults( l ); - - if ( undefined === l.url ) - return; - - // preserve animation - if ( undefined !== chart.startDuration && ( 0 < chart.startDuration ) ) { - l.startDuration = chart.startDuration; - chart.startDuration = 0; - } - - if ( 'gauge' === chart.type ) { - // set empty data set - if ( undefined === chart.arrows ) - chart.arrows = []; - - loadFile( l.url, chart, l, 'arrows' ); - } else { - // set empty data set - if ( undefined === chart.dataProvider ) - chart.dataProvider = chart.type === 'map' ? {} : []; - - loadFile( l.url, chart, l, 'dataProvider' ); - } - - } - - }; - - /** - * Trigger load - */ - l.loadData(); - - /** - * Loads a file and determines correct parsing mechanism for it - */ - function loadFile( url, holder, options, providerKey ) { - - // set default providerKey - if ( undefined === providerKey ) - providerKey = 'dataProvider'; - - // show curtain - if ( options.showCurtain ) - showCurtain( undefined, options.noStyles ); - - // increment loader count - l.remaining++; - - // load the file - AmCharts.loadFile( url, options, function( response ) { - - // error? - if ( false === response ) { - callFunction( options.error, options, chart ); - raiseError( AmCharts.__( 'Error loading the file', chart.language ) + ': ' + url, false, options ); - } else { - - // determine the format - if ( undefined === options.format ) { - // TODO - options.format = 'json'; - } - - // lowercase - options.format = options.format.toLowerCase(); - - // invoke parsing function - switch ( options.format ) { - - case 'json': - - holder[ providerKey ] = AmCharts.parseJSON( response ); - - if ( false === holder[ providerKey ] ) { - callFunction( options.error, options, chart ); - raiseError( AmCharts.__( 'Error parsing JSON file', chart.language ) + ': ' + l.url, false, options ); - holder[ providerKey ] = []; - return; - } else { - holder[ providerKey ] = postprocess( holder[ providerKey ], options ); - callFunction( options.load, options, chart ); - } - - break; - - case 'csv': - - holder[ providerKey ] = AmCharts.parseCSV( response, options ); - - if ( false === holder[ providerKey ] ) { - callFunction( options.error, options, chart ); - raiseError( AmCharts.__( 'Error parsing CSV file', chart.language ) + ': ' + l.url, false, options ); - holder[ providerKey ] = []; - return; - } else { - holder[ providerKey ] = postprocess( holder[ providerKey ], options ); - callFunction( options.load, options, chart ); - } - - break; - - default: - callFunction( options.error, options, chart ); - raiseError( AmCharts.__( 'Unsupported data format', chart.language ) + ': ' + options.format, false, options.noStyles ); - return; - } - - // decrement remaining counter - l.remaining--; - - // we done? - if ( 0 === l.remaining ) { - - // callback - callFunction( options.complete, chart ); - - // take in the new data - if ( options.async ) { - - if ( 'map' === chart.type ) - chart.validateNow( true ); - else { - - // take in new data - chart.validateData(); - - // invalidate size for the pie chart - if ( 'pie' === chart.type && chart.invalidateSize !== undefined ) - chart.invalidateSize(); - - // make the chart animate again - if ( l.startDuration ) { - if ( 'stock' === chart.type ) { - chart.panelsSettings.startDuration = l.startDuration; - for ( var x = 0; x < chart.panels.length; x++ ) { - chart.panels[ x ].startDuration = l.startDuration; - chart.panels[ x ].animateAgain(); - } - } else { - chart.startDuration = l.startDuration; - if ( chart.animateAgain !== undefined ) - chart.animateAgain(); - } - } - } - } - - // restore default period - if ( 'stock' === chart.type && !options.reloading && undefined !== chart.periodSelector ) - chart.periodSelector.setDefaultPeriod(); - - // remove curtain - removeCurtain(); - } - - // schedule another load if necessary - if ( options.reload ) { - - if ( options.timeout ) - clearTimeout( options.timeout ); - - options.timeout = setTimeout( loadFile, 1000 * options.reload, url, holder, options ); - options.reloading = true; - - } - - } - - } ); - - } - - /** - * Checks if postProcess is set and invokes the handler - */ - function postprocess( data, options ) { - if ( undefined !== options.postProcess && isFunction( options.postProcess ) ) - try { - return options.postProcess.call( l, data, options, chart ); - } catch ( e ) { - raiseError( AmCharts.__( 'Error loading file', chart.language ) + ': ' + options.url, false, options ); - return data; - } else - return data; - } - - /** - * Returns true if argument is array - */ - function isObject( obj ) { - return 'object' === typeof( obj ); - } - - /** - * Returns true is argument is a function - */ - function isFunction( obj ) { - return 'function' === typeof( obj ); - } - - /** - * Applies defaults to config object - */ - function applyDefaults( obj ) { - for ( var x in defaults ) { - if ( defaults.hasOwnProperty( x ) ) - setDefault( obj, x, defaults[ x ] ); - } - } - - /** - * Checks if object property is set, sets with a default if it isn't - */ - function setDefault( obj, key, value ) { - if ( undefined === obj[ key ] ) - obj[ key ] = value; - } - - /** - * Raises an internal error (writes it out to console) - */ - function raiseError( msg, error, options ) { - - if ( options.showErrors ) - showCurtain( msg, options.noStyles ); - else { - removeCurtain(); - console.log( msg ); - } - - } - - /** - * Shows curtain over chart area - */ - function showCurtain( msg, noStyles ) { - - // remove previous curtain if there is one - removeCurtain(); - - // did we pass in the message? - if ( undefined === msg ) - msg = AmCharts.__( 'Loading data...', chart.language ); - - // create and populate curtain element - var curtain = document.createElement( 'div' ); - curtain.setAttribute( 'id', chart.div.id + '-curtain' ); - curtain.className = 'amcharts-dataloader-curtain'; - - if ( true !== noStyles ) { - curtain.style.position = 'absolute'; - curtain.style.top = 0; - curtain.style.left = 0; - curtain.style.width = ( undefined !== chart.realWidth ? chart.realWidth : chart.divRealWidth ) + 'px'; - curtain.style.height = ( undefined !== chart.realHeight ? chart.realHeight : chart.divRealHeight ) + 'px'; - curtain.style.textAlign = 'center'; - curtain.style.display = 'table'; - curtain.style.fontSize = '20px'; - try { - curtain.style.background = 'rgba(255, 255, 255, 0.3)'; - } catch ( e ) { - curtain.style.background = 'rgb(255, 255, 255)'; - } - curtain.innerHTML = '

'; - } else { - curtain.innerHTML = msg; - } - chart.containerDiv.appendChild( curtain ); - - l.curtain = curtain; - } - - /** - * Removes the curtain - */ - function removeCurtain() { - try { - if ( undefined !== l.curtain ) - chart.containerDiv.removeChild( l.curtain ); - } catch ( e ) { - // do nothing - } - - l.curtain = undefined; - - } - - /** - * Execute callback function - */ - function callFunction( func, param1, param2, param3 ) { - if ( 'function' === typeof func ) - func.call( l, param1, param2, param3 ); - } - -}, [ 'pie', 'serial', 'xy', 'funnel', 'radar', 'gauge', 'gantt', 'stock', 'map' ] ); - - -/** - * Returns prompt in a chart language (set by chart.language) if it is - * available - */ -if ( undefined === AmCharts.__ ) { - AmCharts.__ = function( msg, language ) { - if ( undefined !== language && undefined !== AmCharts.translations.dataLoader[ language ] && undefined !== AmCharts.translations.dataLoader[ language ][ msg ] ) - return AmCharts.translations.dataLoader[ language ][ msg ]; - else - return msg; - }; -} - -/** - * Loads a file from url and calls function handler with the result - */ -AmCharts.loadFile = function( url, options, handler ) { - - // create the request - var request; - if ( window.XMLHttpRequest ) { - // IE7+, Firefox, Chrome, Opera, Safari - request = new XMLHttpRequest(); - } else { - // code for IE6, IE5 - request = new ActiveXObject( 'Microsoft.XMLHTTP' ); - } - - // open the connection - try { - request.open( 'GET', options.timestamp ? AmCharts.timestampUrl( url ) : url, options.async ); - } catch ( e ) { - handler.call( this, false ); - } - - // add headers? - if ( options.headers !== undefined && options.headers.length ) { - for ( var i = 0; i < options.headers.length; i++ ) { - var header = options.headers[ i ]; - request.setRequestHeader( header.key, header.value ); - } - } - - // set handler for data if async loading - request.onreadystatechange = function() { - - if ( 4 === request.readyState && 404 === request.status ) - handler.call( this, false ); - - else if ( 4 === request.readyState && 200 === request.status ) - handler.call( this, request.responseText ); - - }; - - // load the file - try { - request.send(); - } catch ( e ) { - handler.call( this, false ); - } - -}; - -/** - * Parses JSON string into an object - */ -AmCharts.parseJSON = function( response ) { - try { - if ( undefined !== JSON ) - return JSON.parse( response ); - else - return eval( response ); - } catch ( e ) { - return false; - } -}; - -/** - * Prases CSV string into an object - */ -AmCharts.parseCSV = function( response, options ) { - - // parse CSV into array - var data = AmCharts.CSVToArray( response, options.delimiter ); - - // init resuling array - var res = []; - var cols = []; - var col, i; - - // first row holds column names? - if ( options.useColumnNames ) { - cols = data.shift(); - - // normalize column names - for ( var x = 0; x < cols.length; x++ ) { - // trim - col = cols[ x ].replace( /^\s+|\s+$/gm, '' ); - - // check for empty - if ( '' === col ) - col = 'col' + x; - - cols[ x ] = col; - } - - if ( 0 < options.skip ) - options.skip--; - } - - // skip rows - for ( i = 0; i < options.skip; i++ ) - data.shift(); - - // iterate through the result set - var row; - while ( ( row = options.reverse ? data.pop() : data.shift() ) ) { - if ( options.skipEmpty && row.length === 1 && row[ 0 ] === '' ) - continue; - var dataPoint = {}; - for ( i = 0; i < row.length; i++ ) { - col = undefined === cols[ i ] ? 'col' + i : cols[ i ]; - dataPoint[ col ] = row[ i ]; - } - res.push( dataPoint ); - } - - return res; -}; - -/** - * Parses CSV data into array - * Taken from here: (thanks!) - * http://www.bennadel.com/blog/1504-ask-ben-parsing-csv-strings-with-javascript-exec-regular-expression-command.htm - */ -AmCharts.CSVToArray = function( strData, strDelimiter ) { - // Check to see if the delimiter is defined. If not, - // then default to comma. - strDelimiter = ( strDelimiter || "," ); - - // Create a regular expression to parse the CSV values. - var objPattern = new RegExp( - ( - // Delimiters. - "(\\" + strDelimiter + "|\\r?\\n|\\r|^)" + - - // Quoted fields. - "(?:\"([^\"]*(?:\"\"[^\"]*)*)\"|" + - - // Standard fields. - "([^\"\\" + strDelimiter + "\\r\\n]*))" - ), - "gi" - ); - - - // Create an array to hold our data. Give the array - // a default empty first row. - var arrData = [ - [] - ]; - - // Create an array to hold our individual pattern - // matching groups. - var arrMatches = null; - - - // Keep looping over the regular expression matches - // until we can no longer find a match. - while ( ( arrMatches = objPattern.exec( strData ) ) ) { - - // Get the delimiter that was found. - var strMatchedDelimiter = arrMatches[ 1 ]; - - // Check to see if the given delimiter has a length - // (is not the start of string) and if it matches - // field delimiter. If id does not, then we know - // that this delimiter is a row delimiter. - if ( - strMatchedDelimiter.length && - ( strMatchedDelimiter !== strDelimiter ) - ) { - - // Since we have reached a new row of data, - // add an empty row to our data array. - arrData.push( [] ); - - } - - - // Now that we have our delimiter out of the way, - // let's check to see which kind of value we - // captured (quoted or unquoted). - var strMatchedValue; - if ( arrMatches[ 2 ] ) { - - // We found a quoted value. When we capture - // this value, unescape any double quotes. - strMatchedValue = arrMatches[ 2 ].replace( - new RegExp( "\"\"", "g" ), - "\"" - ); - - } else { - - // We found a non-quoted value. - strMatchedValue = arrMatches[ 3 ]; - - } - - - // Now that we have our value string, let's add - // it to the data array. - arrData[ arrData.length - 1 ].push( strMatchedValue ); - } - - // Return the parsed data. - return ( arrData ); -}; - -/** - * Appends timestamp to the url - */ -AmCharts.timestampUrl = function( url ) { - var p = url.split( '?' ); - if ( 1 === p.length ) - p[ 1 ] = new Date().getTime(); - else - p[ 1 ] += '&' + new Date().getTime(); - return p.join( '?' ); -}; \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/dataloader/dataloader.min.js b/chronos/static/js/amcharts/plugins/dataloader/dataloader.min.js deleted file mode 100644 index 98284f1..0000000 --- a/chronos/static/js/amcharts/plugins/dataloader/dataloader.min.js +++ /dev/null @@ -1 +0,0 @@ -AmCharts.translations.dataLoader={},AmCharts.addInitHandler(function(a){function e(b,d,g,h){void 0===h&&(h="dataProvider"),g.showCurtain&&l(void 0,g.noStyles),c.remaining++,AmCharts.loadFile(b,g,function(i){if(!1===i)n(g.error,g,a),k(AmCharts.__("Error loading the file",a.language)+": "+b,!1,g);else{switch(void 0===g.format&&(g.format="json"),g.format=g.format.toLowerCase(),g.format){case"json":if(d[h]=AmCharts.parseJSON(i),!1===d[h])return n(g.error,g,a),k(AmCharts.__("Error parsing JSON file",a.language)+": "+c.url,!1,g),void(d[h]=[]);d[h]=f(d[h],g),n(g.load,g,a);break;case"csv":if(d[h]=AmCharts.parseCSV(i,g),!1===d[h])return n(g.error,g,a),k(AmCharts.__("Error parsing CSV file",a.language)+": "+c.url,!1,g),void(d[h]=[]);d[h]=f(d[h],g),n(g.load,g,a);break;default:return n(g.error,g,a),void k(AmCharts.__("Unsupported data format",a.language)+": "+g.format,!1,g.noStyles)}if(c.remaining--,0===c.remaining){if(n(g.complete,a),g.async)if("map"===a.type)a.validateNow(!0);else if(a.validateData(),"pie"===a.type&&void 0!==a.invalidateSize&&a.invalidateSize(),c.startDuration)if("stock"===a.type){a.panelsSettings.startDuration=c.startDuration;for(var j=0;j"}else e.innerHTML=b;a.containerDiv.appendChild(e),c.curtain=e}function m(){try{void 0!==c.curtain&&a.containerDiv.removeChild(c.curtain)}catch(b){}c.curtain=void 0}function n(a,b,d,e){"function"==typeof a&&a.call(c,b,d,e)}void 0!==a.dataLoader&&g(a.dataLoader)||(a.dataLoader={});var b=a.version.split(".");if(!(Number(b[0])<3||3===Number(b[0])&&Number(b[1])<13)){var c=a.dataLoader;c.remaining=0;var d={async:!0,format:"json",showErrors:!0,showCurtain:!0,noStyles:!1,reload:0,timestamp:!1,delimiter:",",skip:0,skipEmpty:!0,useColumnNames:!1,reverse:!1,reloading:!1,complete:!1,error:!1,headers:[],chart:a};c.loadData=function(){if("stock"===a.type)setTimeout(function(){0>a.panelsSettings.startDuration&&(c.startDuration=a.panelsSettings.startDuration,a.panelsSettings.startDuration=0);for(var b=0;bTexas is the second most populous (after California) and the second largest of the 50 U.S. states (after Alaska) in the United States of America, and the largest state in the 48 contiguous United States. Geographically located in the south central part of the country, Texas shares an international border with the Mexican states of Chihuahua, Coahuila, Nuevo León, and Tamaulipas to the south and borders the U.S. states of New Mexico to the west, Oklahoma to the north, Arkansas to the northeast, and Louisiana to the east. Texas has an area of 268,820 square miles (696,200 km2) and a growing population of over 26.9 million residents (July 2014).

" - }, { - "id": "US-UT", - "value": 2233169 - }, { - "id": "US-VT", - "value": 608827 - }, { - "id": "US-VA", - "value": 7078515 - }, { - "id": "US-WA", - "value": 5894121 - }, { - "id": "US-WV", - "value": 1808344 - }, { - "id": "US-WI", - "value": 5363675 - }, { - "id": "US-WY", - "value": 493782 - }] -} \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/dataloader/examples/data/pie.csv b/chronos/static/js/amcharts/plugins/dataloader/examples/data/pie.csv deleted file mode 100644 index c71ae9e..0000000 --- a/chronos/static/js/amcharts/plugins/dataloader/examples/data/pie.csv +++ /dev/null @@ -1,8 +0,0 @@ -country,litres -"Czech Republic",156.9 -"Ireland",131.1 -"Germany",115.8 -"Australia",109.9 -"Austria",108.3 -"UK",65 -"Belgium",50 \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/dataloader/examples/data/pie.json b/chronos/static/js/amcharts/plugins/dataloader/examples/data/pie.json deleted file mode 100644 index d920b22..0000000 --- a/chronos/static/js/amcharts/plugins/dataloader/examples/data/pie.json +++ /dev/null @@ -1,22 +0,0 @@ -[{ - "country": "Czech Republic", - "litres": 156.9 -}, { - "country": "Ireland", - "litres": 131.1 -}, { - "country": "Germany", - "litres": 115.8 -}, { - "country": "Australia", - "litres": 109.9 -}, { - "country": "Austria", - "litres": 108.3 -}, { - "country": "UK", - "litres": 65 -}, { - "country": "Belgium", - "litres": 50 -}] \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/dataloader/examples/data/serial.csv b/chronos/static/js/amcharts/plugins/dataloader/examples/data/serial.csv deleted file mode 100644 index bc1236b..0000000 --- a/chronos/static/js/amcharts/plugins/dataloader/examples/data/serial.csv +++ /dev/null @@ -1,20 +0,0 @@ -year,cars,motorcycles,bicycles -2000,1587,650,121 -1995,1567,683,146 -1996,1617,691,138 -1997,1630,642,127 -1998,1660,699,105 -1999,1683,721,109 -2000,1691,737,112 -2001,1298,680,101 -2002,1275,664,97 -2003,1246,648,93 -2004,1218,637,101 -2005,1213,633,87 -2006,1199,621,79 -2007,1110,210,81 -2008,1165,232,75 -2009,1145,219,88 -2010,1163,201,82 -2011,1180,285,87 -2012,1159,277,71 \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/dataloader/examples/data/serial.json b/chronos/static/js/amcharts/plugins/dataloader/examples/data/serial.json deleted file mode 100644 index 889cff2..0000000 --- a/chronos/static/js/amcharts/plugins/dataloader/examples/data/serial.json +++ /dev/null @@ -1,96 +0,0 @@ -[{ - "year": 2000, - "cars": 1587, - "motorcycles": 650, - "bicycles": 121 -}, { - "year": 1995, - "cars": 1567, - "motorcycles": 683, - "bicycles": 146 -}, { - "year": 1996, - "cars": 1617, - "motorcycles": 691, - "bicycles": 138 -}, { - "year": 1997, - "cars": 1630, - "motorcycles": 642, - "bicycles": 127 -}, { - "year": 1998, - "cars": 1660, - "motorcycles": 699, - "bicycles": 105 -}, { - "year": 1999, - "cars": 1683, - "motorcycles": 721, - "bicycles": 109 -}, { - "year": 2000, - "cars": 1691, - "motorcycles": 737, - "bicycles": 112 -}, { - "year": 2001, - "cars": 1298, - "motorcycles": 680, - "bicycles": 101 -}, { - "year": 2002, - "cars": 1275, - "motorcycles": 664, - "bicycles": 97 -}, { - "year": 2003, - "cars": 1246, - "motorcycles": 648, - "bicycles": 93 -}, { - "year": 2004, - "cars": 1218, - "motorcycles": 637, - "bicycles": 101 -}, { - "year": 2005, - "cars": 1213, - "motorcycles": 633, - "bicycles": 87 -}, { - "year": 2006, - "cars": 1199, - "motorcycles": 621, - "bicycles": 79 -}, { - "year": 2007, - "cars": 1110, - "motorcycles": 210, - "bicycles": 81 -}, { - "year": 2008, - "cars": 1165, - "motorcycles": 232, - "bicycles": 75 -}, { - "year": 2009, - "cars": 1145, - "motorcycles": 219, - "bicycles": 88 -}, { - "year": 2010, - "cars": 1163, - "motorcycles": 201, - "bicycles": 82 -}, { - "year": 2011, - "cars": 1180, - "motorcycles": 285, - "bicycles": 87 -}, { - "year": 2012, - "cars": 1159, - "motorcycles": 277, - "bicycles": 71 -}] \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/dataloader/examples/data/serial2.json b/chronos/static/js/amcharts/plugins/dataloader/examples/data/serial2.json deleted file mode 100644 index 3960771..0000000 --- a/chronos/static/js/amcharts/plugins/dataloader/examples/data/serial2.json +++ /dev/null @@ -1,21 +0,0 @@ -[{ - "year": 2005, - "income": 23.5, - "expenses": 18.1 -}, { - "year": 2006, - "income": 26.2, - "expenses": 22.8 -}, { - "year": 2007, - "income": 30.1, - "expenses": 23.9 -}, { - "year": 2008, - "income": 29.5, - "expenses": 25.1 -}, { - "year": 2009, - "income": 24.6, - "expenses": 25 -}] \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/dataloader/examples/gauge_json.html b/chronos/static/js/amcharts/plugins/dataloader/examples/gauge_json.html deleted file mode 100644 index 68ee075..0000000 --- a/chronos/static/js/amcharts/plugins/dataloader/examples/gauge_json.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - amCharts Data Loader Example - - - - - - - - -
- - - \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/dataloader/examples/map_json.html b/chronos/static/js/amcharts/plugins/dataloader/examples/map_json.html deleted file mode 100644 index 6183e88..0000000 --- a/chronos/static/js/amcharts/plugins/dataloader/examples/map_json.html +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - amCharts Responsive Example - - - - - - - - - -
- - - \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/dataloader/examples/pie_csv.html b/chronos/static/js/amcharts/plugins/dataloader/examples/pie_csv.html deleted file mode 100644 index 96bf588..0000000 --- a/chronos/static/js/amcharts/plugins/dataloader/examples/pie_csv.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - amCharts Data Loader Example - - - - - - - - -
- - - \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/dataloader/examples/pie_json.html b/chronos/static/js/amcharts/plugins/dataloader/examples/pie_json.html deleted file mode 100644 index 9d9da85..0000000 --- a/chronos/static/js/amcharts/plugins/dataloader/examples/pie_json.html +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - amCharts Data Loader Example - - - - - - - - -
- - - \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/dataloader/examples/serial2_json.html b/chronos/static/js/amcharts/plugins/dataloader/examples/serial2_json.html deleted file mode 100644 index a1b9bc9..0000000 --- a/chronos/static/js/amcharts/plugins/dataloader/examples/serial2_json.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - amCharts Data Loader Example - - - - - - - - - -
- - - - \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/dataloader/examples/serial_csv.html b/chronos/static/js/amcharts/plugins/dataloader/examples/serial_csv.html deleted file mode 100644 index ae35ff4..0000000 --- a/chronos/static/js/amcharts/plugins/dataloader/examples/serial_csv.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - amCharts Data Loader Example - - - - - - - - -
- - - \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/dataloader/examples/serial_json.html b/chronos/static/js/amcharts/plugins/dataloader/examples/serial_json.html deleted file mode 100644 index 5e18745..0000000 --- a/chronos/static/js/amcharts/plugins/dataloader/examples/serial_json.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - amCharts Data Loader Example - - - - - - - - -
- - - \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/dataloader/examples/serial_with_dynamic_graphs.html b/chronos/static/js/amcharts/plugins/dataloader/examples/serial_with_dynamic_graphs.html deleted file mode 100644 index a043508..0000000 --- a/chronos/static/js/amcharts/plugins/dataloader/examples/serial_with_dynamic_graphs.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - - amCharts Data Loader Example - - - - - - - - -
- - - \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/dataloader/examples/stock_csv_data_and_events.html b/chronos/static/js/amcharts/plugins/dataloader/examples/stock_csv_data_and_events.html deleted file mode 100644 index 53d2348..0000000 --- a/chronos/static/js/amcharts/plugins/dataloader/examples/stock_csv_data_and_events.html +++ /dev/null @@ -1,312 +0,0 @@ - - - - - - - amCharts Data Loader Example - - - - - - - - - -
- - - \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/dataloader/lang/en.js b/chronos/static/js/amcharts/plugins/dataloader/lang/en.js deleted file mode 100644 index 2190534..0000000 --- a/chronos/static/js/amcharts/plugins/dataloader/lang/en.js +++ /dev/null @@ -1,6 +0,0 @@ -AmCharts.translations.dataLoader.en = { - 'Error loading the file': 'Error loading the file', - 'Error parsing JSON file': 'Error parsing JSON file', - 'Unsupported data format': 'Unsupported data format', - 'Loading data...': 'Loading data...' -} \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/dataloader/lang/lt.js b/chronos/static/js/amcharts/plugins/dataloader/lang/lt.js deleted file mode 100644 index 89a5e32..0000000 --- a/chronos/static/js/amcharts/plugins/dataloader/lang/lt.js +++ /dev/null @@ -1,6 +0,0 @@ -AmCharts.translations.dataLoader.lt = { - 'Error loading the file': 'Nepavyko užkrauti failo', - 'Error parsing JSON file': 'Skaitant JSON failą įvyko klaida', - 'Unsupported data format': 'Nepalaikomas duomenų formatas', - 'Loading data...': 'Kraunami duomenys...' -} \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/dataloader/license.txt b/chronos/static/js/amcharts/plugins/dataloader/license.txt deleted file mode 100644 index a765bc1..0000000 --- a/chronos/static/js/amcharts/plugins/dataloader/license.txt +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright {yyyy} {name of copyright owner} - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/dataloader/readme.md b/chronos/static/js/amcharts/plugins/dataloader/readme.md deleted file mode 100644 index 28ec26d..0000000 --- a/chronos/static/js/amcharts/plugins/dataloader/readme.md +++ /dev/null @@ -1,340 +0,0 @@ -# amCharts Data Loader - -Version: 1.0.10 - - -## Description - -By default all amCharts libraries accept data in JSON format. It needs to be -there when the web page loads, defined in-line or loaded via custom code. - -This plugin introduces are native wrapper that enables automatic loading of data -from external data data sources in CSV and JSON formats. - -Most of the times you will just need to provide a URL of the external data -source - static file or dynamically generated - and it will do the rest. - - -## Important notice - -Due to security measures implemented in most of the browsers, the external data -loader will work only when the page with the chart or map is loaded via web -server. - -So, any of the examples loaded locally (file:///) will not work. - -The page needs to be loaded via web server (http://) in order to work properly. - -Loading data from another domain than the web page is loaded is possible but is -a subject for `Access-Control-Allow-Origin` policies defined by the web server -you are loading data from. - -For more about loading data across domains use the following thread: -http://stackoverflow.com/questions/1653308/access-control-allow-origin-multiple-origin-domains - - -## Usage - -### 1) Include the minified version of file of this plugin. I.e.: - -``` - -``` - -(this needs to go after all the other amCharts includes) - -### 2) Add data source properties to your chart configuration. - -Regular (Serial, Pie, etc.) charts: - -``` -AmCharts.makeChart( "chartdiv", { - ..., - "dataLoader": { - "url": "data.json", - "format": "json" - } -} ); -``` - -Stock chart: - -``` -AmCharts.makeChart( "chartdiv", { - ..., - "dataSets": [{ - ..., - "dataLoader": { - "url": "data.csv", - "format": "csv", - "delimiter": ",", // column separator - "useColumnNames": true, // use first row for column names - "skip": 1 // skip header row - } - }] -} ); -``` - -That's it. The plugin will make sure the files are loaded and dataProvider is -populated with their content *before* the chart is built. - -Some formats, like CSV, will require additional parameters needed to parse the -data, such as "separator". - -If the "format" is omitted, the plugin will assume JSON. - - -## Complete list of available dataLoader settings - -Property | Default | Description --------- | ------- | ----------- -async | true | If set to false (not recommended) everything will wait until data is fully loaded -complete | | Callback function to execute when loader is done -delimiter | , | [CSV only] a delimiter for columns (use \t for tab delimiters) -error | | Callback function to execute if file load fails -format | json | Type of data: json, csv -headers | | An array of objects with two properties (key and value) to attach to HTTP request -load | | Callback function to execute when file is successfully loaded (might be invoked multiple times) -noStyles | false | If set to true no styles will be applied to "Data loading" curtain -postProcess | | If set to function reference, that function will be called to "post-process" loaded data before passing it on to chart. The handler function will receive two parameters: loaded data, Data Loader options -showErrors | true | Show loading errors in a chart curtain -showCurtain | true| Show curtain over the chart area when loading data -reload | 0 | Reload data every X seconds -reverse | false | [CSV only] add data points in revers order -skip | 0 | [CSV only] skip X first rows in data (includes first row if useColumnNames is used) -skipEmpty | true | [CSV only] Ignore empty lines in data -timestamp | false | Add current timestamp to data URLs (to avoid caching) -useColumnNames | false | [CSV only] Use first row in data as column names when parsing - - -## Using in JavaScript Stock Chart - -In JavaScript Stock Chart it works exactly the same as in other chart types, -with the exception that `dataLoader` is set as a property to the data set -definition. I.e.: - -``` -var chart = AmCharts.makeChart("chartdiv", { - "type": "stock", - ... - "dataSets": [{ - "title": "MSFT", - "fieldMappings": [{ - "fromField": "Open", - "toField": "open" - }, { - "fromField": "High", - "toField": "high" - }, { - "fromField": "Low", - "toField": "low" - }, { - "fromField": "Close", - "toField": "close" - }, { - "fromField": "Volume", - "toField": "volume" - }], - "compared": false, - "categoryField": "Date", - "dataLoader": { - "url": "data/MSFT.csv", - "format": "csv", - "showCurtain": true, - "showErrors": true, - "async": true, - "reverse": true, - "delimiter": ",", - "useColumnNames": true - } - } - }] -}); -``` - -### Can I also load event data the same way? - -Sure. You just add a `eventDataLoader` object to your data set. All the same -settings apply. - - -## Adding custom headers to HTTP requests - -If you want to add additional headers to your data load HTTP requests, use -"headers" array. Each header is an object with two keys: "key" and "value": - -``` -"dataLoader": { - "url": "data/serial.json", - "format": "json", - "headers": [{ - "key": "x-access-token", - "value": "123456789" - }] -} -``` - - -## Manually triggering a reload of all data - -Once chart is initialized, you can trigger the reload of all data manually by -calling `chart.dataLoader.loadData()` function. (replace "chart" with the actual -variable that holds reference to your chart object) - -## Using callback functions - -Data Loader can call your own function when certain event happens, like data -loading is complete, error occurs, etc. - -To set custom event handlers, use these config options: - -* "complete" - -Example: - -``` -AmCharts.makeChart( "chartdiv", { - ..., - "dataSets": [{ - ..., - "dataLoader": { - "url": "data.json", - "load": function ( options, chart ) { - console.log( 'Loaded file: ' + options.url ); - }, - "complete": function ( chart ) { - console.log( 'Woohoo! Finished loading' ); - }, - "error": function ( options, chart ) { - console.log( 'Ummm something went wrong loading this file: ' + options.url ); - } - } - }] -} ); -``` - - -## Translating into other languages - -Depending on configuration options the plugin will display a small number of -text prompts, like 'Data loading...'. - -Plugin will try matching chart's `language` property and display text prompts in -a corresponding language. For that the plugin needs to have the translations. - -Some of the plugin translations are in **lang** subdirectory. Simply include the -one you need. - -If there is no translation to your language readily available, just grab en.js, -copy it and translate. - -The structure is simple: - -``` -'The phrase in English': 'Translation' -``` - -The phrase in English must be left intact. - -When you're done, you can include your language as a JavaScript file. - -P.S. send us your translation so we can include it for the benefits of other -users. Thanks! - - -## Requirements - -This plugin requires at least 3.13 version of JavaScript Charts, JavaScript -Stock Chart or JavaScript Maps. - - -## Demos - -They're all in subdirectory /examples. - - -## Extending this plugin - -You're encouraged to modify, extend and make derivative plugins out of this -plugin. - -You can modify files, included in this archive or, better yet, fork this project -on GitHub: - -https://github.com/amcharts/dataloader - -We're curious types. Please let us know (contact@amcharts.com) if you do create -something new out of this plugin. - - -## License - -This plugin is licensed under Apache License 2.0. - -This basically means you're free to use or modify this plugin, even make your -own versions or completely different products out of it. - -Please see attached file "license.txt" for the complete license or online here: - -http://www.apache.org/licenses/LICENSE-2.0 - - -## Contact us - -* Email:contact@amcharts.com -* Web: http://www.amcharts.com/ -* Facebook: https://www.facebook.com/amcharts -* Twitter: https://twitter.com/amcharts - - -## Changelog - -### 1.0.10 -* Fixed error related to headers not being set when using standalone data load functions - -### 1.0.9 -* Plugin will now ignore empty CSV lines by default (configurable with `skipEmpty` property) - -### 1.0.8 -* Added `headers` config variable which allows adding custom headers to HTTP requests - -### 1.0.7 -* Fixed an issue with the Pie chart when it is being loaded in inactive tab - -### 1.0.6 -* Added support for Gauge chart (loads `arrows` array) - -### 1.0.5 -* Fixed JS error if periodSelector was not defined in chart config -* Now all callback functions (complete, error, load) receive additional parameter: chart -* postProcess function will now have "this" context set to Data Loader object as well as receive chart reference as third paramater - -### 1.0.4 -* Added `chart.dataLoader.loadData()` function which can be used to manually trigger all data reload - -### 1.0.3 -* Fixed the bug where defaults were not being applied properly -* Fixed the bug with translations not being applied properly -* Cleaned up the code (to pass JSHint validation) - -### 1.0.2 -* Fixed the issue with modified Array prototypes - -### 1.0.1 -* Added `complete`, `load` and `error` properties that can be set with function handlers to be invoked on load completion, successful file load or failed load respectively -* Fixed language container initialization bug -* Fixed bug that was causing parse errors not be displayed - -### 1.0 -* Added GANTT chart support - -### 0.9.2 -* Added global data load methods that can be used to load and parse data by code outside plugin -* Trim CSV column names -* Translation added: Lithuanian - -### 0.9.1 -* Fix chart animations not playing after asynchronous load - -### 0.9 -* Initial release \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/export/LICENSE b/chronos/static/js/amcharts/plugins/export/LICENSE deleted file mode 100644 index 8f71f43..0000000 --- a/chronos/static/js/amcharts/plugins/export/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright {yyyy} {name of copyright owner} - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - diff --git a/chronos/static/js/amcharts/plugins/export/README.md b/chronos/static/js/amcharts/plugins/export/README.md deleted file mode 100644 index dea7557..0000000 --- a/chronos/static/js/amcharts/plugins/export/README.md +++ /dev/null @@ -1,1043 +0,0 @@ -# amCharts Export - -Version: 1.3.7 - - -## Description - -This plugin adds export capabilities to all amCharts products - charts and maps. - -It allows annotating and exporting chart or related data to various bitmap, -vector, document or data formats, such as PNG, JPG, PDF, SVG, JSON, XLSX and -many more. - - -## Important notice - -Please note that due to security measures implemented in modern browsers, some -or all export options might not work if the web page is loaded locally (via -file:///) or contain images loaded from different host than the web page itself. - - -## Usage - -### 1) Include the minified version of file of this plugin as well as the -bundled CSS file. I.e.: - -``` - - -``` - -Or if you'd rather use amCharts CDN: - -``` - - -``` - -(this needs to go after all the other amCharts includes) - -### 2) Enable `export` with default options: - -``` -AmCharts.makeChart( "chartdiv", { - ..., - "export": { - "enabled": true - } -} ); -``` - -### ... OR set your own custom options: - -``` -AmCharts.makeChart( "chartdiv", { - ..., - "export": { - "enabled": true, - "menu": [ { - "class": "export-main", - "menu": [ { - "label": "Download", - "menu": [ "PNG", "JPG", "CSV" ] - }, { - "label": "Annotate", - "action": "draw", - "menu": [ { - "class": "export-drawing", - "menu": [ "PNG", "JPG" ] - } ] - } ] - } ] - } -} ); -``` - - -## Loading external libraries needed for operation of this plugin - -The plugin relies on a number of different libraries, to export images, draw -annotations or generate download files. - -Those libraries need to be loaded for the plugin to work properly. - -There are two ways to load them. Choose the one that is right: - -### 1) Automatic (preferred) - -All libraries required for plugin operation are included withing plugins */libs* -subdirectory. - -The plugin will automatically try to look in chart's [`path`](http://docs.amcharts.com/3/javascriptcharts/AmSerialChart#path) -property. If your plugin files are located within plugins folder under amcharts -(as is the case with the default distributions), you don't need to do anything - -the libraries will load on-demand. - -If you are using relative url, note that it is relative to the web page you are -displaying your chart on, not the export.js library. - -In case you've moved the libs folder you need to tell the plugin where it is -`"libs": { "path": "../libs/" }` - -### 2) Manual - -You can also load all those JavaScript libraries by ` - - - - - - - - - - - -
- - \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/export/examples/gantt.html b/chronos/static/js/amcharts/plugins/export/examples/gantt.html deleted file mode 100644 index 056f3b1..0000000 --- a/chronos/static/js/amcharts/plugins/export/examples/gantt.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - - - - - - - - - - - - - - - - -
- - \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/export/examples/gauge.html b/chronos/static/js/amcharts/plugins/export/examples/gauge.html deleted file mode 100644 index 48cca2d..0000000 --- a/chronos/static/js/amcharts/plugins/export/examples/gauge.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - - - - - - - - - -
- - \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/export/examples/images/bicycle.png b/chronos/static/js/amcharts/plugins/export/examples/images/bicycle.png deleted file mode 100644 index 0873bf9b3a8280fbe79d91eaaf4704ea89fba47a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1177 zcmV;K1ZMk*P)(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fd zMgRZ=A4x<(RCwB~meFg|To}fGSr%$SUFl?-BP%;NgcTuMlnR?7yY)f^VW7A3f14M( z>Xl9zDisu}Zf4z}MZ3CM*U3z9#AaED=ezhY-&b{=pMHTr4tbyRoaemfecpqVlK=DF z+S-!6{`d2TPY?vs_kH&F_j&c|6>r|W;r8v@QV5~^EdGxPA3l7@>({S|;}}&{nVOp7 zD6(S-eczXH94BK{RY|AQU6Vyo#KFM?s2;|+ncWJlV^!4?jX&RH0 zlU%=ky(?~PY>f5wbsRXaI{AG5 z*c2#I%AN;8*L7uSX-U3#@d91fQB}1oCXQpmFy!><)7-gp=Z7u-PYQKiS6tVX@7}!w zV0d_#nVFfcoCZNasZ_%AJofhXNT<{Mb`Eu2S5{Y7@qM3Dr%vJfKI7x#3=R$^Dpprl z<^KLYVHi@Y)eu7bI-%>j(s3N>^*V-OaOu(|={OFiX<}Ix_wL=JTCFB3+wHboSy>^Q z%>q!X)yU`b^6}%x#Bq!e0?V?x7TEXgquFfA#l=OImzQZY8W@H_tyaVHJZ#%0m&=jO zW~o#v$pTkaRtSQCxw$!P+velPk9_#>0Zr4W*Xt}VFSEF~NVD0LU4*Xd%3`s|&dv@~ zQ&TJ~EHE=OL#0x|G)+`h<^KKqjEs!XYPER#_N{#O?3t`qtDHT1md(vg1_uWj7#Lt< zV}q+#ud=YP!1?p%+1c5lSS;eYu1p9W$D!3~F+Dxaty{MgA%s$`R{8Yl6BjRDB#vX^ zIA&;Q2u;&?^5hAnQVG*EIeGFVo12?_`SJzJve@3<=KcHk2qBdD`FUk}dYV?Nh2uE? zC~PzuXqrZ$P)Ho+<;$0(QYj7(4^dSW+qOxk(-?+9wOS>PW3F7eg6q1ds>GQn(dl#uf?8A=~XXp68LtWSE$k zP;TD5DGv?~P*s(~!$YDdLesRQ@FyoH`5E@|<;%+0*jUmnJkKKxLkz<}*L9^2KnOt; zMU>0sL`goMS8Ur>EXz{%_V#cbhk=0sY};0B+g5a4SB}E|+f&QsGEo#I_1O<#Sr(N_ zg|)Rc09hy$$Y!&6p2zd&&skqz$23hwMn--p z8mUx@Fbs*Jh+HnmwQJYN<#Ipu$zE8~G`Vr(MuP1!?{7}iXf)__Iv9q55CYq_$z(D; rP5CJ7_fB(UxA^9zzkBUC3j5apjXrE*MRrYd00000NkvXXu0mjf$*w?F diff --git a/chronos/static/js/amcharts/plugins/export/examples/images/car.png b/chronos/static/js/amcharts/plugins/export/examples/images/car.png deleted file mode 100644 index 4214fb72135916f2cbf92589c275ff74a399fdd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 759 zcmV(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fd zMgRZ;eMv+?RCwClmc2{sP#DI4`5?FnA#le407k57f?V{jN z6$RHC2sS!&sD{v*;yLF|2DQ~H-s^DREjj0RUY;kq?7=(+ii}Hj<~$MR6kN!tJS!@y=8H6k!rO{E|(*YW45-o0NB{rU}9o| zi;D|RPEI&HJj8WfH8(e>eOqCzR#Vs4*Gx}Ov$nRz%*>4Dd7kFFZf33Px=c<^YSn60 z^L?LoyUqUoKCM(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fd zMgRZ%y^eoRGm8Kp2ICk2*Gz&+rK$nE|-O2 z7-*Wtu30>Ev|CC{Wf4{W6yew2z#j-3;PEN3G8{4)?rBdj+{xwN$+ZHb`F95W+ zw|^*)X__LLOj0Nms8*}gYBe4n9$Nc_LgDiso}8SBcsx#}QfVFT>FHs9eqOwmr(7!^s_g9Skj-ZQ@zs96pSig?Ha9nM zI2?GrUTU=(Znv9YFv#@uG@7PKZ%nhXu_5B|H~@;GaCv!2CX-=gWaLxVhC(5N!62HZ zk;!D<>}9iA8jS{vi;I7oCXq;pcs!1(szf3Y0)YUBhllL#?O_-OE|-hGzCMb@;yX!Y zSw`1&ve_)TT&}g=)zyWfC{!vH^7%ZbX$no#BpD!;N&ygwL>L$tAel^J7)Hw+s;bi4 z+l#~Dc*oA^bmH-NNT<_0Jv|}IGHq>b^z`(wva-U=%nUa-H^gGGKN;5Rby2I;P!xqg zAi&w#8N0i?G@DIiS^g0RZf|dSdV2a$QisEV&*!7FvlFM&$?)(ni9~{CyM@L6Vr_*e0Z4rq?7#bSl>gtM8se~-cgu`JbCMG0+ zdc7_lA0J!HURysH42r$IJq`~K35UY~92^{ASr+5t<8Nc}vr8L|1^`o2Q!FknerfcW zrYY9e*0{X9L{(J)EXyJk3K5M)(KJnZlfy(JAyTPSD?_8BqhFqLuR&w6SgU70=kUYv qRIk^?XLId$OZx6FhRiqD9|HhZp1so50q3j$0000 - - - - - - - - - - - - -
- - -
- - - - \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/export/examples/map.html b/chronos/static/js/amcharts/plugins/export/examples/map.html deleted file mode 100644 index 4af3af6..0000000 --- a/chronos/static/js/amcharts/plugins/export/examples/map.html +++ /dev/null @@ -1,209 +0,0 @@ - - - - - - - - - - - - - - - - - - -
- - \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/export/examples/pie1.html b/chronos/static/js/amcharts/plugins/export/examples/pie1.html deleted file mode 100644 index a184752..0000000 --- a/chronos/static/js/amcharts/plugins/export/examples/pie1.html +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - - - - - - - - - - - - - -
- - \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/export/examples/pie2.html b/chronos/static/js/amcharts/plugins/export/examples/pie2.html deleted file mode 100644 index 2300038..0000000 --- a/chronos/static/js/amcharts/plugins/export/examples/pie2.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - - - - - - - - - - - - - -
- - \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/export/examples/pie3.html b/chronos/static/js/amcharts/plugins/export/examples/pie3.html deleted file mode 100644 index 7a30af3..0000000 --- a/chronos/static/js/amcharts/plugins/export/examples/pie3.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - - - - - - - - - - - - -
-
- - \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/export/examples/pie4.html b/chronos/static/js/amcharts/plugins/export/examples/pie4.html deleted file mode 100644 index 0b5dfbb..0000000 --- a/chronos/static/js/amcharts/plugins/export/examples/pie4.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - - - - - - - - - - - - - -
-
- - \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/export/examples/radar.html b/chronos/static/js/amcharts/plugins/export/examples/radar.html deleted file mode 100644 index b3dae3d..0000000 --- a/chronos/static/js/amcharts/plugins/export/examples/radar.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - - - - - - - - - - - - -
- - \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/export/examples/serial1.html b/chronos/static/js/amcharts/plugins/export/examples/serial1.html deleted file mode 100644 index cce7d8a..0000000 --- a/chronos/static/js/amcharts/plugins/export/examples/serial1.html +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - -
- - \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/export/examples/serial2.html b/chronos/static/js/amcharts/plugins/export/examples/serial2.html deleted file mode 100644 index f4f5ed6..0000000 --- a/chronos/static/js/amcharts/plugins/export/examples/serial2.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - - - - - - - - - - - - - - -
- - \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/export/examples/serial3.html b/chronos/static/js/amcharts/plugins/export/examples/serial3.html deleted file mode 100644 index 9c05934..0000000 --- a/chronos/static/js/amcharts/plugins/export/examples/serial3.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - - - - - - - - - - - - - -
- - \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/export/examples/stock.html b/chronos/static/js/amcharts/plugins/export/examples/stock.html deleted file mode 100644 index 6577944..0000000 --- a/chronos/static/js/amcharts/plugins/export/examples/stock.html +++ /dev/null @@ -1,223 +0,0 @@ - - - - - - - - - - - - - - - - - - - - -
- - \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/export/examples/xy.html b/chronos/static/js/amcharts/plugins/export/examples/xy.html deleted file mode 100644 index c103126..0000000 --- a/chronos/static/js/amcharts/plugins/export/examples/xy.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - - - - - - - - - - - - - - -
- - \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/export/export.css b/chronos/static/js/amcharts/plugins/export/export.css deleted file mode 100644 index c8dc32a..0000000 --- a/chronos/static/js/amcharts/plugins/export/export.css +++ /dev/null @@ -1,348 +0,0 @@ -/** - * Drawing mode - */ -.amcharts-export-canvas { - position: absolute; - display: none; - z-index: 1; - top: 0; - right: 0; - bottom: 0; - left: 0; - background-color: #fff; -} -.amcharts-export-canvas.active { - display: block; -} - -/** - * Menu; Rest state - */ -.amcharts-export-menu { - position: absolute; - z-index: 2; - opacity: 0.5; - color: #000; -} -.amcharts-main-div:hover .amcharts-export-menu, .amcharts-stock-div:hover .amcharts-export-menu { - opacity: 1; -} -.amcharts-export-menu-top-left > ul > li > ul:after { - content: ""; - position: absolute; - top: 13px; - right: 100%; - z-index: 1000; - border-top: 7px solid transparent; - border-left: 7px solid transparent; - border-right: 7px solid #fff; - border-bottom: 7px solid transparent; -} -.amcharts-export-menu-top-left > ul > li > ul > li:first-child > a:after { - content: ""; - position: absolute; - top: 12px; - right: 100%; - z-index: 1001; - border-top: 8px solid transparent; - border-left: 8px solid transparent; - border-right: 8px solid #e2e2e2; - border-bottom: 8px solid transparent; -} -.amcharts-export-menu-top-right > ul > li > ul:after { - content: ""; - position: absolute; - top: 13px; - left: 100%; - z-index: 1000; - border-top: 7px solid transparent; - border-left: 7px solid #fff; - border-right: 7px solid transparent; - border-bottom: 7px solid transparent; -} -.amcharts-export-menu-top-right > ul > li > ul > li:first-child > a:after { - content: ""; - position: absolute; - top: 12px; - left: 100%; - z-index: 1001; - border-top: 8px solid transparent; - border-left: 8px solid #e2e2e2; - border-right: 8px solid transparent; - border-bottom: 8px solid transparent; -} -.amcharts-export-menu-bottom-left > ul > li > ul:after { - content: ""; - position: absolute; - bottom: 13px; - right: 100%; - z-index: 1000; - border-top: 7px solid transparent; - border-left: 7px solid transparent; - border-right: 7px solid #fff; - border-bottom: 7px solid transparent; -} -.amcharts-export-menu-bottom-left > ul > li > ul > li:last-child > a:after { - content: ""; - position: absolute; - bottom: 12px; - right: 100%; - z-index: 1001; - border-top: 8px solid transparent; - border-left: 8px solid transparent; - border-right: 8px solid #e2e2e2; - border-bottom: 8px solid transparent; -} -.amcharts-export-menu-bottom-right > ul > li > ul:after { - content: ""; - position: absolute; - bottom: 13px; - left: 100%; - z-index: 1000; - border-top: 7px solid transparent; - border-left: 7px solid #fff; - border-right: 7px solid transparent; - border-bottom: 7px solid transparent; -} -.amcharts-export-menu-bottom-right > ul > li > ul > li:last-child > a:after { - content: ""; - position: absolute; - bottom: 12px; - left: 100%; - z-index: 1001; - border-top: 8px solid transparent; - border-left: 8px solid #e2e2e2; - border-right: 8px solid transparent; - border-bottom: 8px solid transparent; -} -.amcharts-export-menu ul { - list-style: none; - margin: 0; - padding: 0; -} -.amcharts-export-menu li { - position: relative; - display: block; - z-index: 1; -} -.amcharts-export-menu li > ul { - position: absolute; - display: none; - border: 1px solid #e2e2e2; - margin-top: -1px; - background: #fff; -} -.amcharts-export-menu li > a { - position: relative; - display: block; - color: #000; - text-decoration: none; - padding: 12px 12px; - z-index: 2; - white-space: nowrap; - border-bottom: 1px solid #f2f2f2; -} -.amcharts-export-menu li:last-child > a { - border-bottom: none; -} -.amcharts-export-menu li > a > img { - border: none; -} -.amcharts-export-menu-top-left { - top: 0; - left: 0; -} -.amcharts-export-menu-bottom-left { - bottom: 0; - left: 0; -} -.amcharts-export-menu-top-right { - top: 0; - right: 0; -} -.amcharts-export-menu-bottom-right { - bottom: 0; - right: 0; -} - -/** - * Menu; Hover state - */ -.amcharts-export-menu li:hover > ul { - display: block; -} -.amcharts-export-menu li:hover > a { - color: #fff; - background-color: #636363; -} -.amcharts-export-menu-top-left li:hover > ul { - left: 100%; - top: 0; -} -.amcharts-export-menu-bottom-left li:hover > ul { - left: 100%; - bottom: 0; -} -.amcharts-export-menu-top-right li:hover > ul { - top: 0; - right: 100%; -} -.amcharts-export-menu-bottom-right li:hover > ul { - bottom: 0; - right: 100%; -} - -/** - * Menu; custom class - */ -.amcharts-export-menu .export-main > a, .amcharts-export-menu .export-drawing > a, .amcharts-export-menu .export-delayed-capturing > a { - display: block; - overflow: hidden; - text-indent: -13333337px; - width: 36px; - height: 36px; - padding: 0; - background-repeat: no-repeat; - background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%2211px%22%20height%3D%2214px%22%3E%3Cpath%20d%3D%22M3%2C0%20L8%2C0%20L8%2C5%20L11%2C5%20L5.5%2C10%20L0%2C5%20L3%2C5%20L03%2C0%22%20fill%3D%22%23888%22%2F%3E%3Crect%20x%3D%220%22%20y%3D%2212%22%20fill%3D%22%23888%22%20width%3D%2211%22%20height%3D%222%22%2F%3E%3C%2Fsvg%3E'); - background-color: #fff; - background-position: center; - -webkit-box-shadow: 1px 1px 3px 0px rgba(0,0,0,0.5); - -moz-box-shadow: 1px 1px 3px 0px rgba(0,0,0,0.5); - box-shadow: 1px 1px 3px 0px rgba(0,0,0,0.5); - border-radius: 18px; - margin: 8px 8px 0 10px; -} -.amcharts-export-menu .export-drawing > a { - background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%2216px%22%20height%3D%2217px%22%3E%3Crect%20x%3D%220%22%20y%3D%2216%22%20fill%3D%22%23888%22%20width%3D%2214%22%20height%3D%221%22%2F%3E%3Cpath%20transform%3D%22translate(-12%2C-10)%22%20fill%3D%22%23888%22%20d%3D%22M17.098%2C20.305c-0.142%2C0.146%2C0.101%2C0.04%2C0.137%2C0.004c0.027-0.028%2C0.204-0.09%2C0.484-0.09c0.338%2C0%2C0.626%2C0.092%2C0.787%2C0.255%20c0.473%2C0.472%2C0.424%2C0.932%2C0.393%2C1.078l-2.521%2C1.055l-1.577-1.577l1.054-2.52c0.039-0.009%2C0.105-0.018%2C0.188-0.018%20c0.219%2C0%2C0.555%2C0.069%2C0.893%2C0.407c0.378%2C0.378%2C0.246%2C1.188%2C0.166%2C1.271C17.062%2C20.207%2C17.062%2C20.269%2C17.098%2C20.305z%20M26.984%2C14.472c-0.008-0.674-0.61-1.257-1.31-1.933c-0.134-0.129-0.679-0.673-0.809-0.808c-0.679-0.702-1.266-1.31-1.943-1.31%20c-0.37%2C0-0.734%2C0.207-1.114%2C0.587l-6.852%2C6.847c-0.012%2C0.016-2.877%2C7.354-2.877%2C7.354c-0.012%2C0.032%2C0%2C0.063%2C0.022%2C0.091%20c0.021%2C0.021%2C0.044%2C0.029%2C0.067%2C0.029c0.01%2C0%2C0.018-0.003%2C0.028-0.007c0%2C0%2C7.357-2.864%2C7.369-2.877l6.854-6.847%20C26.803%2C15.216%2C26.988%2C14.848%2C26.984%2C14.472z%22%2F%3E%3C%2Fsvg%3E'); -} -.amcharts-export-menu .export-main:hover, .amcharts-export-menu .export-drawing:hover { - padding-bottom: 100px; -} -.amcharts-export-menu.amcharts-export-menu-bottom-left .export-main:hover, .amcharts-export-menu.amcharts-export-menu-bottom-left .export-drawing:hover, .amcharts-export-menu.amcharts-export-menu-bottom-right .export-main:hover, .amcharts-export-menu.amcharts-export-menu-bottom-right .export-drawing:hover { - padding-bottom: 0; - padding-top: 100px; -} -.amcharts-export-menu .export-main:hover > a { - background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%2211px%22%20height%3D%2214px%22%3E%3Cpath%20d%3D%22M3%2C0%20L8%2C0%20L8%2C5%20L11%2C5%20L5.5%2C10%20L0%2C5%20L3%2C5%20L03%2C0%22%20fill%3D%22%23fff%22%2F%3E%3Crect%20x%3D%220%22%20y%3D%2212%22%20fill%3D%22%23fff%22%20width%3D%2211%22%20height%3D%222%22%2F%3E%3C%2Fsvg%3E'); -} -.amcharts-export-menu .export-drawing:hover > a { - background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%2216px%22%20height%3D%2217px%22%3E%3Crect%20x%3D%220%22%20y%3D%2216%22%20fill%3D%22%23FFF%22%20width%3D%2214%22%20height%3D%221%22%2F%3E%3Cpath%20transform%3D%22translate(-12%2C-10)%22%20fill%3D%22%23FFF%22%20d%3D%22M17.098%2C20.305c-0.142%2C0.146%2C0.101%2C0.04%2C0.137%2C0.004c0.027-0.028%2C0.204-0.09%2C0.484-0.09c0.338%2C0%2C0.626%2C0.092%2C0.787%2C0.255%20c0.473%2C0.472%2C0.424%2C0.932%2C0.393%2C1.078l-2.521%2C1.055l-1.577-1.577l1.054-2.52c0.039-0.009%2C0.105-0.018%2C0.188-0.018%20c0.219%2C0%2C0.555%2C0.069%2C0.893%2C0.407c0.378%2C0.378%2C0.246%2C1.188%2C0.166%2C1.271C17.062%2C20.207%2C17.062%2C20.269%2C17.098%2C20.305z%20M26.984%2C14.472c-0.008-0.674-0.61-1.257-1.31-1.933c-0.134-0.129-0.679-0.673-0.809-0.808c-0.679-0.702-1.266-1.31-1.943-1.31%20c-0.37%2C0-0.734%2C0.207-1.114%2C0.587l-6.852%2C6.847c-0.012%2C0.016-2.877%2C7.354-2.877%2C7.354c-0.012%2C0.032%2C0%2C0.063%2C0.022%2C0.091%20c0.021%2C0.021%2C0.044%2C0.029%2C0.067%2C0.029c0.01%2C0%2C0.018-0.003%2C0.028-0.007c0%2C0%2C7.357-2.864%2C7.369-2.877l6.854-6.847%20C26.803%2C15.216%2C26.988%2C14.848%2C26.984%2C14.472z%22%2F%3E%3C%2Fsvg%3E'); -} -.amcharts-export-menu .export-close > a, -.amcharts-export-menu .export-close:hover > a { - background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAAQCAYAAADNo/U5AAAACXBIWXMAAAsTAAALEwEAmpwYAABBsGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS41LWMwMjEgNzkuMTU1NzcyLCAyMDE0LzAxLzEzLTE5OjQ0OjAwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDx4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+eG1wLmRpZDo4M2Q5NDllYS1lMjE3LTQ3Y2QtYTU1Ni04MTQ3NmRjNWEwYWQ8L3htcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjZhMTQ5MTc1LTNiODItMTE3OC05ZjZmLWY0MWMwNTYyYzQxYTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDpkZGFhNTJkMi1mZDRiLTRkMmMtODEzOC01ZTEzNmQ4NGFjMDE8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEZXJpdmVkRnJvbSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgIDxzdFJlZjppbnN0YW5jZUlEPnhtcC5paWQ6MDdhZmI1Y2UtYzQ1OS00YzQxLWJkMjItMTllMDJlMGE5YzVjPC9zdFJlZjppbnN0YW5jZUlEPgogICAgICAgICAgICA8c3RSZWY6ZG9jdW1lbnRJRD54bXAuZGlkOjA3YWZiNWNlLWM0NTktNGM0MS1iZDIyLTE5ZTAyZTBhOWM1Yzwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjgzZDk0OWVhLWUyMTctNDdjZC1hNTU2LTgxNDc2ZGM1YTBhZDwvc3RSZWY6b3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8L3htcE1NOkRlcml2ZWRGcm9tPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6YmY3ZmRlNGYtZDk2MS00Njk4LWI0ZjAtMDJlYjEwOWE4OTA4PC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE1LTA1LTE1VDEzOjE3OjQ5KzAyOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAyMSAoTWFjaW50b3NoKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNvbnZlcnRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6cGFyYW1ldGVycz5mcm9tIGltYWdlL3BuZyB0byBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wPC9zdEV2dDpwYXJhbWV0ZXJzPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+ZGVyaXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6cGFyYW1ldGVycz5jb252ZXJ0ZWQgZnJvbSBpbWFnZS9wbmcgdG8gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcDwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6MDdhZmI1Y2UtYzQ1OS00YzQxLWJkMjItMTllMDJlMGE5YzVjPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE1LTA1LTE1VDEzOjE3OjQ5KzAyOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAyMSAoTWFjaW50b3NoKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOmRkYWE1MmQyLWZkNGItNGQyYy04MTM4LTVlMTM2ZDg0YWMwMTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNS0wNS0xNVQxMzoyMToyMSswMjowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMjEgKE1hY2ludG9zaCk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNCAoTWFjaW50b3NoKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNS0wNS0xNVQxMzoxMzoxNyswMjowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE1LTA1LTE1VDEzOjIxOjIxKzAyOjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNS0wNS0xNVQxMzoyMToyMSswMjowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHBob3Rvc2hvcDpUZXh0TGF5ZXJzPgogICAgICAgICAgICA8cmRmOkJhZz4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxwaG90b3Nob3A6TGF5ZXJOYW1lPlg8L3Bob3Rvc2hvcDpMYXllck5hbWU+CiAgICAgICAgICAgICAgICAgIDxwaG90b3Nob3A6TGF5ZXJUZXh0Plg8L3Bob3Rvc2hvcDpMYXllclRleHQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpCYWc+CiAgICAgICAgIDwvcGhvdG9zaG9wOlRleHRMYXllcnM+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjY1NTM1PC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4xMzwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4xNjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+HyMp+AAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAA3UlEQVR42rSSXZECQQyEPygMrIVFAidhkQASQEIjYVsCSOAksBJAAlhAwvKSWcJBUQVVl6fM5Ke7k4z6vudTG/OFTQAktcAs/ja2TyVBUgVsgQq42F5PItYBCn8PTFNjAYvw5wM92x3gCNSSFCh1araLvAdNBi53VgMtgCuweRqE7RyogAPQxHsdcQBGf0cuaZ80APzaXn468urtniQ1CaXoayStct5AL4QfgToKfoBzIF2BadGVkVZRkIU7UdQDkqRZoDwJl3ROzea2u4LUvtpHOavkty9H/m9XfhsA0l9VuzQDWrIAAAAASUVORK5CYII=); -} - -/** - * Menu; Color picker - */ - -.amcharts-export-menu .export-drawing-color { - background: #000; - width: 35px; -} -.amcharts-export-menu .export-drawing-color > a { - display: block; - overflow: hidden; - text-indent: -13333337px; -} -.amcharts-export-menu .export-drawing-color-red { - background: #f00; -} -.amcharts-export-menu .export-drawing-color-green { - background: #0f0; -} -.amcharts-export-menu .export-drawing-color-blue { - background: #00f; -} -.amcharts-export-menu .export-drawing-color-white { - background: #fff; -} - -/* -** Fallback -*/ -.amcharts-export-fallback { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - background-color: #fff; -} -.amcharts-export-fallback textarea { - border: none; - outline: none; - position: absolute; - overflow: hidden; - width: 100%; - height: 100%; - padding: 20px; -} -.amcharts-export-fallback-message { - position: absolute; - z-index: 1; - padding: 20px; - width: 100%; - background-color: #fff; -} - -/* -** DELAYED CAPTURING -*/ -.amcharts-export-menu .export-delayed-capturing > a { - text-indent: 0px; - line-height: 36px; - vertical-align: middle; - text-align: center; - background-image: none; -} - -/* -** TRANSITION; OPACITY -*/ -.amcharts-export-menu, -.amcharts-export-canvas .canvas-container { - -webkit-transition: opacity 0.5s ease-out; - -moz-transition: opacity 0.5s ease-out; - -ms-transition: opacity 0.5s ease-out; - -o-transition: opacity 0.5s ease-out; - transition: opacity 0.5s ease-out; -} -.amcharts-export-canvas.dropbox .canvas-container { - opacity: 0.5; -} - - -/* -** SHAPE -*/ -.amcharts-export-menu .export-drawing-shape a { - font: 0/0 a; - text-shadow: none; - color: transparent; -} -.amcharts-export-menu li img { - height: 20px; -} - - -/* -** BRUSH -*/ -.amcharts-export-menu .export-drawing-width a { - text-align: center; -} -.amcharts-export-menu .export-drawing-width span { - display: block; - margin: 0 auto; -} -.amcharts-export-menu .export-drawing-width span > span { - display: block; - background: #000; - border-radius: 100%; -} -.amcharts-export-menu .export-drawing-shape a:hover img { - -webkit-filter: invert(100%); - filter: invert(100%); -} \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/export/export.js b/chronos/static/js/amcharts/plugins/export/export.js deleted file mode 100644 index 39b9897..0000000 --- a/chronos/static/js/amcharts/plugins/export/export.js +++ /dev/null @@ -1,3033 +0,0 @@ -/* -Plugin Name: amCharts Export -Description: Adds export capabilities to amCharts products -Author: Benjamin Maertz, amCharts -Version: 1.3.7 -Author URI: http://www.amcharts.com/ - -Copyright 2015 amCharts - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. - -Please note that the above license covers only this plugin. It by all means does -not apply to any other amCharts products that are covered by different licenses. -*/ - -/* - ** Polyfill translation - */ -if ( !AmCharts.translations[ "export" ] ) { - AmCharts.translations[ "export" ] = {} -} -if ( !AmCharts.translations[ "export" ][ "en" ] ) { - AmCharts.translations[ "export" ][ "en" ] = { - "fallback.save.text": "CTRL + C to copy the data into the clipboard.", - "fallback.save.image": "Rightclick -> Save picture as... to save the image.", - - "capturing.delayed.menu.label": "{{duration}}", - "capturing.delayed.menu.title": "Click to cancel", - - "menu.label.print": "Print", - "menu.label.undo": "Undo", - "menu.label.redo": "Redo", - "menu.label.cancel": "Cancel", - - "menu.label.save.image": "Download as ...", - "menu.label.save.data": "Save as ...", - - "menu.label.draw": "Annotate ...", - "menu.label.draw.change": "Change ...", - "menu.label.draw.add": "Add ...", - "menu.label.draw.shapes": "Shape ...", - "menu.label.draw.colors": "Color ...", - "menu.label.draw.widths": "Size ...", - "menu.label.draw.opacities": "Opacity ...", - "menu.label.draw.text": "Text", - - "menu.label.draw.modes": "Mode ...", - "menu.label.draw.modes.pencil": "Pencil", - "menu.label.draw.modes.line": "Line", - "menu.label.draw.modes.arrow": "Arrow" - } -} - -/* - ** Polyfill export class - */ -( function() { - AmCharts[ "export" ] = function( chart, config ) { - var _this = { - name: "export", - version: "1.3.7", - libs: { - async: true, - autoLoad: true, - reload: false, - resources: [ { - "pdfmake/pdfmake.js": [ "pdfmake/vfs_fonts.js" ], - "jszip/jszip.js": [ "xlsx/xlsx.js" ] - }, "fabric.js/fabric.js", "FileSaver.js/FileSaver.js" ] - }, - config: {}, - setup: { - chart: chart, - hasBlob: false - }, - drawing: { - enabled: false, - undos: [], - redos: [], - buffer: { - position: { - x1: 0, - y1: 0, - x2: 0, - y2: 0, - xD: 0, - yD: 0 - } - }, - handler: { - undo: function( options, skipped ) { - var item = _this.drawing.undos.pop(); - if ( item ) { - item.selectable = true; - _this.drawing.redos.push( item ); - - if ( item.action == "added" ) { - _this.setup.fabric.remove( item.target ); - } - - var state = JSON.parse( item.state ); - item.target.set( state ); - - if ( item.target instanceof fabric.Group ) { - _this.drawing.handler.change( { - color: state.cfg.color, - width: state.cfg.width, - opacity: state.cfg.opacity - }, true, item.target ); - } - - _this.setup.fabric.renderAll(); - - // RECALL - if ( item.state == item.target.recentState && !skipped ) { - _this.drawing.handler.undo( item, true ); - } - } - }, - redo: function( options, skipped ) { - var item = _this.drawing.redos.pop(); - if ( item ) { - item.selectable = true; - _this.drawing.undos.push( item ); - - if ( item.action == "added" ) { - _this.setup.fabric.add( item.target ); - } - - var state = JSON.parse( item.state ); - item.target.recentState = item.state; - item.target.set( state ); - - if ( item.target instanceof fabric.Group ) { - _this.drawing.handler.change( { - color: state.cfg.color, - width: state.cfg.width, - opacity: state.cfg.opacity - }, true, item.target ); - } - - _this.setup.fabric.renderAll(); - - // RECALL - if ( item.action == "addified" ) { - _this.drawing.handler.redo(); - } - } - }, - done: function( options ) { - _this.drawing.buffer.enabled = false; - _this.drawing.undos = []; - _this.drawing.redos = []; - _this.createMenu( _this.config.menu ); - _this.setup.fabric.deactivateAll(); - _this.setup.wrapper.setAttribute( "class", _this.setup.chart.classNamePrefix + "-export-canvas" ); - _this.setup.wrapper.style.display = "none"; - }, - add: function( options ) { - var cfg = _this.deepMerge( { - top: _this.setup.fabric.height / 2, - left: _this.setup.fabric.width / 2 - }, options || {} ); - var method = cfg.url.indexOf( ".svg" ) != -1 ? fabric.loadSVGFromURL : fabric.Image.fromURL; - - method( cfg.url, function( objects, options ) { - var group = options !== undefined ? fabric.util.groupSVGElements( objects, options ) : objects; - var ratio = false; - - // RESCALE ONLY IF IT EXCEEDS THE CANVAS - if ( group.height > _this.setup.fabric.height || group.width > _this.setup.fabric.width ) { - ratio = ( _this.setup.fabric.height / 2 ) / group.height; - } - - if ( cfg.top > _this.setup.fabric.height ) { - cfg.top = _this.setup.fabric.height / 2; - } - - if ( cfg.left > _this.setup.fabric.width ) { - cfg.left = _this.setup.fabric.width / 2; - } - - group.set( { - originX: "center", - originY: "center", - top: cfg.top, - left: cfg.left, - width: ratio ? group.width * ratio : group.width, - height: ratio ? group.height * ratio : group.height, - fill: _this.drawing.color - } ); - _this.setup.fabric.add( group ); - } ); - }, - change: function( options, skipped, target ) { - var cfg = _this.deepMerge( {}, options || {} ); - var state, i1, rgba; - var current = target || _this.drawing.buffer.target; - var objects = current ? current._objects ? current._objects : [ current ] : null; - - // UPDATE DRAWING OBJECT - if ( cfg.mode ) { - _this.drawing.mode = cfg.mode; - } - if ( cfg.width ) { - _this.drawing.width = cfg.width; - _this.drawing.fontSize = cfg.width * 3; - } - if ( cfg.fontSize ) { - _this.drawing.fontSize = cfg.fontSize; - } - if ( cfg.color ) { - _this.drawing.color = cfg.color; - } - if ( cfg.opacity ) { - _this.drawing.opacity = cfg.opacity; - } - - // APPLY OPACITY ON CURRENT COLOR - rgba = new fabric.Color( _this.drawing.color ).getSource(); - rgba.pop(); - rgba.push( _this.drawing.opacity ); - _this.drawing.color = "rgba(" + rgba.join() + ")"; - _this.setup.fabric.freeDrawingBrush.color = _this.drawing.color; - _this.setup.fabric.freeDrawingBrush.width = _this.drawing.width; - - // UPDATE CURRENT SELECTION - if ( current ) { - state = JSON.parse( current.recentState ).cfg; - - // UPDATE GIVE OPTIONS ONLY - if ( state ) { - cfg.color = cfg.color || state.color; - cfg.width = cfg.width || state.width; - cfg.opacity = cfg.opacity || state.opacity; - cfg.fontSize = cfg.fontSize || cfg.width * 3; - - rgba = new fabric.Color( cfg.color ).getSource(); - rgba.pop(); - rgba.push( cfg.opacity ); - cfg.color = "rgba(" + rgba.join() + ")"; - } - - // UPDATE OBJECTS - for ( i1 = 0; i1 < objects.length; i1++ ) { - if ( - objects[ i1 ] instanceof fabric.Text || - objects[ i1 ] instanceof fabric.PathGroup || - objects[ i1 ] instanceof fabric.Triangle - ) { - if ( cfg.color || cfg.opacity ) { - objects[ i1 ].set( { - fill: cfg.color - } ); - } - if ( cfg.fontSize ) { - objects[ i1 ].set( { - fontSize: cfg.fontSize - } ); - } - } else if ( - objects[ i1 ] instanceof fabric.Path || - objects[ i1 ] instanceof fabric.Line - ) { - if ( current instanceof fabric.Group ) { - if ( cfg.color || cfg.opacity ) { - objects[ i1 ].set( { - stroke: cfg.color - } ); - } - } else { - if ( cfg.color || cfg.opacity ) { - objects[ i1 ].set( { - stroke: cfg.color - } ); - } - if ( cfg.width ) { - objects[ i1 ].set( { - strokeWidth: cfg.width - } ); - } - } - } - } - - // ADD UNDO - if ( !skipped ) { - state = JSON.stringify( _this.deepMerge( current.saveState().originalState, { - cfg: { - color: cfg.color, - width: cfg.width, - opacity: cfg.opacity - } - } ) ); - current.recentState = state; - _this.drawing.redos = []; - _this.drawing.undos.push( { - action: "modified", - target: current, - state: state - } ); - } - - _this.setup.fabric.renderAll(); - } - }, - text: function( options ) { - var cfg = _this.deepMerge( { - text: _this.i18l( "menu.label.draw.text" ), - top: _this.setup.fabric.height / 2, - left: _this.setup.fabric.width / 2, - fontSize: _this.drawing.fontSize, - fontFamily: _this.setup.chart.fontFamily || "Verdana", - fill: _this.drawing.color - }, options || {} ); - - cfg.click = function() {}; - - var text = new fabric.IText( cfg.text, cfg ); - - _this.setup.fabric.add( text ); - _this.setup.fabric.setActiveObject( text ); - - text.selectAll(); - text.enterEditing(); - - return text; - }, - line: function( options ) { - var cfg = _this.deepMerge( { - x1: ( _this.setup.fabric.width / 2 ) - ( _this.setup.fabric.width / 10 ), - x2: ( _this.setup.fabric.width / 2 ) + ( _this.setup.fabric.width / 10 ), - y1: ( _this.setup.fabric.height / 2 ), - y2: ( _this.setup.fabric.height / 2 ), - angle: 90, - strokeLineCap: _this.drawing.lineCap, - arrow: _this.drawing.arrow, - color: _this.drawing.color, - width: _this.drawing.width, - group: [], - }, options || {} ); - var i1, arrow, arrowTop, arrowLeft; - var line = new fabric.Line( [ cfg.x1, cfg.y1, cfg.x2, cfg.y2 ], { - stroke: cfg.color, - strokeWidth: cfg.width, - strokeLineCap: cfg.strokeLineCap - } ); - - cfg.group.push( line ); - - if ( cfg.arrow ) { - cfg.angle = cfg.angle ? cfg.angle : _this.getAngle( cfg.x1, cfg.y1, cfg.x2, cfg.y2 ); - - if ( cfg.arrow == "start" ) { - arrowTop = cfg.y1 + ( cfg.width / 2 ); - arrowLeft = cfg.x1 + ( cfg.width / 2 ); - } else if ( cfg.arrow == "middle" ) { - arrowTop = cfg.y2 + ( cfg.width / 2 ) - ( ( cfg.y2 - cfg.y1 ) / 2 ); - arrowLeft = cfg.x2 + ( cfg.width / 2 ) - ( ( cfg.x2 - cfg.x1 ) / 2 ); - } else { // arrow: end - arrowTop = cfg.y2 + ( cfg.width / 2 ); - arrowLeft = cfg.x2 + ( cfg.width / 2 ); - } - - arrow = new fabric.Triangle( { - top: arrowTop, - left: arrowLeft, - fill: cfg.color, - height: cfg.width * 7, - width: cfg.width * 7, - angle: cfg.angle, - originX: "center", - originY: "bottom" - } ); - cfg.group.push( arrow ); - } - - if ( cfg.action != "config" ) { - if ( cfg.arrow ) { - var group = new fabric.Group( cfg.group ); - group.set( { - cfg: cfg, - fill: cfg.color, - action: cfg.action, - selectable: true, - known: cfg.action == "change" - } ); - if ( cfg.action == "change" ) { - _this.setup.fabric.setActiveObject( group ); - } - _this.setup.fabric.add( group ); - return group; - } else { - _this.setup.fabric.add( line ); - return line; - } - } else { - for ( i1 = 0; i1 < cfg.group.length; i1++ ) { - cfg.group[ i1 ].noUndo = true; - _this.setup.fabric.add( cfg.group[ i1 ] ); - } - } - return cfg; - } - } - }, - defaults: { - position: "top-right", - fileName: "amCharts", - action: "download", - path: ( ( chart.path || "" ) + "plugins/export/" ), - formats: { - JPG: { - mimeType: "image/jpg", - extension: "jpg", - capture: true - }, - PNG: { - mimeType: "image/png", - extension: "png", - capture: true - }, - SVG: { - mimeType: "text/xml", - extension: "svg", - capture: true - }, - PDF: { - mimeType: "application/pdf", - extension: "pdf", - capture: true - }, - CSV: { - mimeType: "text/plain", - extension: "csv" - }, - JSON: { - mimeType: "text/plain", - extension: "json" - }, - XLSX: { - mimeType: "application/octet-stream", - extension: "xlsx" - } - }, - fabric: { - backgroundColor: "#FFFFFF", - removeImages: true, - selection: false, - drawing: { - enabled: true, - arrow: "end", - lineCap: "butt", - mode: "pencil", - modes: [ "pencil", "line", "arrow" ], - color: "#000000", - colors: [ "#000000", "#FFFFFF", "#FF0000", "#00FF00", "#0000FF" ], - shapes: [ "11.svg", "14.svg", "16.svg", "17.svg", "20.svg", "27.svg" ], - width: 1, - fontSize: 11, - widths: [ 1, 5, 10, 15 ], - opacity: 1, - opacities: [ 1, 0.8, 0.6, 0.4, 0.2 ], - menu: undefined, - autoClose: true - } - }, - pdfMake: { - pageSize: "A4", - pageOrientation: "portrait", - images: {}, - content: [ "Saved from:", window.location.href, { - image: "reference", - fit: [ 523.28, 769.89 ] - } ] - }, - menu: undefined, - divId: null, - menuReviver: null, - menuWalker: null, - fallback: true, - keyListener: true, - fileListener: true - }, - - /** - * Returns translated message, takes english as default - */ - i18l: function( key, language ) { - var lang = language ? langugage : _this.setup.chart.language ? _this.setup.chart.language : "en"; - var catalog = AmCharts.translations[ _this.name ][ lang ] || AmCharts.translations[ _this.name ][ "en" ]; - - return catalog[ key ] || key; - }, - - /** - * Generates download file; if unsupported offers fallback to save manually - */ - download: function( data, type, filename ) { - // SAVE - if ( window.saveAs && _this.setup.hasBlob ) { - var blob = _this.toBlob( { - data: data, - type: type - }, function( data ) { - saveAs( data, filename ); - } ); - - // FALLBACK TEXTAREA - } else if ( _this.config.fallback && type == "text/plain" ) { - var div = document.createElement( "div" ); - var msg = document.createElement( "div" ); - var textarea = document.createElement( "textarea" ); - - msg.innerHTML = _this.i18l( "fallback.save.text" ); - - div.appendChild( msg ); - div.appendChild( textarea ); - msg.setAttribute( "class", "amcharts-export-fallback-message" ); - div.setAttribute( "class", "amcharts-export-fallback" ); - _this.setup.chart.containerDiv.appendChild( div ); - - // FULFILL TEXTAREA AND PRESELECT - textarea.setAttribute( "readonly", "" ); - textarea.value = data; - textarea.focus(); - textarea.select(); - - // UPDATE MENU - _this.createMenu( [ { - "class": "export-main export-close", - label: "Done", - click: function() { - _this.createMenu( _this.config.menu ); - _this.setup.chart.containerDiv.removeChild( div ); - } - } ] ); - - // FALLBACK IMAGE - } else if ( _this.config.fallback && type.split( "/" )[ 0 ] == "image" ) { - var div = document.createElement( "div" ); - var msg = document.createElement( "div" ); - var img = _this.toImage( { - data: data - } ); - - msg.innerHTML = _this.i18l( "fallback.save.image" ); - - // FULFILL TEXTAREA AND PRESELECT - div.appendChild( msg ); - div.appendChild( img ); - msg.setAttribute( "class", "amcharts-export-fallback-message" ); - div.setAttribute( "class", "amcharts-export-fallback" ); - _this.setup.chart.containerDiv.appendChild( div ); - - // UPDATE MENU - _this.createMenu( [ { - "class": "export-main export-close", - label: "Done", - click: function() { - _this.createMenu( _this.config.menu ); - _this.setup.chart.containerDiv.removeChild( div ); - } - } ] ); - - // ERROR - } else { - throw new Error( "Unable to create file. Ensure saveAs (FileSaver.js) is supported." ); - } - return data; - }, - - /** - * Generates script, links tags and places them into the document's head - * In case of reload it replaces the node to force the download - */ - loadResource: function( src, addons ) { - var i1, exist, node, item, check, type; - var url = src.indexOf( "//" ) != -1 ? src : [ _this.libs.path, src ].join( "" ); - - function callback() { - if ( addons ) { - for ( i1 = 0; i1 < addons.length; i1++ ) { - _this.loadResource( addons[ i1 ] ); - } - } - } - - if ( src.indexOf( ".js" ) != -1 ) { - node = document.createElement( "script" ); - node.setAttribute( "type", "text/javascript" ); - node.setAttribute( "src", url ); - if ( _this.libs.async ) { - node.setAttribute( "async", "" ); - } - - } else if ( src.indexOf( ".css" ) != -1 ) { - node = document.createElement( "link" ); - node.setAttribute( "type", "text/css" ); - node.setAttribute( "rel", "stylesheet" ); - node.setAttribute( "href", url ); - } - - for ( i1 = 0; i1 < document.head.childNodes.length; i1++ ) { - item = document.head.childNodes[ i1 ]; - check = item ? ( item.src || item.href ) : false; - type = item ? item.tagName : false; - - if ( item && check && check.indexOf( src ) != -1 ) { - if ( _this.libs.reload ) { - document.head.removeChild( item ); - } - exist = true; - break; - } - } - - if ( !exist || _this.libs.reload ) { - node.addEventListener( "load", callback ); - document.head.appendChild( node ); - } - - }, - - /** - * Walker to generate the script,link tags - */ - loadDependencies: function() { - var i1, i2; - if ( _this.libs.autoLoad ) { - for ( i1 = 0; i1 < _this.libs.resources.length; i1++ ) { - if ( _this.libs.resources[ i1 ] instanceof Object ) { - for ( i2 in _this.libs.resources[ i1 ] ) { - _this.loadResource( i2, _this.libs.resources[ i1 ][ i2 ] ); - } - } else { - _this.loadResource( _this.libs.resources[ i1 ] ); - } - } - } - }, - - /** - * Converts string to number - */ - pxToNumber: function( attr, returnUndefined ) { - if ( !attr && returnUndefined ) { - return undefined; - } - return Number( String( attr ).replace( "px", "" ) ) || 0; - }, - - /** - * Converts number to string - */ - numberToPx: function( attr ) { - return String( attr ) + "px"; - }, - - /** - * Recursive method to merge the given objects together - * Overwrite flag replaces the value instead to crawl through - */ - deepMerge: function( a, b, overwrite ) { - var i1, v, type = b instanceof Array ? "array" : "object"; - - for ( i1 in b ) { - // PREVENT METHODS - if ( type == "array" && isNaN( i1 ) ) { - continue; - } - - v = b[ i1 ]; - - // NEW - if ( a[ i1 ] == undefined || overwrite ) { - if ( v instanceof Array ) { - a[ i1 ] = new Array(); - } else if ( v instanceof Function ) { - a[ i1 ] = new Function(); - } else if ( v instanceof Date ) { - a[ i1 ] = new Date(); - } else if ( v instanceof Object ) { - a[ i1 ] = new Object(); - } else if ( v instanceof Number ) { - a[ i1 ] = new Number(); - } else if ( v instanceof String ) { - a[ i1 ] = new String(); - } - } - - if ( - ( a instanceof Object || a instanceof Array ) && - ( v instanceof Object || v instanceof Array ) && - !( v instanceof Function || v instanceof Date || _this.isElement( v ) ) && - i1 != "chart" - ) { - _this.deepMerge( a[ i1 ], v, overwrite ); - } else { - if ( a instanceof Array && !overwrite ) { - a.push( v ); - } else { - a[ i1 ] = v; - } - } - } - return a; - }, - - /** - * Checks if given argument is a valid node - */ - isElement: function( thingy ) { - return thingy instanceof Object && thingy && thingy.nodeType === 1; - }, - - /** - * Checks if given event has been thrown with pressed click / touch - */ - isPressed: function( event ) { - // IE EXCEPTION - if ( event.type == "mousemove" && event.which === 1 ) { - // IGNORE - - // OTHERS - } else if ( - event.type == "touchmove" || - event.buttons === 1 || - event.button === 1 || - event.which === 1 - ) { - _this.drawing.buffer.isPressed = true; - } else { - _this.drawing.buffer.isPressed = false; - } - return _this.drawing.buffer.isPressed; - }, - - /** - * Checks if given source is within the current origin - */ - isTainted: function( source ) { - var origin = String( window.location.origin || window.location.protocol + "//" + window.location.hostname + ( window.location.port ? ':' + window.location.port : '' ) ); - - // CHECK IF TAINTED - if ( - source && - source.indexOf( "//" ) != -1 && - source.indexOf( origin.replace( /.*:/, "" ) ) == -1 - ) { - return true; - } - return false; - }, - - /* - ** Checks several indicators for acceptance; - */ - isSupported: function() { - // CHECK CONFIG - if ( !_this.config.enabled ) { - return false; - } - - // CHECK IE; ATTEMPT TO ACCESS HEAD ELEMENT - if ( AmCharts.isIE && AmCharts.IEversion <= 9 ) { - if ( !Array.prototype.indexOf || !document.head || _this.config.fallback === false ) { - return false; - } - } - return true; - }, - - - getAngle: function( x1, y1, x2, y2 ) { - var x = x2 - x1; - var y = y2 - y1; - var angle; - if ( x == 0 ) { - if ( y == 0 ) { - angle = 0; - } else if ( y > 0 ) { - angle = Math.PI / 2; - } else { - angle = Math.PI * 3 / 2; - } - } else if ( y == 0 ) { - if ( x > 0 ) { - angle = 0; - } else { - angle = Math.PI; - } - } else { - if ( x < 0 ) { - angle = Math.atan( y / x ) + Math.PI; - } else if ( y < 0 ) { - angle = Math.atan( y / x ) + ( 2 * Math.PI ); - } else { - angle = Math.atan( y / x ); - } - } - return angle * 180 / Math.PI; - }, - - /** - * Recursive method which crawls upwards to gather the requested attribute - */ - gatherAttribute: function( elm, attr, limit, lvl ) { - var value, lvl = lvl ? lvl : 0, - limit = limit ? limit : 3; - if ( elm ) { - value = elm.getAttribute( attr ); - - if ( !value && lvl < limit ) { - return _this.gatherAttribute( elm.parentNode, attr, limit, lvl + 1 ); - } - } - return value; - }, - - /** - * Recursive method which crawls upwards to gather the requested classname - */ - gatherClassName: function( elm, className, limit, lvl ) { - var value, lvl = lvl ? lvl : 0, - limit = limit ? limit : 3; - - if ( _this.isElement(elm) ) { - value = ( elm.getAttribute( "class" ) || "" ).split( " " ).indexOf( className ) != -1; - - if ( !value && lvl < limit ) { - return _this.gatherClassName( elm.parentNode, className, limit, lvl + 1 ); - } else if ( value ) { - value = elm; - } - } - return value; - }, - - /** - * Collects the clip-paths and patterns - */ - gatherElements: function( group, cfg, images ) { - var i1, i2; - for ( i1 = 0; i1 < group.children.length; i1++ ) { - var childNode = group.children[ i1 ]; - - // CLIPPATH - if ( childNode.tagName == "clipPath" ) { - for ( i2 = 0; i2 < childNode.childNodes.length; i2++ ) { - childNode.childNodes[ i2 ].setAttribute( "fill", "transparent" ); - } - group.clippings[ childNode.id ] = childNode; - - // PATTERN - } else if ( childNode.tagName == "pattern" ) { - var props = { - node: childNode, - source: childNode.getAttribute( "xlink:href" ), - width: Number( childNode.getAttribute( "width" ) ), - height: Number( childNode.getAttribute( "height" ) ), - repeat: "repeat" - } - - // GATHER BACKGROUND COLOR - for ( i2 = 0; i2 < childNode.childNodes.length; i2++ ) { - if ( childNode.childNodes[ i2 ].tagName == "rect" ) { - props.fill = childNode.childNodes[ i2 ].getAttribute( "fill" ); - } - } - - // TAINTED - if ( cfg.removeImages && _this.isTainted( props.source ) ) { - group.patterns[ childNode.id ] = props.fill ? props.fill : "transparent"; - } else { - images.included++; - - // LOAD IMAGE MANUALLY; TO RERENDER THE CANVAS - fabric.Image.fromURL( props.source, ( function( props ) { - return function( img ) { - images.loaded++; - - var patternSourceCanvas = new fabric.StaticCanvas( undefined, { - backgroundColor: props.fill - } ); - patternSourceCanvas.add( img ); - - var pattern = new fabric.Pattern( { - source: function() { - patternSourceCanvas.setDimensions( { - width: props.width, - height: props.height - } ); - return patternSourceCanvas.getElement(); - }, - repeat: 'repeat' - } ); - - group.patterns[ props.node.id ] = pattern; - } - } )( props ) ); - } - - // IMAGES - } else if ( childNode.tagName == "image" ) { - images.included++; - - // LOAD IMAGE MANUALLY; TO RERENDER THE CANVAS - fabric.Image.fromURL( childNode.getAttribute( "xlink:href" ), function( img ) { - images.loaded++; - } ); - } - } - return group; - }, - - /* - ** GATHER MOUSE POSITION; - */ - gatherPosition: function( event, type ) { - var ref = _this.drawing.buffer.position; - var ivt = fabric.util.invertTransform( _this.setup.fabric.viewportTransform ); - var pos; - - if ( event.type == "touchmove" ) { - if ( "touches" in event ) { - event = event.touches[ 0 ]; - } else if ( "changedTouches" in event ) { - event = event.changedTouches[ 0 ]; - } - } - - pos = fabric.util.transformPoint( _this.setup.fabric.getPointer( event, true ), ivt ); - - if ( type == 1 ) { - ref.x1 = pos.x; - ref.y1 = pos.y; - } - - ref.x2 = pos.x; - ref.y2 = pos.y; - ref.xD = ( ref.x1 - ref.x2 ) < 0 ? ( ref.x1 - ref.x2 ) * -1 : ( ref.x1 - ref.x2 ); - ref.yD = ( ref.y1 - ref.y2 ) < 0 ? ( ref.y1 - ref.y2 ) * -1 : ( ref.y1 - ref.y2 ); - - return ref; - }, - - /** - * Method to capture the current state of the chart - */ - capture: function( options, callback ) { - var i1; - var cfg = _this.deepMerge( _this.deepMerge( {}, _this.config.fabric ), options || {} ); - var groups = []; - var offset = { - x: 0, - y: 0, - pX: 0, - pY: 0, - width: _this.setup.chart.divRealWidth, - height: _this.setup.chart.divRealHeight - }; - var images = { - loaded: 0, - included: 0 - } - - // GATHER SVGS - var svgs = _this.setup.chart.containerDiv.getElementsByTagName( "svg" ); - for ( i1 = 0; i1 < svgs.length; i1++ ) { - var group = { - svg: svgs[ i1 ], - parent: svgs[ i1 ].parentNode, - children: svgs[ i1 ].getElementsByTagName( "*" ), - offset: { - x: 0, - y: 0 - }, - patterns: {}, - clippings: {} - } - - // GATHER ELEMENTS - group = _this.gatherElements( group, cfg, images ); - - // APPEND GROUP - groups.push( group ); - } - - // GATHER EXTERNAL LEGEND - if ( _this.config.legend && _this.setup.chart.legend && _this.setup.chart.legend.position == "outside" ) { - var group = { - svg: _this.setup.chart.legend.container.container, - parent: _this.setup.chart.legend.container.container.parentNode, - children: _this.setup.chart.legend.container.container.getElementsByTagName( "*" ), - offset: { - x: 0, - y: 0 - }, - legend: { - type: [ "top", "left" ].indexOf( _this.config.legend.position ) != -1 ? "unshift" : "push", - position: _this.config.legend.position, - width: _this.config.legend.width ? _this.config.legend.width : _this.setup.chart.legend.container.width, - height: _this.config.legend.height ? _this.config.legend.height : _this.setup.chart.legend.container.height - }, - patterns: {}, - clippings: {} - } - - // ADAPT CANVAS DIMENSIONS - if ( [ "left", "right" ].indexOf( group.legend.position ) != -1 ) { - offset.width += group.legend.width; - offset.height = group.legend.height > offset.height ? group.legend.height : offset.height; - } else if ( [ "top", "bottom" ].indexOf( group.legend.position ) != -1 ) { - offset.height += group.legend.height; - } - - // GATHER ELEMENTS - group = _this.gatherElements( group, cfg, images ); - - // PRE/APPEND SVG - groups[ group.legend.type ]( group ); - } - - // CLEAR IF EXIST - _this.drawing.buffer.enabled = cfg.action == "draw"; - - if ( !_this.setup.wrapper ) { - _this.setup.wrapper = document.createElement( "div" ); - _this.setup.wrapper.setAttribute( "class", _this.setup.chart.classNamePrefix + "-export-canvas" ); - _this.setup.chart.containerDiv.appendChild( _this.setup.wrapper ); - } else { - _this.setup.wrapper.innerHTML = ""; - } - - // STOCK CHART; SELECTOR OFFSET - if ( _this.setup.chart.type == "stock" ) { - var padding = { - top: 0, - right: 0, - bottom: 0, - left: 0 - } - if ( _this.setup.chart.leftContainer ) { - offset.width -= _this.setup.chart.leftContainer.offsetWidth; - padding.left = _this.setup.chart.leftContainer.offsetWidth + ( _this.setup.chart.panelsSettings.panelSpacing * 2 ); - } - if ( _this.setup.chart.rightContainer ) { - offset.width -= _this.setup.chart.rightContainer.offsetWidth; - padding.right = _this.setup.chart.rightContainer.offsetWidth + ( _this.setup.chart.panelsSettings.panelSpacing * 2 ); - } - if ( _this.setup.chart.periodSelector && [ "top", "bottom" ].indexOf( _this.setup.chart.periodSelector.position ) != -1 ) { - offset.height -= _this.setup.chart.periodSelector.offsetHeight + _this.setup.chart.panelsSettings.panelSpacing; - padding[ _this.setup.chart.periodSelector.position ] += _this.setup.chart.periodSelector.offsetHeight + _this.setup.chart.panelsSettings.panelSpacing; - } - if ( _this.setup.chart.dataSetSelector && [ "top", "bottom" ].indexOf( _this.setup.chart.dataSetSelector.position ) != -1 ) { - offset.height -= _this.setup.chart.dataSetSelector.offsetHeight; - padding[ _this.setup.chart.dataSetSelector.position ] += _this.setup.chart.dataSetSelector.offsetHeight; - } - - // APPLY OFFSET ON WRAPPER - _this.setup.wrapper.style.paddingTop = _this.numberToPx( padding.top ); - _this.setup.wrapper.style.paddingRight = _this.numberToPx( padding.right ); - _this.setup.wrapper.style.paddingBottom = _this.numberToPx( padding.bottom ); - _this.setup.wrapper.style.paddingLeft = _this.numberToPx( padding.left ); - } - - // CREATE CANVAS - _this.setup.canvas = document.createElement( "canvas" ); - _this.setup.wrapper.appendChild( _this.setup.canvas ); - _this.setup.fabric = new fabric.Canvas( _this.setup.canvas, _this.deepMerge( { - width: offset.width, - height: offset.height, - isDrawingMode: true - }, cfg ) ); - - // REAPPLY FOR SOME REASON - _this.deepMerge( _this.setup.fabric, cfg ); - _this.deepMerge( _this.setup.fabric.freeDrawingBrush, cfg.drawing ); - - // RELIABLE VARIABLES; UPDATE DRAWING - _this.deepMerge( _this.drawing, cfg.drawing ); - _this.drawing.handler.change( cfg.drawing ); - - // OBSERVE MOUSE EVENTS - _this.setup.fabric.on( "mouse:down", function( e ) { - var p = _this.gatherPosition( e.e, 1 ); - _this.drawing.buffer.pressedTS = Number( new Date() ); - _this.isPressed( e.e ); - } ); - _this.setup.fabric.on( "mouse:move", function( e ) { - var p = _this.gatherPosition( e.e, 2 ); - _this.isPressed( e.e ); - - // CREATE INITIAL LINE / ARROW; JUST ON LEFT CLICK - if ( _this.drawing.buffer.isPressed && !_this.drawing.buffer.line ) { - if ( !_this.drawing.buffer.isSelected && _this.drawing.mode != "pencil" && ( p.xD > 5 || p.xD > 5 ) ) { - _this.drawing.buffer.hasLine = true; - _this.setup.fabric.isDrawingMode = false; - _this.setup.fabric._onMouseUpInDrawingMode( e ); - _this.drawing.buffer.line = _this.drawing.handler.line( { - x1: p.x1, - y1: p.y1, - x2: p.x2, - y2: p.y2, - arrow: _this.drawing.mode == "line" ? false : _this.drawing.arrow, - action: "config" - } ); - } - } - - // UPDATE LINE / ARROW - if ( _this.drawing.buffer.line ) { - var obj, top, left; - var l = _this.drawing.buffer.line; - - l.x2 = p.x2; - l.y2 = p.y2; - - for ( i1 = 0; i1 < l.group.length; i1++ ) { - obj = l.group[ i1 ]; - - if ( obj instanceof fabric.Line ) { - obj.set( { - x2: l.x2, - y2: l.y2 - } ); - } else if ( obj instanceof fabric.Triangle ) { - l.angle = ( _this.getAngle( l.x1, l.y1, l.x2, l.y2 ) + 90 ); - - if ( l.arrow == "start" ) { - top = l.y1 + ( l.width / 2 ); - left = l.x1 + ( l.width / 2 ); - } else if ( l.arrow == "middle" ) { - top = l.y2 + ( l.width / 2 ) - ( ( l.y2 - l.y1 ) / 2 ); - left = l.x2 + ( l.width / 2 ) - ( ( l.x2 - l.x1 ) / 2 ); - } else { // arrow: end - top = l.y2 + ( l.width / 2 ); - left = l.x2 + ( l.width / 2 ); - } - - obj.set( { - top: top, - left: left, - angle: l.angle - } ); - } - } - _this.setup.fabric.renderAll(); - } - } ); - _this.setup.fabric.on( "mouse:up", function( e ) { - // SELECT TARGET - if ( Number( new Date() ) - _this.drawing.buffer.pressedTS < 200 ) { - var target = _this.setup.fabric.findTarget( e.e ); - if ( target && target.selectable ) { - _this.setup.fabric.setActiveObject( target ); - } - } - - // UPDATE LINE / ARROW - if ( _this.drawing.buffer.line ) { - for ( i1 = 0; i1 < _this.drawing.buffer.line.group.length; i1++ ) { - _this.drawing.buffer.line.group[ i1 ].remove(); - } - delete _this.drawing.buffer.line.action; - delete _this.drawing.buffer.line.group; - _this.drawing.handler.line( _this.drawing.buffer.line ); - } - _this.drawing.buffer.line = false; - _this.drawing.buffer.hasLine = false; - _this.drawing.buffer.isPressed = false; - } ); - - // OBSERVE OBJECT SELECTION - _this.setup.fabric.on( "object:selected", function( e ) { - _this.drawing.buffer.isSelected = true; - _this.drawing.buffer.target = e.target; - _this.setup.fabric.isDrawingMode = false; - } ); - _this.setup.fabric.on( "selection:cleared", function( e ) { - _this.drawing.buffer.onMouseDown = _this.setup.fabric.freeDrawingBrush.onMouseDown; - _this.drawing.buffer.target = false; - - // FREEHAND WORKAROUND - if ( _this.drawing.buffer.isSelected ) { - _this.setup.fabric._isCurrentlyDrawing = false; - _this.setup.fabric.freeDrawingBrush.onMouseDown = function() {}; - } - - // DELAYED DESELECTION TO PREVENT DRAWING - setTimeout( function() { - _this.drawing.buffer.isSelected = false; - _this.setup.fabric.isDrawingMode = true; - _this.setup.fabric.freeDrawingBrush.onMouseDown = _this.drawing.buffer.onMouseDown; - }, 10 ); - } ); - _this.setup.fabric.on( "path:created", function( e ) { - var item = e.path; - if ( Number( new Date() ) - _this.drawing.buffer.pressedTS < 200 || _this.drawing.buffer.hasLine ) { - _this.setup.fabric.remove( item ); - _this.setup.fabric.renderAll(); - return; - } - } ); - - // OBSERVE OBJECT MODIFICATIONS - _this.setup.fabric.on( "object:added", function( e ) { - var item = e.target; - var state = _this.deepMerge( item.saveState().originalState, { - cfg: { - color: _this.drawing.color, - width: _this.drawing.width, - opacity: _this.drawing.opacity, - fontSize: _this.drawing.fontSize - } - } ); - - if ( Number( new Date() ) - _this.drawing.buffer.pressedTS < 200 && !item.noUndo ) { - _this.setup.fabric.remove( item ); - _this.setup.fabric.renderAll(); - return; - } - - state = JSON.stringify( state ); - item.recentState = state; - - if ( item.selectable && !item.known && !item.noUndo ) { - _this.drawing.undos.push( { - action: "added", - target: item, - state: state - } ); - _this.drawing.undos.push( { - action: "addified", - target: item, - state: state - } ); - _this.drawing.redos = []; - } - - item.known = true; - _this.setup.fabric.isDrawingMode = true; - } ); - _this.setup.fabric.on( "object:modified", function( e ) { - var item = e.target; - var recentState = JSON.parse( item.recentState ); - var state = _this.deepMerge( item.saveState().originalState, { - cfg: recentState.cfg - } ); - - state = JSON.stringify( state ); - item.recentState = state; - - _this.drawing.undos.push( { - action: "modified", - target: item, - state: state - } ); - - _this.drawing.redos = []; - } ); - _this.setup.fabric.on( "text:changed", function( e ) { - var item = e.target; - clearTimeout( item.timer ); - item.timer = setTimeout( function() { - var state = JSON.stringify( item.saveState().originalState ); - - item.recentState = state; - - _this.drawing.redos = []; - _this.drawing.undos.push( { - action: "modified", - target: item, - state: state - } ); - }, 250 ); - } ); - - // DRAWING - if ( _this.drawing.buffer.enabled ) { - _this.setup.wrapper.setAttribute( "class", _this.setup.chart.classNamePrefix + "-export-canvas active" ); - _this.setup.wrapper.style.backgroundColor = cfg.backgroundColor; - _this.setup.wrapper.style.display = "block"; - - } else { - _this.setup.wrapper.setAttribute( "class", _this.setup.chart.classNamePrefix + "-export-canvas" ); - _this.setup.wrapper.style.display = "none"; - } - - for ( i1 = 0; i1 < groups.length; i1++ ) { - var group = groups[ i1 ]; - var isLegend = _this.gatherClassName( group.parent, _this.setup.chart.classNamePrefix + "-legend-div", 1 ); - var isPanel = _this.gatherClassName( group.parent, _this.setup.chart.classNamePrefix + "-stock-panel-div" ); - var isScrollbar = _this.gatherClassName( group.parent, _this.setup.chart.classNamePrefix + "-scrollbar-chart-div" ); - - // STOCK CHART; SVG OFFSET;; SVG OFFSET - if ( _this.setup.chart.type == "stock" && _this.setup.chart.legendSettings.position ) { - - // TOP / BOTTOM - if ( [ "top", "bottom" ].indexOf( _this.setup.chart.legendSettings.position ) != -1 ) { - - // POSITION; ABSOLUTE - if ( group.parent.style.top && group.parent.style.left ) { - group.offset.y = _this.pxToNumber( group.parent.style.top ); - group.offset.x = _this.pxToNumber( group.parent.style.left ); - - // POSITION; RELATIVE - } else { - group.offset.x = offset.x; - group.offset.y = offset.y; - offset.y += _this.pxToNumber( group.parent.style.height ); - - // LEGEND; OFFSET - if ( isPanel ) { - offset.pY = _this.pxToNumber( isPanel.style.marginTop ); - group.offset.y += offset.pY; - - // SCROLLBAR; OFFSET - } else if ( isScrollbar ) { - group.offset.y += offset.pY; - } - } - - // LEFT / RIGHT - } else if ( [ "left", "right" ].indexOf( _this.setup.chart.legendSettings.position ) != -1 ) { - group.offset.y = _this.pxToNumber( group.parent.style.top ) + offset.pY; - group.offset.x = _this.pxToNumber( group.parent.style.left ) + offset.pX; - - // LEGEND; OFFSET - if ( isLegend ) { - offset.pY += _this.pxToNumber( isPanel.style.height ) + _this.setup.chart.panelsSettings.panelSpacing; - - // SCROLLBAR; OFFSET - } else if ( isScrollbar ) { - group.offset.y -= _this.setup.chart.panelsSettings.panelSpacing; - } - } - - // REGULAR CHARTS; SVG OFFSET - } else { - // POSITION; ABSOLUTE - if ( group.parent.style.position == "absolute" ) { - group.offset.absolute = true; - group.offset.top = _this.pxToNumber(group.parent.style.top); - group.offset.right = _this.pxToNumber(group.parent.style.right,true); - group.offset.bottom = _this.pxToNumber(group.parent.style.bottom,true); - group.offset.left = _this.pxToNumber(group.parent.style.left); - group.offset.width = _this.pxToNumber(group.parent.style.width); - group.offset.height = _this.pxToNumber(group.parent.style.height); - - // POSITION; RELATIVE - } else if ( group.parent.style.top && group.parent.style.left ) { - group.offset.y = _this.pxToNumber( group.parent.style.top ); - group.offset.x = _this.pxToNumber( group.parent.style.left ); - - // POSITION; GENERIC - } else { - - // EXTERNAL LEGEND - if ( group.legend ) { - if ( group.legend.position == "left" ) { - offset.x += group.legend.width; - } else if ( group.legend.position == "right" ) { - group.offset.x += offset.width - group.legend.width; - } else if ( group.legend.position == "top" ) { - offset.y += group.legend.height; - } else if ( group.legend.position == "bottom" ) { - group.offset.y += offset.height - group.legend.height; // OFFSET.Y - } - - // NORMAL - } else { - group.offset.x = offset.x; - group.offset.y = offset.y + offset.pY; - offset.y += _this.pxToNumber( group.parent.style.height ); - } - } - - // PANEL - if ( isLegend && isPanel && isPanel.style.marginTop ) { - offset.y += _this.pxToNumber( isPanel.style.marginTop ); - group.offset.y += _this.pxToNumber( isPanel.style.marginTop ); - } - } - - // BEFORE CAPTURING - _this.handleCallback( cfg.beforeCapture, cfg ); - - // ADD TO CANVAS - fabric.parseSVGDocument( group.svg, ( function( group ) { - return function( objects, options ) { - var i1; - var g = fabric.util.groupSVGElements( objects, options ); - var tmp = { - selectable: false - }; - - if ( group.offset.absolute ) { - if ( group.offset.bottom !== undefined ) { - tmp.top = offset.height - group.offset.height - group.offset.bottom; - } else { - tmp.top = group.offset.top; - } - - if ( group.offset.right !== undefined ) { - tmp.left = offset.width - group.offset.width - group.offset.right; - } else { - tmp.left = group.offset.left; - } - - } else { - tmp.top = group.offset.y; - tmp.left = group.offset.x; - } - - for ( i1 = 0; i1 < g.paths.length; i1++ ) { - - // OPACITY; TODO: DISTINGUISH OPACITY TYPES - if ( g.paths[ i1 ] ) { - - // CHECK ORIGIN; REMOVE TAINTED - if ( cfg.removeImages && _this.isTainted( g.paths[ i1 ][ "xlink:href" ] ) ) { - g.paths.splice( i1, 1 ); - continue; - } - - // SET OPACITY - if ( g.paths[ i1 ].fill instanceof Object ) { - - // MISINTERPRETATION OF FABRIC - if ( g.paths[ i1 ].fill.type == "radial" ) { - g.paths[ i1 ].fill.coords.r2 = g.paths[ i1 ].fill.coords.r1 * -1; - g.paths[ i1 ].fill.coords.r1 = 0; - } - - g.paths[ i1 ].set( { - opacity: g.paths[ i1 ].fillOpacity - } ); - - // PATTERN; TODO: DISTINGUISH OPACITY TYPES - } else if ( String( g.paths[ i1 ].fill ).slice( 0, 3 ) == "url" ) { - var PID = g.paths[ i1 ].fill.slice( 5, -1 ); - if ( group.patterns && group.patterns[ PID ] ) { - g.paths[ i1 ].set( { - fill: group.patterns[ PID ], - opacity: g.paths[ i1 ].fillOpacity - } ); - } - } - - // CLIPPATH; - if ( String( g.paths[ i1 ].clipPath ).slice( 0, 3 ) == "url" ) { - var PID = g.paths[ i1 ].clipPath.slice( 5, -1 ); - - if ( group.clippings[ PID ] ) { - var mask = group.clippings[ PID ].childNodes[ 0 ]; - var transform = g.paths[ i1 ].svg.getAttribute( "transform" ) || "translate(0,0)"; - - transform = transform.slice( 10, -1 ).split( "," ); - - g.paths[ i1 ].set( { - clipTo: ( function( mask, transform ) { - return function( ctx ) { - var width = Number( mask.getAttribute( "width" ) || "0" ); - var height = Number( mask.getAttribute( "height" ) || "0" ); - var x = Number( mask.getAttribute( "x" ) || "0" ); - var y = Number( mask.getAttribute( "y" ) || "0" ); - - ctx.rect( Number( transform[ 0 ] ) * -1 + x, Number( transform[ 1 ] ) * -1 + y, width, height ); - } - } )( mask, transform ) - } ); - } - } - - // TODO; WAIT FOR TSPAN SUPPORT FROM FABRICJS SIDE - if ( g.paths[ i1 ].originalBBox ) { - var bb = g.paths[ i1 ].originalBBox; - if ( g.paths[ i1 ].textAlign == "left" ) { - g.paths[ i1 ].set( { - left: bb.left + ( g.paths[ i1 ].width / 2 ) - } ); - } else { - g.paths[ i1 ].set( { - left: bb.left - ( g.paths[ i1 ].width / 2 ) - } ); - } - } - } - } - - g.set( tmp ); - - _this.setup.fabric.add( g ); - - // ADD BALLOONS - if ( group.svg.parentNode && group.svg.parentNode.getElementsByTagName ) { - var balloons = group.svg.parentNode.getElementsByClassName( _this.setup.chart.classNamePrefix + "-balloon-div" ); - for ( i1 = 0; i1 < balloons.length; i1++ ) { - if ( cfg.balloonFunction instanceof Function ) { - cfg.balloonFunction.apply( _this, [ balloons[ i1 ], group ] ); - } else { - var parent = balloons[ i1 ]; - var text = parent.childNodes[ 0 ]; - var label = new fabric.Text( text.innerText || text.innerHTML, { - fontSize: _this.pxToNumber( text.style.fontSize ), - fontFamily: text.style.fontFamily, - fill: text.style.color, - top: _this.pxToNumber( parent.style.top ) + group.offset.y, - left: _this.pxToNumber( parent.style.left ) + group.offset.x, - selectable: false - } ); - - _this.setup.fabric.add( label ); - } - } - } - if ( group.svg.nextSibling && group.svg.nextSibling.tagName == "A" ) { - var label = new fabric.Text( group.svg.nextSibling.innerText || group.svg.nextSibling.innerHTML, { - fontSize: _this.pxToNumber( group.svg.nextSibling.style.fontSize ), - fontFamily: group.svg.nextSibling.style.fontFamily, - fill: group.svg.nextSibling.style.color, - top: _this.pxToNumber( group.svg.nextSibling.style.top ) + group.offset.y, - left: _this.pxToNumber( group.svg.nextSibling.style.left ) + group.offset.x, - selectable: false - } ); - _this.setup.fabric.add( label ); - } - - groups.pop(); - - // TRIGGER CALLBACK WITH SAFETY DELAY - if ( !groups.length ) { - var timer = setInterval( function() { - if ( images.loaded == images.included ) { - clearTimeout( timer ); - _this.handleCallback( cfg.afterCapture, cfg ); - _this.setup.fabric.renderAll(); - _this.handleCallback( callback, cfg ); - } - }, AmCharts.updateRate ); - } - } - - // IDENTIFY ELEMENTS THROUGH CLASSNAMES - } )( group ), function( svg, obj ) { - var i1; - var className = _this.gatherAttribute( svg, "class" ); - var visibility = _this.gatherAttribute( svg, "visibility" ); - var clipPath = _this.gatherAttribute( svg, "clip-path" ); - - obj.className = String( className ); - obj.classList = String( className ).split( " " ); - obj.clipPath = clipPath; - obj.svg = svg; - - // TODO; WAIT FOR TSPAN SUPPORT FROM FABRICJS SIDE - if ( svg.tagName == "text" && svg.childNodes.length > 1 ) { - var lines = []; - var textAnchor = svg.getAttribute( "text-anchor" ) || "left"; - var anchorMap = { - "start": "left", - "middle": "center", - "end": "right" - } - - for ( i1 = 0; i1 < svg.childNodes.length; i1++ ) { - lines.push( svg.childNodes[ i1 ].textContent ); - } - - if ( textAnchor != "middle" ) { - obj.originalBBox = obj.getBoundingRect(); - } - obj.set( { - lineHeight: 1.05, - top: obj.top + obj.height - ( obj.fontSize * ( 0.18 + obj._fontSizeFraction ) / 2 ), - text: lines.join( "\n" ), - textAlign: anchorMap[ textAnchor ], - selectable: false - } ); - } - - // HIDE HIDDEN ELEMENTS; TODO: FIND A BETTER WAY TO HANDLE THAT - if ( visibility == "hidden" ) { - obj.opacity = 0; - - // WALKTHROUGH ELEMENTS - } else { - - // TRANSPORT FILL/STROKE OPACITY - var attrs = [ "fill", "stroke" ]; - for ( i1 = 0; i1 < attrs.length; i1++ ) { - var attr = attrs[ i1 ] - var attrVal = String( svg.getAttribute( attr ) || "" ); - var attrOpacity = Number( svg.getAttribute( attr + "-opacity" ) || "1" ); - var attrRGBA = fabric.Color.fromHex( attrVal ).getSource(); - - // EXCEPTION - if ( obj.classList.indexOf( _this.setup.chart.classNamePrefix + "-guide-fill" ) != -1 && !attrVal ) { - attrOpacity = 0; - attrRGBA = fabric.Color.fromHex( "#000000" ).getSource(); - } - - if ( attrRGBA ) { - attrRGBA.pop(); - attrRGBA.push( attrOpacity ) - obj[ attr ] = "rgba(" + attrRGBA.join() + ")"; - obj[ attr + _this.capitalize( "opacity" ) ] = attrOpacity; - } - } - } - - // REVIVER - _this.handleCallback( cfg.reviver, obj, svg ); - } ); - } - }, - - /** - * Returns the current canvas - */ - toCanvas: function( options, callback ) { - var cfg = _this.deepMerge( { - // NUFFIN - }, options || {} ); - var data = _this.setup.canvas; - - _this.handleCallback( callback, data ); - - return data; - }, - - /** - * Returns an image; by default PNG - */ - toImage: function( options, callback ) { - var cfg = _this.deepMerge( { - format: "png", - quality: 1, - multiplier: 1 - }, options || {} ); - var data = cfg.data; - var img = document.createElement( "img" ); - - if ( !cfg.data ) { - if ( cfg.lossless || cfg.format == "svg" ) { - data = _this.toSVG( _this.deepMerge( cfg, { - getBase64: true - } ) ); - } else { - data = _this.setup.fabric.toDataURL( cfg ); - } - } - - img.setAttribute( "src", data ); - - _this.handleCallback( callback, img ); - - return img; - }, - - /** - * Generates a blob instance image; returns base64 datastring - */ - toBlob: function( options, callback ) { - var cfg = _this.deepMerge( { - data: "empty", - type: "text/plain" - }, options || {} ); - var data; - var isBase64 = /^data:.+;base64,(.*)$/.exec( cfg.data ); - - // GATHER BODY - if ( isBase64 ) { - cfg.data = isBase64[ 0 ]; - cfg.type = cfg.data.slice( 5, cfg.data.indexOf( "," ) - 7 ); - cfg.data = _this.toByteArray( { - data: cfg.data.slice( cfg.data.indexOf( "," ) + 1, cfg.data.length ) - } ); - } - - if ( cfg.getByteArray ) { - data = cfg.data; - } else { - data = new Blob( [ cfg.data ], { - type: cfg.type - } ); - } - - _this.handleCallback( callback, data ); - - return data; - }, - - /** - * Generates JPG image; returns base64 datastring - */ - toJPG: function( options, callback ) { - var cfg = _this.deepMerge( { - format: "jpeg", - quality: 1, - multiplier: 1 - }, options || {} ); - cfg.format = cfg.format.toLowerCase(); - var data = _this.setup.fabric.toDataURL( cfg ); - - _this.handleCallback( callback, data ); - - return data; - }, - - /** - * Generates PNG image; returns base64 datastring - */ - toPNG: function( options, callback ) { - var cfg = _this.deepMerge( { - format: "png", - quality: 1, - multiplier: 1 - }, options || {} ); - var data = _this.setup.fabric.toDataURL( cfg ); - - _this.handleCallback( callback, data ); - - return data; - }, - - /** - * Generates SVG image; returns base64 datastring - */ - toSVG: function( options, callback ) { - var cfg = _this.deepMerge( { - reviver: function( string ) { - var matcher = new RegExp( /\bstyle=(['"])(.*?)\1/ ); - var match = matcher.exec( string )[ 0 ].slice( 7, -1 ); - var styles = match.split( ";" ); - var replacement = []; - - for ( i1 = 0; i1 < styles.length; i1++ ) { - if ( styles[ i1 ] ) { - var pair = styles[ i1 ].replace( /\s/g, "" ).split( ":" ); - var key = pair[ 0 ]; - var value = pair[ 1 ]; - - if ( [ "fill", "stroke" ].indexOf( key ) != -1 ) { - value = fabric.Color.fromRgba( value ); - if ( value && value._source ) { - var color = "#" + value.toHex(); - var opacity = value._source[ 3 ]; - - replacement.push( [ key, color ].join( ":" ) ); - replacement.push( [ key + "-opacity", opacity ].join( ":" ) ); - } else { - replacement.push( styles[ i1 ] ); - } - } else if ( key != "opactiy" ) { - replacement.push( styles[ i1 ] ); - } - } - } - - return string.replace( match, replacement.join( ";" ) ); - } - }, options || {} ); - var data = _this.setup.fabric.toSVG( cfg, cfg.reviver ); - - if ( cfg.getBase64 ) { - data = "data:image/svg+xml;base64," + btoa( data ); - } - - _this.handleCallback( callback, data ); - - return data; - }, - - /** - * Generates PDF; returns base64 datastring - */ - toPDF: function( options, callback ) { - var cfg = _this.deepMerge( _this.deepMerge( { - multiplier: 2 - }, _this.config.pdfMake ), options || {}, true ); - cfg.images.reference = _this.toPNG( cfg ); - var data = new pdfMake.createPdf( cfg ); - - if ( callback ) { - data.getDataUrl( ( function( callback ) { - return function() { - callback.apply( _this, arguments ); - } - } )( callback ) ); - } - - return data; - }, - - /** - * Generates an image; hides all elements on page to trigger native print method - */ - toPRINT: function( options, callback ) { - var i1; - var cfg = _this.deepMerge( { - delay: 1, - lossless: false - }, options || {} ); - var data = _this.toImage( cfg ); - var states = []; - var items = document.body.childNodes; - - data.setAttribute( "style", "width: 100%; max-height: 100%;" ); - - for ( i1 = 0; i1 < items.length; i1++ ) { - if ( _this.isElement( items[ i1 ] ) ) { - states[ i1 ] = items[ i1 ].style.display; - items[ i1 ].style.display = "none"; - } - } - - document.body.appendChild( data ); - window.print(); - - setTimeout( function() { - for ( i1 = 0; i1 < items.length; i1++ ) { - if ( _this.isElement( items[ i1 ] ) ) { - items[ i1 ].style.display = states[ i1 ]; - } - } - document.body.removeChild( data ); - _this.handleCallback( callback, data ); - }, cfg.delay ); - - return data; - }, - - /** - * Generates JSON string - */ - toJSON: function( options, callback ) { - var cfg = _this.deepMerge( { - dateFormat: _this.config.dateFormat || "dateObject", - }, options || {}, true ); - cfg.data = cfg.data ? cfg.data : _this.getChartData( cfg ); - var data = JSON.stringify( cfg.data, undefined, "\t" ); - - _this.handleCallback( callback, data ); - - return data; - }, - - /** - * Generates CSV string - */ - toCSV: function( options, callback ) { - var row, col; - var cfg = _this.deepMerge( { - data: _this.getChartData( options ), - delimiter: ",", - quotes: true, - escape: true - }, options || {}, true ); - var data = ""; - var cols = []; - var buffer = []; - - function enchant( value, column ) { - - // STRING - if ( typeof value === "string" ) { - value = value; - } - - // WRAP IN QUOTES - if ( typeof value === "string" ) { - if ( cfg.escape ) { - value = value.replace( '"', '""' ); - } - if ( cfg.quotes ) { - value = [ '"', value, '"' ].join( "" ); - } - } - - return value; - } - - // HEADER - for ( value in cfg.data[ 0 ] ) { - buffer.push( enchant( value ) ); - cols.push( value ); - } - data += buffer.join( cfg.delimiter ) + "\n"; - - // BODY - for ( row in cfg.data ) { - buffer = []; - if ( !isNaN( row ) ) { - for ( col in cols ) { - if ( !isNaN( col ) ) { - var column = cols[ col ]; - var value = cfg.data[ row ][ column ]; - - buffer.push( enchant( value, column ) ); - } - } - data += buffer.join( cfg.delimiter ) + "\n"; - } - } - - _this.handleCallback( callback, data ); - - return data; - }, - - /** - * Generates excel sheet; returns base64 datastring - */ - toXLSX: function( options, callback ) { - var cfg = _this.deepMerge( { - name: "amCharts", - dateFormat: _this.config.dateFormat || "dateObject", - withHeader: true, - stringify: false - }, options || {}, true ); - var data = ""; - var wb = { - SheetNames: [], - Sheets: {} - } - - cfg.data = cfg.data ? cfg.data : _this.getChartData( cfg ); - - function datenum( v, date1904 ) { - if ( date1904 ) v += 1462; - var epoch = Date.parse( v ); - return ( epoch - new Date( Date.UTC( 1899, 11, 30 ) ) ) / ( 24 * 60 * 60 * 1000 ); - } - - function sheet_from_array_of_arrays( data, opts ) { - var ws = {}; - var range = { - s: { - c: 10000000, - r: 10000000 - }, - e: { - c: 0, - r: 0 - } - }; - for ( var R = 0; R != data.length; ++R ) { - for ( var C = 0; C != data[ R ].length; ++C ) { - if ( range.s.r > R ) range.s.r = R; - if ( range.s.c > C ) range.s.c = C; - if ( range.e.r < R ) range.e.r = R; - if ( range.e.c < C ) range.e.c = C; - var cell = { - v: data[ R ][ C ] - }; - if ( cell.v == null ) continue; - var cell_ref = XLSX.utils.encode_cell( { - c: C, - r: R - } ); - - if ( typeof cell.v === "number" ) cell.t = "n"; - else if ( typeof cell.v === "boolean" ) cell.t = "b"; - else if ( cell.v instanceof Date ) { - cell.t = "n"; - cell.z = XLSX.SSF._table[ 14 ]; - cell.v = datenum( cell.v ); - } else cell.t = "s"; - - ws[ cell_ref ] = cell; - } - } - if ( range.s.c < 10000000 ) ws[ "!ref" ] = XLSX.utils.encode_range( range ); - return ws; - } - - wb.SheetNames.push( cfg.name ); - wb.Sheets[ cfg.name ] = sheet_from_array_of_arrays( _this.toArray( cfg ) ); - - data = XLSX.write( wb, { - bookType: "xlsx", - bookSST: true, - type: "base64" - } ); - - data = "data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64," + data; - - _this.handleCallback( callback, data ); - - return data; - }, - - /** - * Generates an array of arrays - */ - toArray: function( options, callback ) { - var row, col; - var cfg = _this.deepMerge( { - data: _this.getChartData( options ), - withHeader: false, - stringify: true - }, options || {}, true ); - var data = []; - var cols = []; - - // HEADER - for ( col in cfg.data[ 0 ] ) { - cols.push( col ); - } - if ( cfg.withHeader ) { - data.push( cols ); - } - - // BODY - for ( row in cfg.data ) { - var buffer = []; - if ( !isNaN( row ) ) { - for ( col in cols ) { - if ( !isNaN( col ) ) { - var col = cols[ col ]; - var value = cfg.data[ row ][ col ] || ""; - - if ( cfg.stringify ) { - value = String( value ); - } else { - value = value; - } - buffer.push( value ); - } - } - data.push( buffer ); - } - } - - _this.handleCallback( callback, data ); - - return data; - }, - - /** - * Generates byte array with given base64 datastring; returns byte array - */ - toByteArray: function( options, callback ) { - var cfg = _this.deepMerge( { - // NUFFIN - }, options || {} ); - var Arr = ( typeof Uint8Array !== 'undefined' ) ? Uint8Array : Array - var PLUS = '+'.charCodeAt( 0 ) - var SLASH = '/'.charCodeAt( 0 ) - var NUMBER = '0'.charCodeAt( 0 ) - var LOWER = 'a'.charCodeAt( 0 ) - var UPPER = 'A'.charCodeAt( 0 ) - var data = b64ToByteArray( cfg.data ); - - function decode( elt ) { - var code = elt.charCodeAt( 0 ) - if ( code === PLUS ) - return 62 // '+' - if ( code === SLASH ) - return 63 // '/' - if ( code < NUMBER ) - return -1 //no match - if ( code < NUMBER + 10 ) - return code - NUMBER + 26 + 26 - if ( code < UPPER + 26 ) - return code - UPPER - if ( code < LOWER + 26 ) - return code - LOWER + 26 - } - - function b64ToByteArray( b64 ) { - var i, j, l, tmp, placeHolders, arr - - if ( b64.length % 4 > 0 ) { - throw new Error( 'Invalid string. Length must be a multiple of 4' ) - } - - // THE NUMBER OF EQUAL SIGNS (PLACE HOLDERS) - // IF THERE ARE TWO PLACEHOLDERS, THAN THE TWO CHARACTERS BEFORE IT - // REPRESENT ONE BYTE - // IF THERE IS ONLY ONE, THEN THE THREE CHARACTERS BEFORE IT REPRESENT 2 BYTES - // THIS IS JUST A CHEAP HACK TO NOT DO INDEXOF TWICE - var len = b64.length - placeHolders = '=' === b64.charAt( len - 2 ) ? 2 : '=' === b64.charAt( len - 1 ) ? 1 : 0 - - // BASE64 IS 4/3 + UP TO TWO CHARACTERS OF THE ORIGINAL DATA - arr = new Arr( b64.length * 3 / 4 - placeHolders ) - - // IF THERE ARE PLACEHOLDERS, ONLY GET UP TO THE LAST COMPLETE 4 CHARS - l = placeHolders > 0 ? b64.length - 4 : b64.length - - var L = 0 - - function push( v ) { - arr[ L++ ] = v - } - - for ( i = 0, j = 0; i < l; i += 4, j += 3 ) { - tmp = ( decode( b64.charAt( i ) ) << 18 ) | ( decode( b64.charAt( i + 1 ) ) << 12 ) | ( decode( b64.charAt( i + 2 ) ) << 6 ) | decode( b64.charAt( i + 3 ) ) - push( ( tmp & 0xFF0000 ) >> 16 ) - push( ( tmp & 0xFF00 ) >> 8 ) - push( tmp & 0xFF ) - } - - if ( placeHolders === 2 ) { - tmp = ( decode( b64.charAt( i ) ) << 2 ) | ( decode( b64.charAt( i + 1 ) ) >> 4 ) - push( tmp & 0xFF ) - } else if ( placeHolders === 1 ) { - tmp = ( decode( b64.charAt( i ) ) << 10 ) | ( decode( b64.charAt( i + 1 ) ) << 4 ) | ( decode( b64.charAt( i + 2 ) ) >> 2 ) - push( ( tmp >> 8 ) & 0xFF ) - push( tmp & 0xFF ) - } - - return arr - } - - _this.handleCallback( callback, data ); - - return data; - }, - - /** - * Callback handler; injects additional arguments to callback - */ - handleCallback: function( callback ) { - var i1, data = Array(); - if ( callback && callback instanceof Function ) { - for ( i1 = 0; i1 < arguments.length; i1++ ) { - if ( i1 > 0 ) { - data.push( arguments[ i1 ] ); - } - } - callback.apply( _this, data ); - } - }, - - /** - * Handles drag/drop events; loads given imagery - */ - handleDropbox: function( e ) { - if ( _this.drawing.buffer.enabled ) { - e.preventDefault(); - e.stopPropagation(); - - // DRAG OVER - if ( e.type == "dragover" ) { - _this.setup.wrapper.setAttribute( "class", _this.setup.chart.classNamePrefix + "-export-canvas active dropbox" ); - - // DRAGLEAVE; DROP - } else { - _this.setup.wrapper.setAttribute( "class", _this.setup.chart.classNamePrefix + "-export-canvas active" ); - - if ( e.type == "drop" && e.dataTransfer.files.length ) { - for ( var i1 = 0; i1 < e.dataTransfer.files.length; i1++ ) { - var reader = new FileReader(); - reader.onloadend = ( function( index ) { - return function() { - _this.drawing.handler.add( { - url: reader.result, - top: e.layerY - ( index * 10 ), - left: e.layerX - ( index * 10 ) - } ); - } - } )( i1 ); - reader.readAsDataURL( e.dataTransfer.files[ i1 ] ); - } - } - } - } - }, - - /** - * Gathers chart data according to its type - */ - getChartData: function( options ) { - var cfg = _this.deepMerge( { - data: [], - titles: {}, - dateFields: [], - dataFields: [], - dataFieldsMap: {}, - exportTitles: _this.config.exportTitles, - exportSelection: _this.config.exportSelection, - columnNames: _this.config.columnNames - }, options || {}, true ); - var uid, i1, i2, i3; - var lookupFields = [ "valueField", "openField", "closeField", "highField", "lowField", "xField", "yField" ]; - - // HANDLE FIELDS - function addField( field, title, type ) { - - function checkExistance( field, type ) { - if ( cfg.dataFields.indexOf( field ) != -1 ) { - return checkExistance( [ field, ".", type ].join( "" ) ); - } - return field; - } - - if ( field && cfg.exportTitles && _this.setup.chart.type != "gantt" ) { - uid = checkExistance( field, type ); - cfg.dataFieldsMap[ uid ] = field; - cfg.dataFields.push( uid ); - cfg.titles[ uid ] = title || uid; - } - } - - if ( cfg.data.length == 0 ) { - // STOCK DATA; GATHER COMPARED GRAPHS - if ( _this.setup.chart.type == "stock" ) { - cfg.data = _this.setup.chart.mainDataSet.dataProvider; - - // CATEGORY AXIS - addField( _this.setup.chart.mainDataSet.categoryField ); - cfg.dateFields.push( _this.setup.chart.mainDataSet.categoryField ); - - // WALKTHROUGH GRAPHS - for ( i1 = 0; i1 < _this.setup.chart.mainDataSet.fieldMappings.length; i1++ ) { - var fieldMap = _this.setup.chart.mainDataSet.fieldMappings[ i1 ]; - for ( i2 = 0; i2 < _this.setup.chart.panels.length; i2++ ) { - var panel = _this.setup.chart.panels[ i2 ] - for ( i3 = 0; i3 < panel.stockGraphs.length; i3++ ) { - var graph = panel.stockGraphs[ i3 ]; - - for ( i4 = 0; i4 < lookupFields.length; i4++ ) { - if ( graph[ lookupFields[ i4 ] ] == fieldMap.toField ) { - addField( fieldMap.fromField, graph.title, lookupFields[ i4 ] ); - } - } - } - } - } - - // WALKTHROUGH COMPARISON AND MERGE IT'S DATA - for ( i1 = 0; i1 < _this.setup.chart.comparedGraphs.length; i1++ ) { - var graph = _this.setup.chart.comparedGraphs[ i1 ]; - for ( i2 = 0; i2 < graph.dataSet.dataProvider.length; i2++ ) { - for ( i3 = 0; i3 < graph.dataSet.fieldMappings.length; i3++ ) { - var fieldMap = graph.dataSet.fieldMappings[ i3 ]; - var uid = graph.dataSet.id + "_" + fieldMap.toField; - - if ( i2 < cfg.data.length ) { - cfg.data[ i2 ][ uid ] = graph.dataSet.dataProvider[ i2 ][ fieldMap.fromField ]; - - if ( !cfg.titles[ uid ] ) { - addField( uid, graph.dataSet.title ) - } - } - } - } - } - - // GANTT DATA; FLATTEN SEGMENTS - } else if ( _this.setup.chart.type == "gantt" ) { - // CATEGORY AXIS - addField( _this.setup.chart.categoryField ); - cfg.dateFields.push( _this.setup.chart.categoryField ); - - var field = _this.setup.chart.segmentsField; - for ( i1 = 0; i1 < _this.setup.chart.dataProvider.length; i1++ ) { - var dataItem = _this.setup.chart.dataProvider[ i1 ]; - if ( dataItem[ field ] ) { - for ( i2 = 0; i2 < dataItem[ field ].length; i2++ ) { - dataItem[ field ][ i2 ][ _this.setup.chart.categoryField ] = dataItem[ _this.setup.chart.categoryField ]; - cfg.data.push( dataItem[ field ][ i2 ] ); - } - } - } - - // GRAPHS - for ( i1 = 0; i1 < _this.setup.chart.graphs.length; i1++ ) { - var graph = _this.setup.chart.graphs[ i1 ]; - - for ( i2 = 0; i2 < lookupFields.length; i2++ ) { - var dataField = lookupFields[ i2 ]; - var graphField = graph[ dataField ]; - var title = graph.title; - - addField( graphField, graph.title, dataField ); - } - } - - // PIE/FUNNEL DATA; - } else if ( [ "pie", "funnel" ].indexOf( _this.setup.chart.type ) != -1 ) { - cfg.data = _this.setup.chart.dataProvider; - - // CATEGORY AXIS - addField( _this.setup.chart.titleField ); - cfg.dateFields.push( _this.setup.chart.titleField ); - - // VALUE - addField( _this.setup.chart.valueField ); - - // DEFAULT DATA; - } else if ( _this.setup.chart.type != "map" ) { - cfg.data = _this.setup.chart.dataProvider; - - // CATEGORY AXIS - if ( _this.setup.chart.categoryAxis ) { - addField( _this.setup.chart.categoryField, _this.setup.chart.categoryAxis.title ); - if ( _this.setup.chart.categoryAxis.parseDates !== false ) { - cfg.dateFields.push( _this.setup.chart.categoryField ); - } - } - - // GRAPHS - for ( i1 = 0; i1 < _this.setup.chart.graphs.length; i1++ ) { - var graph = _this.setup.chart.graphs[ i1 ]; - - for ( i2 = 0; i2 < lookupFields.length; i2++ ) { - var dataField = lookupFields[ i2 ]; - var graphField = graph[ dataField ]; - - addField( graphField, graph.title, dataField ); - } - } - } - } - return _this.processData( cfg ); - }, - - /** - * Walkthrough data to format dates and titles - */ - processData: function( options ) { - var cfg = _this.deepMerge( { - data: [], - titles: {}, - dateFields: [], - dataFields: [], - dataFieldsMap: {}, - dataDateFormat: _this.setup.chart.dataDateFormat, - dateFormat: _this.config.dateFormat || _this.setup.chart.dataDateFormat || "YYYY-MM-DD", - exportTitles: _this.config.exportTitles, - exportSelection: _this.config.exportSelection, - columnNames: _this.config.columnNames - }, options || {}, true ); - var i1, i2; - - if ( cfg.data.length ) { - // GATHER MISSING FIELDS - for ( i1 = 0; i1 < cfg.data.length; i1++ ) { - for ( i2 in cfg.data[ i1 ] ) { - if ( cfg.dataFields.indexOf( i2 ) == -1 ) { - cfg.dataFields.push( i2 ); - cfg.dataFieldsMap[ i2 ] = i2; - } - } - } - - // REBUILD DATA - var buffer = []; - for ( i1 = 0; i1 < cfg.data.length; i1++ ) { - var tmp = {}; - var skip = false; - for ( i2 = 0; i2 < cfg.dataFields.length; i2++ ) { - var uniqueField = cfg.dataFields[ i2 ]; - var dataField = cfg.dataFieldsMap[ uniqueField ]; - var title = ( cfg.columnNames && cfg.columnNames[ uniqueField ] ) || cfg.titles[ uniqueField ] || uniqueField; - var value = cfg.data[ i1 ][ dataField ] || undefined; - - // TITLEFY - if ( cfg.exportTitles && _this.setup.chart.type != "gantt" ) { - if ( title in tmp ) { - title += [ "( ", uniqueField, " )" ].join( "" ); - } - } - - // PROCESS CATEGORY - if ( cfg.dateFields.indexOf( dataField ) != -1 ) { - - // CONVERT DATESTRING TO DATE OBJECT - if ( cfg.dataDateFormat && ( value instanceof String || typeof value == "string" ) ) { - value = AmCharts.stringToDate( value, cfg.dataDateFormat ); - - // CONVERT TIMESTAMP TO DATE OBJECT - } else if ( cfg.dateFormat && ( value instanceof Number || typeof value == "number" ) ) { - value = new Date(value); - } - - // CATEGORY RANGE - if ( cfg.exportSelection ) { - if ( value instanceof Date ) { - if ( value < chart.startDate || value > chart.endDate ) { - skip = true; - } - - } else if ( i1 < chart.startIndex || i1 > chart.endIndex ) { - skip = true; - } - } - - // CATEGORY FORMAT - if ( cfg.dateFormat && cfg.dateFormat != "dateObject" && value instanceof Date ) { - value = AmCharts.formatDate( value, cfg.dateFormat ); - } - } - - tmp[ title ] = value; - } - if ( !skip ) { - buffer.push( tmp ); - } - } - cfg.data = buffer; - } - return cfg.data; - }, - - /** - * Prettifies string - */ - capitalize: function( string ) { - return string.charAt( 0 ).toUpperCase() + string.slice( 1 ).toLowerCase(); - }, - - /** - * Generates export menu; returns UL node - */ - createMenu: function( list, container ) { - var div; - - function buildList( list, container ) { - var i1, i2, ul = document.createElement( "ul" ); - for ( i1 = 0; i1 < list.length; i1++ ) { - var item = typeof list[ i1 ] === "string" ? { - format: list[ i1 ] - } : list[ i1 ]; - var li = document.createElement( "li" ); - var a = document.createElement( "a" ); - var img = document.createElement( "img" ); - var span = document.createElement( "span" ); - var action = String( item.action ? item.action : item.format ).toLowerCase(); - - item.format = String( item.format ).toUpperCase(); - - // MERGE WITH GIVEN FORMAT - if ( _this.config.formats[ item.format ] ) { - item = _this.deepMerge( { - label: item.icon ? "" : item.format, - format: item.format, - mimeType: _this.config.formats[ item.format ].mimeType, - extension: _this.config.formats[ item.format ].extension, - capture: _this.config.formats[ item.format ].capture, - action: _this.config.action, - fileName: _this.config.fileName - }, item ); - } else if ( !item.label ) { - item.label = item.label ? item.label : _this.i18l( "menu.label." + action ); - } - - // FILTER; TOGGLE FLAG - if ( [ "CSV", "JSON", "XLSX" ].indexOf( item.format ) != -1 && [ "map", "gauge" ].indexOf( _this.setup.chart.type ) != -1 ) { - continue; - - // BLOB EXCEPTION - } else if ( !_this.setup.hasBlob && item.format != "UNDEFINED" ) { - if ( item.mimeType && item.mimeType.split( "/" )[ 0 ] != "image" && item.mimeType != "text/plain" ) { - continue; - } - } - - // DRAWING - if ( item.action == "draw" ) { - if ( _this.config.fabric.drawing.enabled ) { - item.menu = item.menu ? item.menu : _this.config.fabric.drawing.menu; - item.click = ( function( item ) { - return function() { - this.capture( item, function() { - this.createMenu( item.menu ); - } ); - } - } )( item ); - } else { - item.menu = []; - } - - // DRAWING CHOICES - } else if ( !item.populated && item.action && item.action.indexOf( "draw." ) != -1 ) { - var type = item.action.split( "." )[ 1 ]; - var items = item[ type ] || _this.config.fabric.drawing[ type ] || []; - - item.menu = []; - item.populated = true; - - for ( i2 = 0; i2 < items.length; i2++ ) { - var tmp = { - "label": items[ i2 ] - } - - if ( type == "shapes" ) { - var io = items[ i2 ].indexOf( "//" ) == -1; - var url = ( io ? _this.config.path + "shapes/" : "" ) + items[ i2 ]; - - tmp.action = "add"; - tmp.url = url; - tmp.icon = url; - tmp.ignore = io; - tmp[ "class" ] = "export-drawing-shape"; - - } else if ( type == "colors" ) { - tmp.style = "background-color: " + items[ i2 ]; - tmp.action = "change"; - tmp.color = items[ i2 ]; - tmp[ "class" ] = "export-drawing-color"; - - } else if ( type == "widths" ) { - tmp.action = "change"; - tmp.width = items[ i2 ]; - tmp.label = document.createElement( "span" ); - - tmp.label.style.width = _this.numberToPx( items[ i2 ] ); - tmp.label.style.height = _this.numberToPx( items[ i2 ] ); - tmp[ "class" ] = "export-drawing-width"; - } else if ( type == "opacities" ) { - tmp.style = "opacity: " + items[ i2 ]; - tmp.action = "change"; - tmp.opacity = items[ i2 ]; - tmp.label = ( items[ i2 ] * 100 ) + "%"; - tmp[ "class" ] = "export-drawing-opacity"; - } else if ( type == "modes" ) { - tmp.label = _this.i18l( "menu.label.draw.modes." + items[ i2 ] ); - tmp.click = ( function( mode ) { - return function() { - _this.drawing.mode = mode; - } - } )( items[ i2 ] ); - tmp[ "class" ] = "export-drawing-mode"; - } - - item.menu.push( tmp ); - } - - // ADD CLICK HANDLER - } else if ( !item.click && !item.menu && !item.items ) { - // DRAWING METHODS - if ( _this.drawing.handler[ action ] instanceof Function ) { - item.action = action; - item.click = ( function( item ) { - return function() { - this.drawing.handler[ item.action ]( item ); - } - } )( item ); - - // DRAWING - } else if ( _this.drawing.buffer.enabled ) { - item.click = ( function( item ) { - return function() { - if ( this.config.drawing.autoClose ) { - this.drawing.handler.done(); - } - this[ "to" + item.format ]( item, function( data ) { - if ( item.action == "download" ) { - this.download( data, item.mimeType, [ item.fileName, item.extension ].join( "." ) ); - } - } ); - } - } )( item ); - - // REGULAR - } else if ( item.format != "UNDEFINED" ) { - item.click = ( function( item ) { - return function() { - if ( item.capture || item.action == "print" || item.format == "PRINT" ) { - this.capture( item, function() { - if ( this.config.drawing.autoClose ) { - this.drawing.handler.done(); - } - this[ "to" + item.format ]( item, function( data ) { - if ( item.action == "download" ) { - this.download( data, item.mimeType, [ item.fileName, item.extension ].join( "." ) ); - } - } ); - } ) - - } else if ( this[ "to" + item.format ] ) { - this[ "to" + item.format ]( item, function( data ) { - this.download( data, item.mimeType, [ item.fileName, item.extension ].join( "." ) ); - } ); - } else { - throw new Error( 'Invalid format. Could not determine output type.' ); - } - } - } )( item ); - } - } - - // HIDE EMPTY ONES - if ( item.menu !== undefined && !item.menu.length ) { - continue; - } - - // ADD LINK ATTR - a.setAttribute( "href", "#" ); - a.addEventListener( "click", ( function( callback, item ) { - return function( e ) { - e.preventDefault(); - var args = [ e, item ]; - - // DELAYED - if ( ( item.action == "draw" || item.format == "PRINT" || ( item.format != "UNDEFINED" && item.capture ) ) && !_this.drawing.enabled ) { - item.delay = item.delay ? item.delay : _this.config.delay; - if ( item.delay ) { - _this.delay( item, callback ); - return; - } - } - - callback.apply( _this, args ); - } - } )( item.click || function( e ) { - e.preventDefault(); - }, item ) ); - li.appendChild( a ); - - // ADD LABEL - if ( _this.isElement( item.label ) ) { - span.appendChild( item.label ); - } else { - span.innerHTML = item.label; - } - - // APPEND ITEMS - if ( item[ "class" ] ) { - li.className = item[ "class" ]; - } - - if ( item.style ) { - li.setAttribute( "style", item.style ); - } - - if ( item.icon ) { - img.setAttribute( "src", ( !item.ignore && item.icon.slice( 0, 10 ).indexOf( "//" ) == -1 ? chart.pathToImages : "" ) + item.icon ); - a.appendChild( img ); - } - if ( item.label ) { - a.appendChild( span ); - } - if ( item.title ) { - a.setAttribute( "title", item.title ); - } - - // CALLBACK; REVIVER FOR MENU ITEMS - if ( _this.config.menuReviver ) { - li = _this.config.menuReviver.apply( _this, [ item, li ] ); - } - - // ADD ELEMENTS FOR EASY ACCESS - item.elements = { - li: li, - a: a, - img: img, - span: span - } - - // ADD SUBLIST; JUST WITH ENTRIES - if ( ( item.menu || item.items ) && item.action != "draw" ) { - if ( buildList( item.menu || item.items, li ).childNodes.length ) { - ul.appendChild( li ); - } - } else { - ul.appendChild( li ); - } - } - - // JUST ADD THOSE WITH ENTRIES - if ( ul.childNodes.length ) { - container.appendChild( ul ); - } - - return ul; - } - - // DETERMINE CONTAINER - if ( !container ) { - if ( typeof _this.config.divId == "string" ) { - _this.config.divId = container = document.getElementById( _this.config.divId ); - } else if ( _this.isElement( _this.config.divId ) ) { - container = _this.config.divId; - } else { - container = _this.setup.chart.containerDiv; - } - } - - // CREATE / RESET MENU CONTAINER - if ( _this.isElement( _this.setup.menu ) ) { - _this.setup.menu.innerHTML = ""; - } else { - _this.setup.menu = document.createElement( "div" ); - } - _this.setup.menu.setAttribute( "class", _this.setup.chart.classNamePrefix + "-export-menu " + _this.setup.chart.classNamePrefix + "-export-menu-" + _this.config.position + " amExportButton" ); - - // CALLBACK; REPLACES THE MENU WALKER - if ( _this.config.menuWalker ) { - buildList = _this.config.menuWalker; - } - buildList.apply( this, [ list, _this.setup.menu ] ); - - // JUST ADD THOSE WITH ENTRIES - if ( _this.setup.menu.childNodes.length ) { - container.appendChild( _this.setup.menu ); - } - - return _this.setup.menu; - }, - - /** - * Method to trigger the callback delayed - */ - delay: function( options, callback ) { - var cfg = _this.deepMerge( { - delay: 3, - precision: 2 - }, options || {} ); - var t1, t2, start = Number( new Date() ); - var menu = _this.createMenu( [ { - label: _this.i18l( "capturing.delayed.menu.label" ).replace( "{{duration}}", AmCharts.toFixed( cfg.delay, cfg.precision ) ), - title: _this.i18l( "capturing.delayed.menu.title" ), - "class": "export-delayed-capturing", - click: function() { - clearTimeout( t1 ); - clearTimeout( t2 ); - _this.createMenu( _this.config.menu ); - } - } ] ); - var label = menu.getElementsByTagName( "a" )[ 0 ]; - - // MENU UPDATE - t1 = setInterval( function() { - var diff = cfg.delay - ( Number( new Date() ) - start ) / 1000; - if ( diff <= 0 ) { - clearTimeout( t1 ); - if ( cfg.action != "draw" ) { - _this.createMenu( _this.config.menu ); - } - } else if ( label ) { - label.innerHTML = _this.i18l( "capturing.delayed.menu.label" ).replace( "{{duration}}", AmCharts.toFixed( diff, 2 ) ); - } - }, 10 ); - - // CALLBACK - t2 = setTimeout( function() { - callback.apply( _this, arguments ); - }, cfg.delay * 1000 ); - }, - - /** - * Migration method to support old export setup - */ - migrateSetup: function( setup ) { - var cfg = { - enabled: true, - migrated: true, - libs: { - autoLoad: true - }, - menu: [] - }; - - function crawler( object ) { - var key; - for ( key in object ) { - var value = object[ key ]; - - if ( key.slice( 0, 6 ) == "export" && value ) { - cfg.menu.push( key.slice( 6 ) ); - } else if ( key == "userCFG" ) { - crawler( value ); - } else if ( key == "menuItems" ) { - cfg.menu = value; - } else if ( key == "libs" ) { - cfg.libs = value; - } else if ( typeof key == "string" ) { - cfg[ key ] = value; - } - } - } - - crawler( setup ); - - return cfg; - }, - - /* - ** Add event listener - */ - loadListeners: function() { - function handleClone( clone ) { - if ( clone ) { - clone.set( { - top: clone.top + 10, - left: clone.left + 10 - } ); - _this.setup.fabric.add( clone ); - } - } - - // OBSERVE; KEY LISTENER; DRAWING FEATURES - if ( _this.config.keyListener && _this.config.keyListener != "attached" ) { - _this.config.keyListener = "attached"; - document.addEventListener( "keydown", function( e ) { - var current = _this.drawing.buffer.target; - - // REMOVE; key: BACKSPACE / DELETE - if ( ( e.keyCode == 8 || e.keyCode == 46 ) && current ) { - e.preventDefault(); - _this.setup.fabric.remove( current ); - - // ESCAPE DRAWIN MODE; key: escape - } else if ( e.keyCode == 27 && _this.drawing.enabled ) { - e.preventDefault(); - _this.drawing.handler.done(); - - // COPY; key: C - } else if ( e.keyCode == 67 && ( e.metaKey || e.ctrlKey ) && current ) { - _this.drawing.buffer.copy = current; - - // CUT; key: X - } else if ( e.keyCode == 88 && ( e.metaKey || e.ctrlKey ) && current ) { - _this.drawing.buffer.copy = current; - _this.setup.fabric.remove( current ); - - // PASTE; key: V - } else if ( e.keyCode == 86 && ( e.metaKey || e.ctrlKey ) ) { - if ( _this.drawing.buffer.copy ) { - handleClone( _this.drawing.buffer.copy.clone( handleClone ) ) - } - - // UNDO / REDO; key: Z - } else if ( e.keyCode == 90 && ( e.metaKey || e.ctrlKey ) ) { - e.preventDefault(); - if ( e.shiftKey ) { - _this.drawing.handler.redo(); - } else { - _this.drawing.handler.undo(); - } - } - } ); - } - - // OBSERVE; DRAG AND DROP LISTENER; DRAWING FEATURE - if ( _this.config.fileListener ) { - _this.setup.chart.containerDiv.addEventListener( "dragover", _this.handleDropbox ); - _this.setup.chart.containerDiv.addEventListener( "dragleave", _this.handleDropbox ); - _this.setup.chart.containerDiv.addEventListener( "drop", _this.handleDropbox ); - } - }, - - /** - * Initiate export menu; waits for chart container to place menu - */ - init: function() { - clearTimeout( _this.timer ); - _this.timer = setInterval( function() { - if ( _this.setup.chart.containerDiv ) { - clearTimeout( _this.timer ); - - if ( _this.config.enabled ) { - // CREATE REFERENCE - _this.setup.chart.AmExport = _this; - - // OVERWRITE PARENT OVERVIEW - _this.setup.chart.div.style.overflow = "visible"; - - // ATTACH EVENTS - _this.loadListeners(); - - // CREATE MENU - _this.createMenu( _this.config.menu ); - } - } - }, AmCharts.updateRate ); - - }, - - /** - * Initiates export instance; merges given config; attaches event listener - */ - construct: function() { - // ANNOTATION; MAP "DONE" - _this.drawing.handler.cancel = _this.drawing.handler.done; - - // CHECK BLOB CONSTRUCTOR - try { - _this.setup.hasBlob = !!new Blob; - } catch ( e ) {} - - // WORK AROUND TO BYPASS FILESAVER CHECK TRYING TO OPEN THE BLOB URL IN SAFARI BROWSER - window.safari = window.safari ? window.safari : {}; - - // OVERTAKE CHART FONTSIZE IF GIVEN - _this.defaults.fabric.drawing.fontSize = _this.setup.chart.fontSize || 11; - - // MERGE SETTINGS - _this.config.drawing = _this.deepMerge( _this.defaults.fabric.drawing, _this.config.drawing || {}, true ); - _this.deepMerge( _this.defaults.fabric, _this.config, true ); - _this.deepMerge( _this.defaults.fabric, _this.config.fabric || {}, true ); - _this.deepMerge( _this.defaults.pdfMake, _this.config, true ); - _this.deepMerge( _this.defaults.pdfMake, _this.config.pdfMake || {}, true ); - _this.deepMerge( _this.libs, _this.config.libs || {}, true ); - - // UPDATE CONFIG - _this.config.drawing = _this.defaults.fabric.drawing; - _this.config.fabric = _this.defaults.fabric; - _this.config.pdfMake = _this.defaults.pdfMake; - _this.config = _this.deepMerge( _this.defaults, _this.config, true ); - - // MERGE; SETUP DRAWING MENU - if ( _this.config.fabric.drawing.enabled ) { - if ( _this.config.fabric.drawing.menu === undefined ) { - _this.config.fabric.drawing.menu = []; - _this.deepMerge( _this.config.fabric.drawing.menu, [ { - "class": "export-drawing", - menu: [ { - label: _this.i18l( "menu.label.draw.add" ), - menu: [ { - label: _this.i18l( "menu.label.draw.shapes" ), - action: "draw.shapes" - }, { - label: _this.i18l( "menu.label.draw.text" ), - action: "text" - } ] - }, { - label: _this.i18l( "menu.label.draw.change" ), - menu: [ { - label: _this.i18l( "menu.label.draw.modes" ), - action: "draw.modes" - }, { - label: _this.i18l( "menu.label.draw.colors" ), - action: "draw.colors" - }, { - label: _this.i18l( "menu.label.draw.widths" ), - action: "draw.widths" - }, { - label: _this.i18l( "menu.label.draw.opacities" ), - action: "draw.opacities" - }, "UNDO", "REDO" ] - }, { - label: _this.i18l( "menu.label.save.image" ), - menu: [ "PNG", "JPG", "SVG", "PDF" ] - }, "PRINT", "CANCEL" ] - } ] ); - } - } - - // MERGE; SETUP MAIN MENU - if ( _this.config.menu === undefined ) { - _this.config.menu = []; - // PARENT MENU - _this.deepMerge( _this.config, { - menu: [ { - "class": "export-main", - menu: [ { - label: _this.i18l( "menu.label.save.image" ), - menu: [ "PNG", "JPG", "SVG", "PDF" ] - }, { - label: _this.i18l( "menu.label.save.data" ), - menu: [ "CSV", "XLSX", "JSON" ] - }, { - label: _this.i18l( "menu.label.draw" ), - action: "draw", - menu: _this.config.fabric.drawing.menu - }, { - format: "PRINT", - label: _this.i18l( "menu.label.print" ) - } ] - } ] - } ); - } - - // ADD MISSING PATH - if ( !_this.libs.path ) { - _this.libs.path = _this.config.path + "libs/"; - } - - // CHECK ACCEPTANCE - if ( _this.isSupported() ) { - // LOAD DEPENDENCIES - _this.loadDependencies( _this.libs.resources, _this.libs.reload ); - // ADD CLASSNAMES - _this.setup.chart.addClassNames = true; - // REFERENCE - _this.setup.chart[ _this.name ] = _this; - // INIT MENU; WAIT FOR CHART INSTANCE - _this.init(); - } - } - } - - // USE GIVEN CONFIG - if ( config ) { - _this.config = config; - - // USE CHART EXPORT CONFIG - } else if ( _this.setup.chart[ _this.name ] ) { - _this.config = _this.setup.chart[ _this.name ]; - - // MIGRATE OLD EXPORT CHART CONFIG - } else if ( _this.setup.chart.amExport || _this.setup.chart.exportConfig ) { - _this.config = _this.migrateSetup( _this.setup.chart.amExport || _this.setup.chart.exportConfig ); - - // EXIT; NO CONFIG - } else { - return; - } - - // CONSTRUCT INSTANCE - _this.construct(); - - // EXPORT SCOPE - return _this.deepMerge( this, _this ); - } -} )(); - -/** - * Set init handler - */ -AmCharts.addInitHandler( function( chart ) { - new AmCharts["export"]( chart ); - -}, [ "pie", "serial", "xy", "funnel", "radar", "gauge", "stock", "map", "gantt" ] ); \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/export/export.min.js b/chronos/static/js/amcharts/plugins/export/export.min.js deleted file mode 100644 index f66e574..0000000 --- a/chronos/static/js/amcharts/plugins/export/export.min.js +++ /dev/null @@ -1,2 +0,0 @@ -AmCharts.translations["export"]||(AmCharts.translations["export"]={}),AmCharts.translations["export"].en||(AmCharts.translations["export"].en={"fallback.save.text":"CTRL + C to copy the data into the clipboard.","fallback.save.image":"Rightclick -> Save picture as... to save the image.","capturing.delayed.menu.label":"{{duration}}","capturing.delayed.menu.title":"Click to cancel","menu.label.print":"Print","menu.label.undo":"Undo","menu.label.redo":"Redo","menu.label.cancel":"Cancel","menu.label.save.image":"Download as ...","menu.label.save.data":"Save as ...","menu.label.draw":"Annotate ...","menu.label.draw.change":"Change ...","menu.label.draw.add":"Add ...","menu.label.draw.shapes":"Shape ...","menu.label.draw.colors":"Color ...","menu.label.draw.widths":"Size ...","menu.label.draw.opacities":"Opacity ...","menu.label.draw.text":"Text","menu.label.draw.modes":"Mode ...","menu.label.draw.modes.pencil":"Pencil","menu.label.draw.modes.line":"Line","menu.label.draw.modes.arrow":"Arrow"}),function(){AmCharts["export"]=function(a,b){var c={name:"export",version:"1.3.7",libs:{async:!0,autoLoad:!0,reload:!1,resources:[{"pdfmake/pdfmake.js":["pdfmake/vfs_fonts.js"],"jszip/jszip.js":["xlsx/xlsx.js"]},"fabric.js/fabric.js","FileSaver.js/FileSaver.js"]},config:{},setup:{chart:a,hasBlob:!1},drawing:{enabled:!1,undos:[],redos:[],buffer:{position:{x1:0,y1:0,x2:0,y2:0,xD:0,yD:0}},handler:{undo:function(a,b){var d=c.drawing.undos.pop();if(d){d.selectable=!0,c.drawing.redos.push(d),"added"==d.action&&c.setup.fabric.remove(d.target);var e=JSON.parse(d.state);d.target.set(e),d.target instanceof fabric.Group&&c.drawing.handler.change({color:e.cfg.color,width:e.cfg.width,opacity:e.cfg.opacity},!0,d.target),c.setup.fabric.renderAll(),d.state!=d.target.recentState||b||c.drawing.handler.undo(d,!0)}},redo:function(a,b){var d=c.drawing.redos.pop();if(d){d.selectable=!0,c.drawing.undos.push(d),"added"==d.action&&c.setup.fabric.add(d.target);var e=JSON.parse(d.state);d.target.recentState=d.state,d.target.set(e),d.target instanceof fabric.Group&&c.drawing.handler.change({color:e.cfg.color,width:e.cfg.width,opacity:e.cfg.opacity},!0,d.target),c.setup.fabric.renderAll(),"addified"==d.action&&c.drawing.handler.redo()}},done:function(a){c.drawing.buffer.enabled=!1,c.drawing.undos=[],c.drawing.redos=[],c.createMenu(c.config.menu),c.setup.fabric.deactivateAll(),c.setup.wrapper.setAttribute("class",c.setup.chart.classNamePrefix+"-export-canvas"),c.setup.wrapper.style.display="none"},add:function(a){var b=c.deepMerge({top:c.setup.fabric.height/2,left:c.setup.fabric.width/2},a||{}),d=-1!=b.url.indexOf(".svg")?fabric.loadSVGFromURL:fabric.Image.fromURL;d(b.url,function(a,d){var e=void 0!==d?fabric.util.groupSVGElements(a,d):a,f=!1;(e.height>c.setup.fabric.height||e.width>c.setup.fabric.width)&&(f=c.setup.fabric.height/2/e.height),b.top>c.setup.fabric.height&&(b.top=c.setup.fabric.height/2),b.left>c.setup.fabric.width&&(b.left=c.setup.fabric.width/2),e.set({originX:"center",originY:"center",top:b.top,left:b.left,width:f?e.width*f:e.width,height:f?e.height*f:e.height,fill:c.drawing.color}),c.setup.fabric.add(e)})},change:function(a,b,d){var f,g,h,e=c.deepMerge({},a||{}),i=d||c.drawing.buffer.target,j=i?i._objects?i._objects:[i]:null;if(e.mode&&(c.drawing.mode=e.mode),e.width&&(c.drawing.width=e.width,c.drawing.fontSize=3*e.width),e.fontSize&&(c.drawing.fontSize=e.fontSize),e.color&&(c.drawing.color=e.color),e.opacity&&(c.drawing.opacity=e.opacity),h=new fabric.Color(c.drawing.color).getSource(),h.pop(),h.push(c.drawing.opacity),c.drawing.color="rgba("+h.join()+")",c.setup.fabric.freeDrawingBrush.color=c.drawing.color,c.setup.fabric.freeDrawingBrush.width=c.drawing.width,i){for(f=JSON.parse(i.recentState).cfg,f&&(e.color=e.color||f.color,e.width=e.width||f.width,e.opacity=e.opacity||f.opacity,e.fontSize=e.fontSize||3*e.width,h=new fabric.Color(e.color).getSource(),h.pop(),h.push(e.opacity),e.color="rgba("+h.join()+")"),g=0;g0?Math.PI/2:3*Math.PI/2:0==f?e>0?0:Math.PI:0>e?Math.atan(f/e)+Math.PI:0>f?Math.atan(f/e)+2*Math.PI:Math.atan(f/e),180*g/Math.PI},gatherAttribute:function(a,b,d,e){var f,e=e?e:0,d=d?d:3;return a&&(f=a.getAttribute(b),!f&&d>e)?c.gatherAttribute(a.parentNode,b,d,e+1):f},gatherClassName:function(a,b,d,e){var f,e=e?e:0,d=d?d:3;if(c.isElement(a)){if(f=-1!=(a.getAttribute("class")||"").split(" ").indexOf(b),!f&&d>e)return c.gatherClassName(a.parentNode,b,d,e+1);f&&(f=a)}return f},gatherElements:function(a,b,d){var e,f;for(e=0;eg.height?j.legend.height:g.height):-1!=["top","bottom"].indexOf(j.legend.position)&&(g.height+=j.legend.height),j=c.gatherElements(j,e,h),f[j.legend.type](j)}if(c.drawing.buffer.enabled="draw"==e.action,c.setup.wrapper?c.setup.wrapper.innerHTML="":(c.setup.wrapper=document.createElement("div"),c.setup.wrapper.setAttribute("class",c.setup.chart.classNamePrefix+"-export-canvas"),c.setup.chart.containerDiv.appendChild(c.setup.wrapper)),"stock"==c.setup.chart.type){var k={top:0,right:0,bottom:0,left:0};c.setup.chart.leftContainer&&(g.width-=c.setup.chart.leftContainer.offsetWidth,k.left=c.setup.chart.leftContainer.offsetWidth+2*c.setup.chart.panelsSettings.panelSpacing),c.setup.chart.rightContainer&&(g.width-=c.setup.chart.rightContainer.offsetWidth,k.right=c.setup.chart.rightContainer.offsetWidth+2*c.setup.chart.panelsSettings.panelSpacing),c.setup.chart.periodSelector&&-1!=["top","bottom"].indexOf(c.setup.chart.periodSelector.position)&&(g.height-=c.setup.chart.periodSelector.offsetHeight+c.setup.chart.panelsSettings.panelSpacing,k[c.setup.chart.periodSelector.position]+=c.setup.chart.periodSelector.offsetHeight+c.setup.chart.panelsSettings.panelSpacing),c.setup.chart.dataSetSelector&&-1!=["top","bottom"].indexOf(c.setup.chart.dataSetSelector.position)&&(g.height-=c.setup.chart.dataSetSelector.offsetHeight,k[c.setup.chart.dataSetSelector.position]+=c.setup.chart.dataSetSelector.offsetHeight),c.setup.wrapper.style.paddingTop=c.numberToPx(k.top),c.setup.wrapper.style.paddingRight=c.numberToPx(k.right),c.setup.wrapper.style.paddingBottom=c.numberToPx(k.bottom),c.setup.wrapper.style.paddingLeft=c.numberToPx(k.left)}for(c.setup.canvas=document.createElement("canvas"),c.setup.wrapper.appendChild(c.setup.canvas),c.setup.fabric=new fabric.Canvas(c.setup.canvas,c.deepMerge({width:g.width,height:g.height,isDrawingMode:!0},e)),c.deepMerge(c.setup.fabric,e),c.deepMerge(c.setup.fabric.freeDrawingBrush,e.drawing),c.deepMerge(c.drawing,e.drawing),c.drawing.handler.change(e.drawing),c.setup.fabric.on("mouse:down",function(a){c.gatherPosition(a.e,1);c.drawing.buffer.pressedTS=Number(new Date),c.isPressed(a.e)}),c.setup.fabric.on("mouse:move",function(a){var b=c.gatherPosition(a.e,2);if(c.isPressed(a.e),c.drawing.buffer.isPressed&&!c.drawing.buffer.line&&!c.drawing.buffer.isSelected&&"pencil"!=c.drawing.mode&&(b.xD>5||b.xD>5)&&(c.drawing.buffer.hasLine=!0,c.setup.fabric.isDrawingMode=!1,c.setup.fabric._onMouseUpInDrawingMode(a),c.drawing.buffer.line=c.drawing.handler.line({x1:b.x1,y1:b.y1,x2:b.x2,y2:b.y2,arrow:"line"==c.drawing.mode?!1:c.drawing.arrow,action:"config"})),c.drawing.buffer.line){var e,f,g,h=c.drawing.buffer.line;for(h.x2=b.x2,h.y2=b.y2,d=0;d1){var i=[],j=a.getAttribute("text-anchor")||"left",k={start:"left",middle:"center",end:"right"};for(d=0;de&&(d.s.r=e),d.s.c>f&&(d.s.c=f),d.e.rb?-1:h+10>b?b-h+26+26:j+26>b?b-j:i+26>b?b-i+26:void 0}function m(a){function k(a){h[j++]=a}var b,c,d,f,g,h;if(a.length%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var i=a.length;g="="===a.charAt(i-2)?2:"="===a.charAt(i-1)?1:0,h=new e(3*a.length/4-g),d=g>0?a.length-4:a.length;var j=0;for(b=0,c=0;d>b;b+=4,c+=3)f=l(a.charAt(b))<<18|l(a.charAt(b+1))<<12|l(a.charAt(b+2))<<6|l(a.charAt(b+3)),k((16711680&f)>>16),k((65280&f)>>8),k(255&f);return 2===g?(f=l(a.charAt(b))<<2|l(a.charAt(b+1))>>4,k(255&f)):1===g&&(f=l(a.charAt(b))<<10|l(a.charAt(b+1))<<4|l(a.charAt(b+2))>>2,k(f>>8&255),k(255&f)),h}var d=c.deepMerge({},a||{}),e="undefined"!=typeof Uint8Array?Uint8Array:Array,f="+".charCodeAt(0),g="/".charCodeAt(0),h="0".charCodeAt(0),i="a".charCodeAt(0),j="A".charCodeAt(0),k=m(d.data);return c.handleCallback(b,k),k},handleCallback:function(a){var b,d=Array();if(a&&a instanceof Function){for(b=0;b0&&d.push(arguments[b]);a.apply(c,d)}},handleDropbox:function(a){if(c.drawing.buffer.enabled)if(a.preventDefault(),a.stopPropagation(),"dragover"==a.type)c.setup.wrapper.setAttribute("class",c.setup.chart.classNamePrefix+"-export-canvas active dropbox");else if(c.setup.wrapper.setAttribute("class",c.setup.chart.classNamePrefix+"-export-canvas active"),"drop"==a.type&&a.dataTransfer.files.length)for(var b=0;ba.endDate)&&(i=!0):(ea.endIndex)&&(i=!0)),d.dateFormat&&"dateObject"!=d.dateFormat&&m instanceof Date&&(m=AmCharts.formatDate(m,d.dateFormat))),h[l]=m}i||g.push(h)}d.data=g}return d.data},capitalize:function(a){return a.charAt(0).toUpperCase()+a.slice(1).toLowerCase()},createMenu:function(b,d){function f(b,d){var e,g,h=document.createElement("ul");for(e=0;e=a?(clearTimeout(e),"draw"!=d.action&&c.createMenu(c.config.menu)):i&&(i.innerHTML=c.i18l("capturing.delayed.menu.label").replace("{{duration}}",AmCharts.toFixed(a,2)))},10),f=setTimeout(function(){b.apply(c,arguments)},1e3*d.delay)},migrateSetup:function(a){function c(a){var d;for(d in a){var e=a[d];"export"==d.slice(0,6)&&e?b.menu.push(d.slice(6)):"userCFG"==d?c(e):"menuItems"==d?b.menu=e:"libs"==d?b.libs=e:"string"==typeof d&&(b[d]=e)}}var b={enabled:!0,migrated:!0,libs:{autoLoad:!0},menu:[]};return c(a),b},loadListeners:function(){function a(a){a&&(a.set({top:a.top+10,left:a.left+10}),c.setup.fabric.add(a))}c.config.keyListener&&"attached"!=c.config.keyListener&&(c.config.keyListener="attached",document.addEventListener("keydown",function(b){var d=c.drawing.buffer.target;8!=b.keyCode&&46!=b.keyCode||!d?27==b.keyCode&&c.drawing.enabled?(b.preventDefault(),c.drawing.handler.done()):67==b.keyCode&&(b.metaKey||b.ctrlKey)&&d?c.drawing.buffer.copy=d:88==b.keyCode&&(b.metaKey||b.ctrlKey)&&d?(c.drawing.buffer.copy=d,c.setup.fabric.remove(d)):86==b.keyCode&&(b.metaKey||b.ctrlKey)?c.drawing.buffer.copy&&a(c.drawing.buffer.copy.clone(a)):90==b.keyCode&&(b.metaKey||b.ctrlKey)&&(b.preventDefault(),b.shiftKey?c.drawing.handler.redo():c.drawing.handler.undo()):(b.preventDefault(),c.setup.fabric.remove(d))})),c.config.fileListener&&(c.setup.chart.containerDiv.addEventListener("dragover",c.handleDropbox),c.setup.chart.containerDiv.addEventListener("dragleave",c.handleDropbox),c.setup.chart.containerDiv.addEventListener("drop",c.handleDropbox))},init:function(){clearTimeout(c.timer),c.timer=setInterval(function(){c.setup.chart.containerDiv&&(clearTimeout(c.timer),c.config.enabled&&(c.setup.chart.AmExport=c,c.setup.chart.div.style.overflow="visible",c.loadListeners(),c.createMenu(c.config.menu)))},AmCharts.updateRate)},construct:function(){c.drawing.handler.cancel=c.drawing.handler.done;try{c.setup.hasBlob=!!new Blob}catch(a){}window.safari=window.safari?window.safari:{},c.defaults.fabric.drawing.fontSize=c.setup.chart.fontSize||11,c.config.drawing=c.deepMerge(c.defaults.fabric.drawing,c.config.drawing||{},!0),c.deepMerge(c.defaults.fabric,c.config,!0),c.deepMerge(c.defaults.fabric,c.config.fabric||{},!0),c.deepMerge(c.defaults.pdfMake,c.config,!0),c.deepMerge(c.defaults.pdfMake,c.config.pdfMake||{},!0),c.deepMerge(c.libs,c.config.libs||{},!0),c.config.drawing=c.defaults.fabric.drawing,c.config.fabric=c.defaults.fabric,c.config.pdfMake=c.defaults.pdfMake,c.config=c.deepMerge(c.defaults,c.config,!0),c.config.fabric.drawing.enabled&&void 0===c.config.fabric.drawing.menu&&(c.config.fabric.drawing.menu=[],c.deepMerge(c.config.fabric.drawing.menu,[{"class":"export-drawing",menu:[{label:c.i18l("menu.label.draw.add"),menu:[{label:c.i18l("menu.label.draw.shapes"),action:"draw.shapes"},{label:c.i18l("menu.label.draw.text"),action:"text"}]},{label:c.i18l("menu.label.draw.change"),menu:[{label:c.i18l("menu.label.draw.modes"),action:"draw.modes"},{label:c.i18l("menu.label.draw.colors"),action:"draw.colors"},{label:c.i18l("menu.label.draw.widths"),action:"draw.widths"},{label:c.i18l("menu.label.draw.opacities"),action:"draw.opacities"},"UNDO","REDO"]},{label:c.i18l("menu.label.save.image"),menu:["PNG","JPG","SVG","PDF"]},"PRINT","CANCEL"]}])),void 0===c.config.menu&&(c.config.menu=[],c.deepMerge(c.config,{menu:[{"class":"export-main",menu:[{label:c.i18l("menu.label.save.image"),menu:["PNG","JPG","SVG","PDF"]},{label:c.i18l("menu.label.save.data"),menu:["CSV","XLSX","JSON"]},{label:c.i18l("menu.label.draw"),action:"draw",menu:c.config.fabric.drawing.menu},{format:"PRINT",label:c.i18l("menu.label.print")}]}]})),c.libs.path||(c.libs.path=c.config.path+"libs/"),c.isSupported()&&(c.loadDependencies(c.libs.resources,c.libs.reload),c.setup.chart.addClassNames=!0,c.setup.chart[c.name]=c,c.init())}};if(b)c.config=b;else if(c.setup.chart[c.name])c.config=c.setup.chart[c.name];else{if(!c.setup.chart.amExport&&!c.setup.chart.exportConfig)return;c.config=c.migrateSetup(c.setup.chart.amExport||c.setup.chart.exportConfig)}return c.construct(),c.deepMerge(this,c)}}(),AmCharts.addInitHandler(function(a){new AmCharts["export"](a)},["pie","serial","xy","funnel","radar","gauge","stock","map","gantt"]); \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/export/lang/de.js b/chronos/static/js/amcharts/plugins/export/lang/de.js deleted file mode 100644 index e63ae42..0000000 --- a/chronos/static/js/amcharts/plugins/export/lang/de.js +++ /dev/null @@ -1,29 +0,0 @@ -AmCharts.translations[ "export" ][ "de" ] = { - "fallback.save.text": "CTRL + C um die Daten in die Zwischenablage zu kopieren.", - "fallback.save.image": "Rechtsklick -> Bild speichern unter... um das Bild zu speichern.", - - "capturing.delayed.menu.label": "{{duration}}", - "capturing.delayed.menu.title": "Klicken zum Abbrechen.", - - "menu.label.print": "Drucken", - "menu.label.undo": "Rückgängig", - "menu.label.redo": "Wiederherstellen", - "menu.label.cancel": "Abbrechen", - - "menu.label.save.image": "Herunterladen als ...", - "menu.label.save.data": "Speichern als ...", - - "menu.label.draw": "Notieren ...", - "menu.label.draw.change": "Ändern ...", - "menu.label.draw.add": "Hinzufügen ...", - "menu.label.draw.shapes": "Form ...", - "menu.label.draw.colors": "Farbe ...", - "menu.label.draw.widths": "Größe ...", - "menu.label.draw.opacities": "Deckkraft ...", - "menu.label.draw.text": "Text", - - "menu.label.draw.modes": "Modus...", - "menu.label.draw.modes.pencil": "Stift", - "menu.label.draw.modes.line": "Linie", - "menu.label.draw.modes.arrow": "Pfeil" -} \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/export/lang/en.js b/chronos/static/js/amcharts/plugins/export/lang/en.js deleted file mode 100644 index 7e8d381..0000000 --- a/chronos/static/js/amcharts/plugins/export/lang/en.js +++ /dev/null @@ -1,29 +0,0 @@ -AmCharts.translations[ "export" ][ "en" ] = { - "fallback.save.text": "CTRL + C to copy the data into the clipboard.", - "fallback.save.image": "Rightclick -> Save picture as... to save the image.", - - "capturing.delayed.menu.label": "{{duration}}", - "capturing.delayed.menu.title": "Click to cancel", - - "menu.label.print": "Print", - "menu.label.undo": "Undo", - "menu.label.redo": "Redo", - "menu.label.cancel": "Cancel", - - "menu.label.save.image": "Download as ...", - "menu.label.save.data": "Save as ...", - - "menu.label.draw": "Annotate ...", - "menu.label.draw.change": "Change ...", - "menu.label.draw.add": "Add ...", - "menu.label.draw.shapes": "Shape ...", - "menu.label.draw.colors": "Color ...", - "menu.label.draw.widths": "Size ...", - "menu.label.draw.opacities": "Opacity ...", - "menu.label.draw.text": "Text", - - "menu.label.draw.modes": "Mode ...", - "menu.label.draw.modes.pencil": "Pencil", - "menu.label.draw.modes.line": "Line", - "menu.label.draw.modes.arrow": "Arrow" -} \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/export/lang/fr.js b/chronos/static/js/amcharts/plugins/export/lang/fr.js deleted file mode 100644 index 349db12..0000000 --- a/chronos/static/js/amcharts/plugins/export/lang/fr.js +++ /dev/null @@ -1,29 +0,0 @@ -AmCharts.translations[ "export" ][ "fr" ] = { - "fallback.save.text": "CTRL + C pour copier dans le presse-papier.", - "fallback.save.image": "Clic-droit -> Enregistrer sous... pour sauvegarder l'image.", - - "capturing.delayed.menu.label": "{{duration}}", - "capturing.delayed.menu.title": "Cliquez pour annuler", - - "menu.label.print": "Imprimer", - "menu.label.undo": "Retour", - "menu.label.redo": "Refaire", - "menu.label.cancel": "Annuler", - - "menu.label.save.image": "Téléchargez en ...", - "menu.label.save.data": "Sauvegarder en ...", - - "menu.label.draw": "Annoter ...", - "menu.label.draw.change": "Changer le ...", - "menu.label.draw.add": "Ajouter ...", - "menu.label.draw.shapes": "Formes ...", - "menu.label.draw.colors": "Couleurs ...", - "menu.label.draw.widths": "Taille ...", - "menu.label.draw.opacities": "Opacité ...", - "menu.label.draw.text": "Texte", - - "menu.label.draw.modes": "Mode ...", - "menu.label.draw.modes.pencil": "Crayon", - "menu.label.draw.modes.line": "Ligne", - "menu.label.draw.modes.arrow": "Flèche" -} diff --git a/chronos/static/js/amcharts/plugins/export/lang/lt.js b/chronos/static/js/amcharts/plugins/export/lang/lt.js deleted file mode 100644 index d6b2d00..0000000 --- a/chronos/static/js/amcharts/plugins/export/lang/lt.js +++ /dev/null @@ -1,29 +0,0 @@ -AmCharts.translations[ "export" ][ "lt" ] = { - "fallback.save.text": "Spauskite CTRL + C jei norite nukopijuoti paveiksliuką.", - "fallback.save.image": "Spragtelkite dešinį klavišą ir pasirinkite \"Save picture as...\" jei norite išsaugoti paveiksliuką.", - - "capturing.delayed.menu.label": "{{duration}}", - "capturing.delayed.menu.title": "Nutraukti", - - "menu.label.print": "Spausdinti", - "menu.label.undo": "Atšaukti", - "menu.label.redo": "Pakartoti", - "menu.label.cancel": "Nutraukti", - - "menu.label.save.image": "Atsisiųsti ...", - "menu.label.save.data": "Išsaugoti ...", - - "menu.label.draw": "Anotuoti ...", - "menu.label.draw.change": "Keisti ...", - "menu.label.draw.add": "Pridėti ...", - "menu.label.draw.shapes": "Ikonėlę ...", - "menu.label.draw.colors": "Spalvą ...", - "menu.label.draw.widths": "Teptuką ...", - "menu.label.draw.opacities": "Nepermatomumas ...", - "menu.label.draw.text": "Tekstą", - - "menu.label.draw.modes": "Režimas ...", - "menu.label.draw.modes.pencil": "Tekstą", - "menu.label.draw.modes.line": "Linija", - "menu.label.draw.modes.arrow": "Rodyklė" -} \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/export/lang/pl.js b/chronos/static/js/amcharts/plugins/export/lang/pl.js deleted file mode 100644 index 1475249..0000000 --- a/chronos/static/js/amcharts/plugins/export/lang/pl.js +++ /dev/null @@ -1,29 +0,0 @@ -AmCharts.translations[ "export" ][ "pl" ] = { - "fallback.save.text": "Naciśnij CTRL + C by skopiować dane do schowka.", - "fallback.save.image": "Prawy przycisk myszy -> Zapisz obrazek jako... by zapisać obrazek.", - - "capturing.delayed.menu.label": "{{duration}}", - "capturing.delayed.menu.title": "Kliknij by anulować", - - "menu.label.print": "Drukuj", - "menu.label.undo": "Cofnij", - "menu.label.redo": "Przywróć", - "menu.label.cancel": "Anuluj", - - "menu.label.save.image": "Pobierz jako ...", - "menu.label.save.data": "Zapisz jako ...", - - "menu.label.draw": "Rysuj ...", - "menu.label.draw.change": "Zmień ...", - "menu.label.draw.add": "Dodaj ...", - "menu.label.draw.shapes": "Kształt ...", - "menu.label.draw.colors": "Kolor ...", - "menu.label.draw.widths": "Rozmiar ...", - "menu.label.draw.opacities": "Przeźroczystość ...", - "menu.label.draw.text": "Tekst", - - "menu.label.draw.modes": "Tryb ...", - "menu.label.draw.modes.pencil": "Ołówek", - "menu.label.draw.modes.line": "Linia", - "menu.label.draw.modes.arrow": "Strzałka" -} \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/export/libs/FileSaver.js/FileSaver.js b/chronos/static/js/amcharts/plugins/export/libs/FileSaver.js/FileSaver.js deleted file mode 100644 index 11081a8..0000000 --- a/chronos/static/js/amcharts/plugins/export/libs/FileSaver.js/FileSaver.js +++ /dev/null @@ -1,253 +0,0 @@ -/* FileSaver.js - * A saveAs() FileSaver implementation. - * 2015-05-07.2 - * - * By Eli Grey, http://eligrey.com - * License: X11/MIT - * See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md - */ - -/*global self */ -/*jslint bitwise: true, indent: 4, laxbreak: true, laxcomma: true, smarttabs: true, plusplus: true */ - -/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */ - -var saveAs = saveAs || (function(view) { - "use strict"; - // IE <10 is explicitly unsupported - if (typeof navigator !== "undefined" && /MSIE [1-9]\./.test(navigator.userAgent)) { - return; - } - var - doc = view.document - // only get URL when necessary in case Blob.js hasn't overridden it yet - , get_URL = function() { - return view.URL || view.webkitURL || view; - } - , save_link = doc.createElementNS("http://www.w3.org/1999/xhtml", "a") - , can_use_save_link = "download" in save_link - , click = function(node) { - var event = doc.createEvent("MouseEvents"); - event.initMouseEvent( - "click", true, false, view, 0, 0, 0, 0, 0 - , false, false, false, false, 0, null - ); - node.dispatchEvent(event); - } - , webkit_req_fs = view.webkitRequestFileSystem - , req_fs = view.requestFileSystem || webkit_req_fs || view.mozRequestFileSystem - , throw_outside = function(ex) { - (view.setImmediate || view.setTimeout)(function() { - throw ex; - }, 0); - } - , force_saveable_type = "application/octet-stream" - , fs_min_size = 0 - // See https://code.google.com/p/chromium/issues/detail?id=375297#c7 and - // https://github.com/eligrey/FileSaver.js/commit/485930a#commitcomment-8768047 - // for the reasoning behind the timeout and revocation flow - , arbitrary_revoke_timeout = 500 // in ms - , revoke = function(file) { - var revoker = function() { - if (typeof file === "string") { // file is an object URL - get_URL().revokeObjectURL(file); - } else { // file is a File - file.remove(); - } - }; - if (view.chrome) { - revoker(); - } else { - setTimeout(revoker, arbitrary_revoke_timeout); - } - } - , dispatch = function(filesaver, event_types, event) { - event_types = [].concat(event_types); - var i = event_types.length; - while (i--) { - var listener = filesaver["on" + event_types[i]]; - if (typeof listener === "function") { - try { - listener.call(filesaver, event || filesaver); - } catch (ex) { - throw_outside(ex); - } - } - } - } - , auto_bom = function(blob) { - // prepend BOM for UTF-8 XML and text/* types (including HTML) - if (/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(blob.type)) { - return new Blob(["\ufeff", blob], {type: blob.type}); - } - return blob; - } - , FileSaver = function(blob, name) { - blob = auto_bom(blob); - // First try a.download, then web filesystem, then object URLs - var - filesaver = this - , type = blob.type - , blob_changed = false - , object_url - , target_view - , dispatch_all = function() { - dispatch(filesaver, "writestart progress write writeend".split(" ")); - } - // on any filesys errors revert to saving with object URLs - , fs_error = function() { - // don't create more object URLs than needed - if (blob_changed || !object_url) { - object_url = get_URL().createObjectURL(blob); - } - if (target_view) { - target_view.location.href = object_url; - } else { - var new_tab = view.open(object_url, "_blank"); - if (new_tab == undefined && typeof safari !== "undefined") { - //Apple do not allow window.open, see http://bit.ly/1kZffRI - view.location.href = object_url - } - } - filesaver.readyState = filesaver.DONE; - dispatch_all(); - revoke(object_url); - } - , abortable = function(func) { - return function() { - if (filesaver.readyState !== filesaver.DONE) { - return func.apply(this, arguments); - } - }; - } - , create_if_not_found = {create: true, exclusive: false} - , slice - ; - filesaver.readyState = filesaver.INIT; - if (!name) { - name = "download"; - } - if (can_use_save_link) { - object_url = get_URL().createObjectURL(blob); - save_link.href = object_url; - save_link.download = name; - click(save_link); - filesaver.readyState = filesaver.DONE; - dispatch_all(); - revoke(object_url); - return; - } - // Object and web filesystem URLs have a problem saving in Google Chrome when - // viewed in a tab, so I force save with application/octet-stream - // http://code.google.com/p/chromium/issues/detail?id=91158 - // Update: Google errantly closed 91158, I submitted it again: - // https://code.google.com/p/chromium/issues/detail?id=389642 - if (view.chrome && type && type !== force_saveable_type) { - slice = blob.slice || blob.webkitSlice; - blob = slice.call(blob, 0, blob.size, force_saveable_type); - blob_changed = true; - } - // Since I can't be sure that the guessed media type will trigger a download - // in WebKit, I append .download to the filename. - // https://bugs.webkit.org/show_bug.cgi?id=65440 - if (webkit_req_fs && name !== "download") { - name += ".download"; - } - if (type === force_saveable_type || webkit_req_fs) { - target_view = view; - } - if (!req_fs) { - fs_error(); - return; - } - fs_min_size += blob.size; - req_fs(view.TEMPORARY, fs_min_size, abortable(function(fs) { - fs.root.getDirectory("saved", create_if_not_found, abortable(function(dir) { - var save = function() { - dir.getFile(name, create_if_not_found, abortable(function(file) { - file.createWriter(abortable(function(writer) { - writer.onwriteend = function(event) { - target_view.location.href = file.toURL(); - filesaver.readyState = filesaver.DONE; - dispatch(filesaver, "writeend", event); - revoke(file); - }; - writer.onerror = function() { - var error = writer.error; - if (error.code !== error.ABORT_ERR) { - fs_error(); - } - }; - "writestart progress write abort".split(" ").forEach(function(event) { - writer["on" + event] = filesaver["on" + event]; - }); - writer.write(blob); - filesaver.abort = function() { - writer.abort(); - filesaver.readyState = filesaver.DONE; - }; - filesaver.readyState = filesaver.WRITING; - }), fs_error); - }), fs_error); - }; - dir.getFile(name, {create: false}, abortable(function(file) { - // delete file if it already exists - file.remove(); - save(); - }), abortable(function(ex) { - if (ex.code === ex.NOT_FOUND_ERR) { - save(); - } else { - fs_error(); - } - })); - }), fs_error); - }), fs_error); - } - , FS_proto = FileSaver.prototype - , saveAs = function(blob, name) { - return new FileSaver(blob, name); - } - ; - // IE 10+ (native saveAs) - if (typeof navigator !== "undefined" && navigator.msSaveOrOpenBlob) { - return function(blob, name) { - return navigator.msSaveOrOpenBlob(auto_bom(blob), name); - }; - } - - FS_proto.abort = function() { - var filesaver = this; - filesaver.readyState = filesaver.DONE; - dispatch(filesaver, "abort"); - }; - FS_proto.readyState = FS_proto.INIT = 0; - FS_proto.WRITING = 1; - FS_proto.DONE = 2; - - FS_proto.error = - FS_proto.onwritestart = - FS_proto.onprogress = - FS_proto.onwrite = - FS_proto.onabort = - FS_proto.onerror = - FS_proto.onwriteend = - null; - - return saveAs; -}( - typeof self !== "undefined" && self - || typeof window !== "undefined" && window - || this.content -)); -// `self` is undefined in Firefox for Android content script context -// while `this` is nsIContentFrameMessageManager -// with an attribute `content` that corresponds to the window - -if (typeof module !== "undefined" && module.exports) { - module.exports.saveAs = saveAs; -} else if ((typeof define !== "undefined" && define !== null) && (define.amd != null)) { - define([], function() { - return saveAs; - }); -} \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/export/libs/FileSaver.js/FileSaver.min.js b/chronos/static/js/amcharts/plugins/export/libs/FileSaver.js/FileSaver.min.js deleted file mode 100644 index c079233..0000000 --- a/chronos/static/js/amcharts/plugins/export/libs/FileSaver.js/FileSaver.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */ -var saveAs=saveAs||function(e){"use strict";if("undefined"==typeof navigator||!/MSIE [1-9]\./.test(navigator.userAgent)){var t=e.document,n=function(){return e.URL||e.webkitURL||e},o=t.createElementNS("http://www.w3.org/1999/xhtml","a"),r="download"in o,i=function(n){var o=t.createEvent("MouseEvents");o.initMouseEvent("click",!0,!1,e,0,0,0,0,0,!1,!1,!1,!1,0,null),n.dispatchEvent(o)},a=e.webkitRequestFileSystem,c=e.requestFileSystem||a||e.mozRequestFileSystem,u=function(t){(e.setImmediate||e.setTimeout)(function(){throw t},0)},f="application/octet-stream",s=0,d=500,l=function(t){var o=function(){"string"==typeof t?n().revokeObjectURL(t):t.remove()};e.chrome?o():setTimeout(o,d)},v=function(e,t,n){t=[].concat(t);for(var o=t.length;o--;){var r=e["on"+t[o]];if("function"==typeof r)try{r.call(e,n||e)}catch(i){u(i)}}},p=function(e){return/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob(["\ufeff",e],{type:e.type}):e},w=function(t,u){t=p(t);var d,w,y,m=this,S=t.type,h=!1,O=function(){v(m,"writestart progress write writeend".split(" "))},E=function(){if((h||!d)&&(d=n().createObjectURL(t)),w)w.location.href=d;else{var o=e.open(d,"_blank");void 0==o&&"undefined"!=typeof safari&&(e.location.href=d)}m.readyState=m.DONE,O(),l(d)},R=function(e){return function(){return m.readyState!==m.DONE?e.apply(this,arguments):void 0}},b={create:!0,exclusive:!1};return m.readyState=m.INIT,u||(u="download"),r?(d=n().createObjectURL(t),o.href=d,o.download=u,i(o),m.readyState=m.DONE,O(),void l(d)):(e.chrome&&S&&S!==f&&(y=t.slice||t.webkitSlice,t=y.call(t,0,t.size,f),h=!0),a&&"download"!==u&&(u+=".download"),(S===f||a)&&(w=e),c?(s+=t.size,void c(e.TEMPORARY,s,R(function(e){e.root.getDirectory("saved",b,R(function(e){var n=function(){e.getFile(u,b,R(function(e){e.createWriter(R(function(n){n.onwriteend=function(t){w.location.href=e.toURL(),m.readyState=m.DONE,v(m,"writeend",t),l(e)},n.onerror=function(){var e=n.error;e.code!==e.ABORT_ERR&&E()},"writestart progress write abort".split(" ").forEach(function(e){n["on"+e]=m["on"+e]}),n.write(t),m.abort=function(){n.abort(),m.readyState=m.DONE},m.readyState=m.WRITING}),E)}),E)};e.getFile(u,{create:!1},R(function(e){e.remove(),n()}),R(function(e){e.code===e.NOT_FOUND_ERR?n():E()}))}),E)}),E)):void E())},y=w.prototype,m=function(e,t){return new w(e,t)};return"undefined"!=typeof navigator&&navigator.msSaveOrOpenBlob?function(e,t){return navigator.msSaveOrOpenBlob(p(e),t)}:(y.abort=function(){var e=this;e.readyState=e.DONE,v(e,"abort")},y.readyState=y.INIT=0,y.WRITING=1,y.DONE=2,y.error=y.onwritestart=y.onprogress=y.onwrite=y.onabort=y.onerror=y.onwriteend=null,m)}}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content);"undefined"!=typeof module&&module.exports?module.exports.saveAs=saveAs:"undefined"!=typeof define&&null!==define&&null!=define.amd&&define([],function(){return saveAs}); \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/export/libs/blob.js/blob.js b/chronos/static/js/amcharts/plugins/export/libs/blob.js/blob.js deleted file mode 100644 index b4dda85..0000000 --- a/chronos/static/js/amcharts/plugins/export/libs/blob.js/blob.js +++ /dev/null @@ -1,211 +0,0 @@ -/* Blob.js - * A Blob implementation. - * 2014-07-24 - * - * By Eli Grey, http://eligrey.com - * By Devin Samarin, https://github.com/dsamarin - * License: X11/MIT - * See https://github.com/eligrey/Blob.js/blob/master/LICENSE.md - */ - -/*global self, unescape */ -/*jslint bitwise: true, regexp: true, confusion: true, es5: true, vars: true, white: true, - plusplus: true */ - -/*! @source http://purl.eligrey.com/github/Blob.js/blob/master/Blob.js */ - -(function (view) { - "use strict"; - - view.URL = view.URL || view.webkitURL; - - if (view.Blob && view.URL) { - try { - new Blob; - return; - } catch (e) {} - } - - // Internally we use a BlobBuilder implementation to base Blob off of - // in order to support older browsers that only have BlobBuilder - var BlobBuilder = view.BlobBuilder || view.WebKitBlobBuilder || view.MozBlobBuilder || (function(view) { - var - get_class = function(object) { - return Object.prototype.toString.call(object).match(/^\[object\s(.*)\]$/)[1]; - } - , FakeBlobBuilder = function BlobBuilder() { - this.data = []; - } - , FakeBlob = function Blob(data, type, encoding) { - this.data = data; - this.size = data.length; - this.type = type; - this.encoding = encoding; - } - , FBB_proto = FakeBlobBuilder.prototype - , FB_proto = FakeBlob.prototype - , FileReaderSync = view.FileReaderSync - , FileException = function(type) { - this.code = this[this.name = type]; - } - , file_ex_codes = ( - "NOT_FOUND_ERR SECURITY_ERR ABORT_ERR NOT_READABLE_ERR ENCODING_ERR " - + "NO_MODIFICATION_ALLOWED_ERR INVALID_STATE_ERR SYNTAX_ERR" - ).split(" ") - , file_ex_code = file_ex_codes.length - , real_URL = view.URL || view.webkitURL || view - , real_create_object_URL = real_URL.createObjectURL - , real_revoke_object_URL = real_URL.revokeObjectURL - , URL = real_URL - , btoa = view.btoa - , atob = view.atob - - , ArrayBuffer = view.ArrayBuffer - , Uint8Array = view.Uint8Array - - , origin = /^[\w-]+:\/*\[?[\w\.:-]+\]?(?::[0-9]+)?/ - ; - FakeBlob.fake = FB_proto.fake = true; - while (file_ex_code--) { - FileException.prototype[file_ex_codes[file_ex_code]] = file_ex_code + 1; - } - // Polyfill URL - if (!real_URL.createObjectURL) { - URL = view.URL = function(uri) { - var - uri_info = document.createElementNS("http://www.w3.org/1999/xhtml", "a") - , uri_origin - ; - uri_info.href = uri; - if (!("origin" in uri_info)) { - if (uri_info.protocol.toLowerCase() === "data:") { - uri_info.origin = null; - } else { - uri_origin = uri.match(origin); - uri_info.origin = uri_origin && uri_origin[1]; - } - } - return uri_info; - }; - } - URL.createObjectURL = function(blob) { - var - type = blob.type - , data_URI_header - ; - if (type === null) { - type = "application/octet-stream"; - } - if (blob instanceof FakeBlob) { - data_URI_header = "data:" + type; - if (blob.encoding === "base64") { - return data_URI_header + ";base64," + blob.data; - } else if (blob.encoding === "URI") { - return data_URI_header + "," + decodeURIComponent(blob.data); - } if (btoa) { - return data_URI_header + ";base64," + btoa(blob.data); - } else { - return data_URI_header + "," + encodeURIComponent(blob.data); - } - } else if (real_create_object_URL) { - return real_create_object_URL.call(real_URL, blob); - } - }; - URL.revokeObjectURL = function(object_URL) { - if (object_URL.substring(0, 5) !== "data:" && real_revoke_object_URL) { - real_revoke_object_URL.call(real_URL, object_URL); - } - }; - FBB_proto.append = function(data/*, endings*/) { - var bb = this.data; - // decode data to a binary string - if (Uint8Array && (data instanceof ArrayBuffer || data instanceof Uint8Array)) { - var - str = "" - , buf = new Uint8Array(data) - , i = 0 - , buf_len = buf.length - ; - for (; i < buf_len; i++) { - str += String.fromCharCode(buf[i]); - } - bb.push(str); - } else if (get_class(data) === "Blob" || get_class(data) === "File") { - if (FileReaderSync) { - var fr = new FileReaderSync; - bb.push(fr.readAsBinaryString(data)); - } else { - // async FileReader won't work as BlobBuilder is sync - throw new FileException("NOT_READABLE_ERR"); - } - } else if (data instanceof FakeBlob) { - if (data.encoding === "base64" && atob) { - bb.push(atob(data.data)); - } else if (data.encoding === "URI") { - bb.push(decodeURIComponent(data.data)); - } else if (data.encoding === "raw") { - bb.push(data.data); - } - } else { - if (typeof data !== "string") { - data += ""; // convert unsupported types to strings - } - // decode UTF-16 to binary string - bb.push(unescape(encodeURIComponent(data))); - } - }; - FBB_proto.getBlob = function(type) { - if (!arguments.length) { - type = null; - } - return new FakeBlob(this.data.join(""), type, "raw"); - }; - FBB_proto.toString = function() { - return "[object BlobBuilder]"; - }; - FB_proto.slice = function(start, end, type) { - var args = arguments.length; - if (args < 3) { - type = null; - } - return new FakeBlob( - this.data.slice(start, args > 1 ? end : this.data.length) - , type - , this.encoding - ); - }; - FB_proto.toString = function() { - return "[object Blob]"; - }; - FB_proto.close = function() { - this.size = 0; - delete this.data; - }; - return FakeBlobBuilder; - }(view)); - - view.Blob = function(blobParts, options) { - var type = options ? (options.type || "") : ""; - var builder = new BlobBuilder(); - if (blobParts) { - for (var i = 0, len = blobParts.length; i < len; i++) { - if (Uint8Array && blobParts[i] instanceof Uint8Array) { - builder.append(blobParts[i].buffer); - } - else { - builder.append(blobParts[i]); - } - } - } - var blob = builder.getBlob(type); - if (!blob.slice && blob.webkitSlice) { - blob.slice = blob.webkitSlice; - } - return blob; - }; - - var getPrototypeOf = Object.getPrototypeOf || function(object) { - return object.__proto__; - }; - view.Blob.prototype = getPrototypeOf(new view.Blob()); -}(typeof self !== "undefined" && self || typeof window !== "undefined" && window || this.content || this)); \ No newline at end of file diff --git a/chronos/static/js/amcharts/plugins/export/libs/fabric.js/fabric.js b/chronos/static/js/amcharts/plugins/export/libs/fabric.js/fabric.js deleted file mode 100644 index b2dcba5..0000000 --- a/chronos/static/js/amcharts/plugins/export/libs/fabric.js/fabric.js +++ /dev/null @@ -1,23452 +0,0 @@ -/* build: `node build.js modules=ALL exclude=json,gestures minifier=uglifyjs` */ -/*! Fabric.js Copyright 2008-2015, Printio (Juriy Zaytsev, Maxim Chernyak) */ - -var fabric = fabric || { version: "1.5.0" }; -if (typeof exports !== 'undefined') { - exports.fabric = fabric; -} - -if (typeof document !== 'undefined' && typeof window !== 'undefined') { - fabric.document = document; - fabric.window = window; - // ensure globality even if entire library were function wrapped (as in Meteor.js packaging system) - window.fabric = fabric; -} -else { - // assume we're running under node.js when document/window are not present - fabric.document = require("jsdom") - .jsdom(""); - - if (fabric.document.createWindow) { - fabric.window = fabric.document.createWindow(); - } else { - fabric.window = fabric.document.parentWindow; - } -} - -/** - * True when in environment that supports touch events - * @type boolean - */ -fabric.isTouchSupported = "ontouchstart" in fabric.document.documentElement; - -/** - * True when in environment that's probably Node.js - * @type boolean - */ -fabric.isLikelyNode = typeof Buffer !== 'undefined' && - typeof window === 'undefined'; - -/* _FROM_SVG_START_ */ -/** - * Attributes parsed from all SVG elements - * @type array - */ -fabric.SHARED_ATTRIBUTES = [ - "display", - "transform", - "fill", "fill-opacity", "fill-rule", - "opacity", - "stroke", "stroke-dasharray", "stroke-linecap", - "stroke-linejoin", "stroke-miterlimit", - "stroke-opacity", "stroke-width" -]; -/* _FROM_SVG_END_ */ - -/** - * Pixel per Inch as a default value set to 96. Can be changed for more realistic conversion. - */ -fabric.DPI = 96; -fabric.reNum = '(?:[-+]?(?:\\d+|\\d*\\.\\d+)(?:e[-+]?\\d+)?)'; - - -(function() { - - /** - * @private - * @param {String} eventName - * @param {Function} handler - */ - function _removeEventListener(eventName, handler) { - if (!this.__eventListeners[eventName]) { - return; - } - - if (handler) { - fabric.util.removeFromArray(this.__eventListeners[eventName], handler); - } - else { - this.__eventListeners[eventName].length = 0; - } - } - - /** - * Observes specified event - * @deprecated `observe` deprecated since 0.8.34 (use `on` instead) - * @memberOf fabric.Observable - * @alias on - * @param {String|Object} eventName Event name (eg. 'after:render') or object with key/value pairs (eg. {'after:render': handler, 'selection:cleared': handler}) - * @param {Function} handler Function that receives a notification when an event of the specified type occurs - * @return {Self} thisArg - * @chainable - */ - function observe(eventName, handler) { - if (!this.__eventListeners) { - this.__eventListeners = { }; - } - // one object with key/value pairs was passed - if (arguments.length === 1) { - for (var prop in eventName) { - this.on(prop, eventName[prop]); - } - } - else { - if (!this.__eventListeners[eventName]) { - this.__eventListeners[eventName] = [ ]; - } - this.__eventListeners[eventName].push(handler); - } - return this; - } - - /** - * Stops event observing for a particular event handler. Calling this method - * without arguments removes all handlers for all events - * @deprecated `stopObserving` deprecated since 0.8.34 (use `off` instead) - * @memberOf fabric.Observable - * @alias off - * @param {String|Object} eventName Event name (eg. 'after:render') or object with key/value pairs (eg. {'after:render': handler, 'selection:cleared': handler}) - * @param {Function} handler Function to be deleted from EventListeners - * @return {Self} thisArg - * @chainable - */ - function stopObserving(eventName, handler) { - if (!this.__eventListeners) { - return; - } - - // remove all key/value pairs (event name -> event handler) - if (arguments.length === 0) { - this.__eventListeners = { }; - } - // one object with key/value pairs was passed - else if (arguments.length === 1 && typeof arguments[0] === 'object') { - for (var prop in eventName) { - _removeEventListener.call(this, prop, eventName[prop]); - } - } - else { - _removeEventListener.call(this, eventName, handler); - } - return this; - } - - /** - * Fires event with an optional options object - * @deprecated `fire` deprecated since 1.0.7 (use `trigger` instead) - * @memberOf fabric.Observable - * @alias trigger - * @param {String} eventName Event name to fire - * @param {Object} [options] Options object - * @return {Self} thisArg - * @chainable - */ - function fire(eventName, options) { - if (!this.__eventListeners) { - return; - } - - var listenersForEvent = this.__eventListeners[eventName]; - if (!listenersForEvent) { - return; - } - - for (var i = 0, len = listenersForEvent.length; i < len; i++) { - // avoiding try/catch for perf. reasons - listenersForEvent[i].call(this, options || { }); - } - return this; - } - - /** - * @namespace fabric.Observable - * @tutorial {@link http://fabricjs.com/fabric-intro-part-2/#events} - * @see {@link http://fabricjs.com/events/|Events demo} - */ - fabric.Observable = { - observe: observe, - stopObserving: stopObserving, - fire: fire, - - on: observe, - off: stopObserving, - trigger: fire - }; -})(); - - -/** - * @namespace fabric.Collection - */ -fabric.Collection = { - - /** - * Adds objects to collection, then renders canvas (if `renderOnAddRemove` is not `false`) - * Objects should be instances of (or inherit from) fabric.Object - * @param {...fabric.Object} object Zero or more fabric instances - * @return {Self} thisArg - */ - add: function () { - this._objects.push.apply(this._objects, arguments); - for (var i = 0, length = arguments.length; i < length; i++) { - this._onObjectAdded(arguments[i]); - } - this.renderOnAddRemove && this.renderAll(); - return this; - }, - - /** - * Inserts an object into collection at specified index, then renders canvas (if `renderOnAddRemove` is not `false`) - * An object should be an instance of (or inherit from) fabric.Object - * @param {Object} object Object to insert - * @param {Number} index Index to insert object at - * @param {Boolean} nonSplicing When `true`, no splicing (shifting) of objects occurs - * @return {Self} thisArg - * @chainable - */ - insertAt: function (object, index, nonSplicing) { - var objects = this.getObjects(); - if (nonSplicing) { - objects[index] = object; - } - else { - objects.splice(index, 0, object); - } - this._onObjectAdded(object); - this.renderOnAddRemove && this.renderAll(); - return this; - }, - - /** - * Removes objects from a collection, then renders canvas (if `renderOnAddRemove` is not `false`) - * @param {...fabric.Object} object Zero or more fabric instances - * @return {Self} thisArg - * @chainable - */ - remove: function() { - var objects = this.getObjects(), - index; - - for (var i = 0, length = arguments.length; i < length; i++) { - index = objects.indexOf(arguments[i]); - - // only call onObjectRemoved if an object was actually removed - if (index !== -1) { - objects.splice(index, 1); - this._onObjectRemoved(arguments[i]); - } - } - - this.renderOnAddRemove && this.renderAll(); - return this; - }, - - /** - * Executes given function for each object in this group - * @param {Function} callback - * Callback invoked with current object as first argument, - * index - as second and an array of all objects - as third. - * Iteration happens in reverse order (for performance reasons). - * Callback is invoked in a context of Global Object (e.g. `window`) - * when no `context` argument is given - * - * @param {Object} context Context (aka thisObject) - * @return {Self} thisArg - */ - forEachObject: function(callback, context) { - var objects = this.getObjects(), - i = objects.length; - while (i--) { - callback.call(context, objects[i], i, objects); - } - return this; - }, - - /** - * Returns an array of children objects of this instance - * Type parameter introduced in 1.3.10 - * @param {String} [type] When specified, only objects of this type are returned - * @return {Array} - */ - getObjects: function(type) { - if (typeof type === 'undefined') { - return this._objects; - } - return this._objects.filter(function(o) { - return o.type === type; - }); - }, - - /** - * Returns object at specified index - * @param {Number} index - * @return {Self} thisArg - */ - item: function (index) { - return this.getObjects()[index]; - }, - - /** - * Returns true if collection contains no objects - * @return {Boolean} true if collection is empty - */ - isEmpty: function () { - return this.getObjects().length === 0; - }, - - /** - * Returns a size of a collection (i.e: length of an array containing its objects) - * @return {Number} Collection size - */ - size: function() { - return this.getObjects().length; - }, - - /** - * Returns true if collection contains an object - * @param {Object} object Object to check against - * @return {Boolean} `true` if collection contains an object - */ - contains: function(object) { - return this.getObjects().indexOf(object) > -1; - }, - - /** - * Returns number representation of a collection complexity - * @return {Number} complexity - */ - complexity: function () { - return this.getObjects().reduce(function (memo, current) { - memo += current.complexity ? current.complexity() : 0; - return memo; - }, 0); - } -}; - - -(function(global) { - - var sqrt = Math.sqrt, - atan2 = Math.atan2, - PiBy180 = Math.PI / 180; - - /** - * @namespace fabric.util - */ - fabric.util = { - - /** - * Removes value from an array. - * Presence of value (and its position in an array) is determined via `Array.prototype.indexOf` - * @static - * @memberOf fabric.util - * @param {Array} array - * @param {Any} value - * @return {Array} original array - */ - removeFromArray: function(array, value) { - var idx = array.indexOf(value); - if (idx !== -1) { - array.splice(idx, 1); - } - return array; - }, - - /** - * Returns random number between 2 specified ones. - * @static - * @memberOf fabric.util - * @param {Number} min lower limit - * @param {Number} max upper limit - * @return {Number} random value (between min and max) - */ - getRandomInt: function(min, max) { - return Math.floor(Math.random() * (max - min + 1)) + min; - }, - - /** - * Transforms degrees to radians. - * @static - * @memberOf fabric.util - * @param {Number} degrees value in degrees - * @return {Number} value in radians - */ - degreesToRadians: function(degrees) { - return degrees * PiBy180; - }, - - /** - * Transforms radians to degrees. - * @static - * @memberOf fabric.util - * @param {Number} radians value in radians - * @return {Number} value in degrees - */ - radiansToDegrees: function(radians) { - return radians / PiBy180; - }, - - /** - * Rotates `point` around `origin` with `radians` - * @static - * @memberOf fabric.util - * @param {fabric.Point} point The point to rotate - * @param {fabric.Point} origin The origin of the rotation - * @param {Number} radians The radians of the angle for the rotation - * @return {fabric.Point} The new rotated point - */ - rotatePoint: function(point, origin, radians) { - var sin = Math.sin(radians), - cos = Math.cos(radians); - - point.subtractEquals(origin); - - var rx = point.x * cos - point.y * sin, - ry = point.x * sin + point.y * cos; - - return new fabric.Point(rx, ry).addEquals(origin); - }, - - /** - * Apply transform t to point p - * @static - * @memberOf fabric.util - * @param {fabric.Point} p The point to transform - * @param {Array} t The transform - * @param {Boolean} [ignoreOffset] Indicates that the offset should not be applied - * @return {fabric.Point} The transformed point - */ - transformPoint: function(p, t, ignoreOffset) { - if (ignoreOffset) { - return new fabric.Point( - t[0] * p.x + t[2] * p.y, - t[1] * p.x + t[3] * p.y - ); - } - return new fabric.Point( - t[0] * p.x + t[2] * p.y + t[4], - t[1] * p.x + t[3] * p.y + t[5] - ); - }, - - /** - * Invert transformation t - * @static - * @memberOf fabric.util - * @param {Array} t The transform - * @return {Array} The inverted transform - */ - invertTransform: function(t) { - var r = t.slice(), - a = 1 / (t[0] * t[3] - t[1] * t[2]); - r = [a * t[3], -a * t[1], -a * t[2], a * t[0], 0, 0]; - var o = fabric.util.transformPoint({ x: t[4], y: t[5] }, r); - r[4] = -o.x; - r[5] = -o.y; - return r; - }, - - /** - * A wrapper around Number#toFixed, which contrary to native method returns number, not string. - * @static - * @memberOf fabric.util - * @param {Number|String} number number to operate on - * @param {Number} fractionDigits number of fraction digits to "leave" - * @return {Number} - */ - toFixed: function(number, fractionDigits) { - return parseFloat(Number(number).toFixed(fractionDigits)); - }, - - /** - * Converts from attribute value to pixel value if applicable. - * Returns converted pixels or original value not converted. - * @param {Number|String} value number to operate on - * @return {Number|String} - */ - parseUnit: function(value, fontSize) { - var unit = /\D{0,2}$/.exec(value), - number = parseFloat(value); - if (!fontSize) { - fontSize = fabric.Text.DEFAULT_SVG_FONT_SIZE; - } - switch (unit[0]) { - case 'mm': - return number * fabric.DPI / 25.4; - - case 'cm': - return number * fabric.DPI / 2.54; - - case 'in': - return number * fabric.DPI; - - case 'pt': - return number * fabric.DPI / 72; // or * 4 / 3 - - case 'pc': - return number * fabric.DPI / 72 * 12; // or * 16 - - case 'em': - return number * fontSize; - - default: - return number; - } - }, - - /** - * Function which always returns `false`. - * @static - * @memberOf fabric.util - * @return {Boolean} - */ - falseFunction: function() { - return false; - }, - - /** - * Returns klass "Class" object of given namespace - * @memberOf fabric.util - * @param {String} type Type of object (eg. 'circle') - * @param {String} namespace Namespace to get klass "Class" object from - * @return {Object} klass "Class" - */ - getKlass: function(type, namespace) { - // capitalize first letter only - type = fabric.util.string.camelize(type.charAt(0).toUpperCase() + type.slice(1)); - return fabric.util.resolveNamespace(namespace)[type]; - }, - - /** - * Returns object of given namespace - * @memberOf fabric.util - * @param {String} namespace Namespace string e.g. 'fabric.Image.filter' or 'fabric' - * @return {Object} Object for given namespace (default fabric) - */ - resolveNamespace: function(namespace) { - if (!namespace) { - return fabric; - } - - var parts = namespace.split('.'), - len = parts.length, - obj = global || fabric.window; - - for (var i = 0; i < len; ++i) { - obj = obj[parts[i]]; - } - - return obj; - }, - - /** - * Loads image element from given url and passes it to a callback - * @memberOf fabric.util - * @param {String} url URL representing an image - * @param {Function} callback Callback; invoked with loaded image - * @param {Any} [context] Context to invoke callback in - * @param {Object} [crossOrigin] crossOrigin value to set image element to - */ - loadImage: function(url, callback, context, crossOrigin) { - if (!url) { - callback && callback.call(context, url); - return; - } - - var img = fabric.util.createImage(); - - /** @ignore */ - img.onload = function () { - callback && callback.call(context, img); - img = img.onload = img.onerror = null; - }; - - /** @ignore */ - img.onerror = function() { - fabric.log('Error loading ' + img.src); - callback && callback.call(context, null, true); - img = img.onload = img.onerror = null; - }; - - // data-urls appear to be buggy with crossOrigin - // https://github.com/kangax/fabric.js/commit/d0abb90f1cd5c5ef9d2a94d3fb21a22330da3e0a#commitcomment-4513767 - // see https://code.google.com/p/chromium/issues/detail?id=315152 - // https://bugzilla.mozilla.org/show_bug.cgi?id=935069 - if (url.indexOf('data') !== 0 && typeof crossOrigin !== 'undefined') { - img.crossOrigin = crossOrigin; - } - - img.src = url; - }, - - /** - * Creates corresponding fabric instances from their object representations - * @static - * @memberOf fabric.util - * @param {Array} objects Objects to enliven - * @param {Function} callback Callback to invoke when all objects are created - * @param {String} namespace Namespace to get klass "Class" object from - * @param {Function} reviver Method for further parsing of object elements, - * called after each fabric object created. - */ - enlivenObjects: function(objects, callback, namespace, reviver) { - objects = objects || [ ]; - - function onLoaded() { - if (++numLoadedObjects === numTotalObjects) { - callback && callback(enlivenedObjects); - } - } - - var enlivenedObjects = [ ], - numLoadedObjects = 0, - numTotalObjects = objects.length; - - if (!numTotalObjects) { - callback && callback(enlivenedObjects); - return; - } - - objects.forEach(function (o, index) { - // if sparse array - if (!o || !o.type) { - onLoaded(); - return; - } - var klass = fabric.util.getKlass(o.type, namespace); - if (klass.async) { - klass.fromObject(o, function (obj, error) { - if (!error) { - enlivenedObjects[index] = obj; - reviver && reviver(o, enlivenedObjects[index]); - } - onLoaded(); - }); - } - else { - enlivenedObjects[index] = klass.fromObject(o); - reviver && reviver(o, enlivenedObjects[index]); - onLoaded(); - } - }); - }, - - /** - * Groups SVG elements (usually those retrieved from SVG document) - * @static - * @memberOf fabric.util - * @param {Array} elements SVG elements to group - * @param {Object} [options] Options object - * @return {fabric.Object|fabric.PathGroup} - */ - groupSVGElements: function(elements, options, path) { - var object; - - object = new fabric.PathGroup(elements, options); - - if (typeof path !== 'undefined') { - object.setSourcePath(path); - } - return object; - }, - - /** - * Populates an object with properties of another object - * @static - * @memberOf fabric.util - * @param {Object} source Source object - * @param {Object} destination Destination object - * @return {Array} properties Propertie names to include - */ - populateWithProperties: function(source, destination, properties) { - if (properties && Object.prototype.toString.call(properties) === '[object Array]') { - for (var i = 0, len = properties.length; i < len; i++) { - if (properties[i] in source) { - destination[properties[i]] = source[properties[i]]; - } - } - } - }, - - /** - * Draws a dashed line between two points - * - * This method is used to draw dashed line around selection area. - * See
dotted stroke in canvas - * - * @param {CanvasRenderingContext2D} ctx context - * @param {Number} x start x coordinate - * @param {Number} y start y coordinate - * @param {Number} x2 end x coordinate - * @param {Number} y2 end y coordinate - * @param {Array} da dash array pattern - */ - drawDashedLine: function(ctx, x, y, x2, y2, da) { - var dx = x2 - x, - dy = y2 - y, - len = sqrt(dx * dx + dy * dy), - rot = atan2(dy, dx), - dc = da.length, - di = 0, - draw = true; - - ctx.save(); - ctx.translate(x, y); - ctx.moveTo(0, 0); - ctx.rotate(rot); - - x = 0; - while (len > x) { - x += da[di++ % dc]; - if (x > len) { - x = len; - } - ctx[draw ? 'lineTo' : 'moveTo'](x, 0); - draw = !draw; - } - - ctx.restore(); - }, - - /** - * Creates canvas element and initializes it via excanvas if necessary - * @static - * @memberOf fabric.util - * @param {CanvasElement} [canvasEl] optional canvas element to initialize; - * when not given, element is created implicitly - * @return {CanvasElement} initialized canvas element - */ - createCanvasElement: function(canvasEl) { - canvasEl || (canvasEl = fabric.document.createElement('canvas')); - //jscs:disable requireCamelCaseOrUpperCaseIdentifiers - if (!canvasEl.getContext && typeof G_vmlCanvasManager !== 'undefined') { - G_vmlCanvasManager.initElement(canvasEl); - } - //jscs:enable requireCamelCaseOrUpperCaseIdentifiers - return canvasEl; - }, - - /** - * Creates image element (works on client and node) - * @static - * @memberOf fabric.util - * @return {HTMLImageElement} HTML image element - */ - createImage: function() { - return fabric.isLikelyNode - ? new (require('canvas').Image)() - : fabric.document.createElement('img'); - }, - - /** - * Creates accessors (getXXX, setXXX) for a "class", based on "stateProperties" array - * @static - * @memberOf fabric.util - * @param {Object} klass "Class" to create accessors for - */ - createAccessors: function(klass) { - var proto = klass.prototype; - - for (var i = proto.stateProperties.length; i--; ) { - - var propName = proto.stateProperties[i], - capitalizedPropName = propName.charAt(0).toUpperCase() + propName.slice(1), - setterName = 'set' + capitalizedPropName, - getterName = 'get' + capitalizedPropName; - - // using `new Function` for better introspection - if (!proto[getterName]) { - proto[getterName] = (function(property) { - return new Function('return this.get("' + property + '")'); - })(propName); - } - if (!proto[setterName]) { - proto[setterName] = (function(property) { - return new Function('value', 'return this.set("' + property + '", value)'); - })(propName); - } - } - }, - - /** - * @static - * @memberOf fabric.util - * @param {fabric.Object} receiver Object implementing `clipTo` method - * @param {CanvasRenderingContext2D} ctx Context to clip - */ - clipContext: function(receiver, ctx) { - ctx.save(); - ctx.beginPath(); - receiver.clipTo(ctx); - ctx.clip(); - }, - - /** - * Multiply matrix A by matrix B to nest transformations - * @static - * @memberOf fabric.util - * @param {Array} a First transformMatrix - * @param {Array} b Second transformMatrix - * @return {Array} The product of the two transform matrices - */ - multiplyTransformMatrices: function(a, b) { - // Matrix multiply a * b - return [ - a[0] * b[0] + a[2] * b[1], - a[1] * b[0] + a[3] * b[1], - a[0] * b[2] + a[2] * b[3], - a[1] * b[2] + a[3] * b[3], - a[0] * b[4] + a[2] * b[5] + a[4], - a[1] * b[4] + a[3] * b[5] + a[5] - ]; - }, - - /** - * Returns string representation of function body - * @param {Function} fn Function to get body of - * @return {String} Function body - */ - getFunctionBody: function(fn) { - return (String(fn).match(/function[^{]*\{([\s\S]*)\}/) || {})[1]; - }, - - /** - * Returns true if context has transparent pixel - * at specified location (taking tolerance into account) - * @param {CanvasRenderingContext2D} ctx context - * @param {Number} x x coordinate - * @param {Number} y y coordinate - * @param {Number} tolerance Tolerance - */ - isTransparent: function(ctx, x, y, tolerance) { - - // If tolerance is > 0 adjust start coords to take into account. - // If moves off Canvas fix to 0 - if (tolerance > 0) { - if (x > tolerance) { - x -= tolerance; - } - else { - x = 0; - } - if (y > tolerance) { - y -= tolerance; - } - else { - y = 0; - } - } - - var _isTransparent = true, - imageData = ctx.getImageData(x, y, (tolerance * 2) || 1, (tolerance * 2) || 1); - - // Split image data - for tolerance > 1, pixelDataSize = 4; - for (var i = 3, l = imageData.data.length; i < l; i += 4) { - var temp = imageData.data[i]; - _isTransparent = temp <= 0; - if (_isTransparent === false) { - break; // Stop if colour found - } - } - - imageData = null; - - return _isTransparent; - } - }; - -})(typeof exports !== 'undefined' ? exports : this); - - -(function() { - - var arcToSegmentsCache = { }, - segmentToBezierCache = { }, - boundsOfCurveCache = { }, - _join = Array.prototype.join; - - /* Adapted from http://dxr.mozilla.org/mozilla-central/source/content/svg/content/src/nsSVGPathDataParser.cpp - * by Andrea Bogazzi code is under MPL. if you don't have a copy of the license you can take it here - * http://mozilla.org/MPL/2.0/ - */ - function arcToSegments(toX, toY, rx, ry, large, sweep, rotateX) { - var argsString = _join.call(arguments); - if (arcToSegmentsCache[argsString]) { - return arcToSegmentsCache[argsString]; - } - - var PI = Math.PI, th = rotateX * PI / 180, - sinTh = Math.sin(th), - cosTh = Math.cos(th), - fromX = 0, fromY = 0; - - rx = Math.abs(rx); - ry = Math.abs(ry); - - var px = -cosTh * toX * 0.5 - sinTh * toY * 0.5, - py = -cosTh * toY * 0.5 + sinTh * toX * 0.5, - rx2 = rx * rx, ry2 = ry * ry, py2 = py * py, px2 = px * px, - pl = rx2 * ry2 - rx2 * py2 - ry2 * px2, - root = 0; - - if (pl < 0) { - var s = Math.sqrt(1 - pl/(rx2 * ry2)); - rx *= s; - ry *= s; - } - else { - root = (large === sweep ? -1.0 : 1.0) * - Math.sqrt( pl /(rx2 * py2 + ry2 * px2)); - } - - var cx = root * rx * py / ry, - cy = -root * ry * px / rx, - cx1 = cosTh * cx - sinTh * cy + toX * 0.5, - cy1 = sinTh * cx + cosTh * cy + toY * 0.5, - mTheta = calcVectorAngle(1, 0, (px - cx) / rx, (py - cy) / ry), - dtheta = calcVectorAngle((px - cx) / rx, (py - cy) / ry, (-px - cx) / rx, (-py - cy) / ry); - - if (sweep === 0 && dtheta > 0) { - dtheta -= 2 * PI; - } - else if (sweep === 1 && dtheta < 0) { - dtheta += 2 * PI; - } - - // Convert into cubic bezier segments <= 90deg - var segments = Math.ceil(Math.abs(dtheta / PI * 2)), - result = [], mDelta = dtheta / segments, - mT = 8 / 3 * Math.sin(mDelta / 4) * Math.sin(mDelta / 4) / Math.sin(mDelta / 2), - th3 = mTheta + mDelta; - - for (var i = 0; i < segments; i++) { - result[i] = segmentToBezier(mTheta, th3, cosTh, sinTh, rx, ry, cx1, cy1, mT, fromX, fromY); - fromX = result[i][4]; - fromY = result[i][5]; - mTheta = th3; - th3 += mDelta; - } - arcToSegmentsCache[argsString] = result; - return result; - } - - function segmentToBezier(th2, th3, cosTh, sinTh, rx, ry, cx1, cy1, mT, fromX, fromY) { - var argsString2 = _join.call(arguments); - if (segmentToBezierCache[argsString2]) { - return segmentToBezierCache[argsString2]; - } - - var costh2 = Math.cos(th2), - sinth2 = Math.sin(th2), - costh3 = Math.cos(th3), - sinth3 = Math.sin(th3), - toX = cosTh * rx * costh3 - sinTh * ry * sinth3 + cx1, - toY = sinTh * rx * costh3 + cosTh * ry * sinth3 + cy1, - cp1X = fromX + mT * ( - cosTh * rx * sinth2 - sinTh * ry * costh2), - cp1Y = fromY + mT * ( - sinTh * rx * sinth2 + cosTh * ry * costh2), - cp2X = toX + mT * ( cosTh * rx * sinth3 + sinTh * ry * costh3), - cp2Y = toY + mT * ( sinTh * rx * sinth3 - cosTh * ry * costh3); - - segmentToBezierCache[argsString2] = [ - cp1X, cp1Y, - cp2X, cp2Y, - toX, toY - ]; - return segmentToBezierCache[argsString2]; - } - - /* - * Private - */ - function calcVectorAngle(ux, uy, vx, vy) { - var ta = Math.atan2(uy, ux), - tb = Math.atan2(vy, vx); - if (tb >= ta) { - return tb - ta; - } - else { - return 2 * Math.PI - (ta - tb); - } - } - - /** - * Draws arc - * @param {CanvasRenderingContext2D} ctx - * @param {Number} fx - * @param {Number} fy - * @param {Array} coords - */ - fabric.util.drawArc = function(ctx, fx, fy, coords) { - var rx = coords[0], - ry = coords[1], - rot = coords[2], - large = coords[3], - sweep = coords[4], - tx = coords[5], - ty = coords[6], - segs = [[ ], [ ], [ ], [ ]], - segsNorm = arcToSegments(tx - fx, ty - fy, rx, ry, large, sweep, rot); - - for (var i = 0, len = segsNorm.length; i < len; i++) { - segs[i][0] = segsNorm[i][0] + fx; - segs[i][1] = segsNorm[i][1] + fy; - segs[i][2] = segsNorm[i][2] + fx; - segs[i][3] = segsNorm[i][3] + fy; - segs[i][4] = segsNorm[i][4] + fx; - segs[i][5] = segsNorm[i][5] + fy; - ctx.bezierCurveTo.apply(ctx, segs[i]); - } - }; - - /** - * Calculate bounding box of a elliptic-arc - * @param {Number} fx start point of arc - * @param {Number} fy - * @param {Number} rx horizontal radius - * @param {Number} ry vertical radius - * @param {Number} rot angle of horizontal axe - * @param {Number} large 1 or 0, whatever the arc is the big or the small on the 2 points - * @param {Number} sweep 1 or 0, 1 clockwise or counterclockwise direction - * @param {Number} tx end point of arc - * @param {Number} ty - */ - fabric.util.getBoundsOfArc = function(fx, fy, rx, ry, rot, large, sweep, tx, ty) { - - var fromX = 0, fromY = 0, bound = [ ], bounds = [ ], - segs = arcToSegments(tx - fx, ty - fy, rx, ry, large, sweep, rot), - boundCopy = [[ ], [ ]]; - - for (var i = 0, len = segs.length; i < len; i++) { - bound = getBoundsOfCurve(fromX, fromY, segs[i][0], segs[i][1], segs[i][2], segs[i][3], segs[i][4], segs[i][5]); - boundCopy[0].x = bound[0].x + fx; - boundCopy[0].y = bound[0].y + fy; - boundCopy[1].x = bound[1].x + fx; - boundCopy[1].y = bound[1].y + fy; - bounds.push(boundCopy[0]); - bounds.push(boundCopy[1]); - fromX = segs[i][4]; - fromY = segs[i][5]; - } - return bounds; - }; - - /** - * Calculate bounding box of a beziercurve - * @param {Number} x0 starting point - * @param {Number} y0 - * @param {Number} x1 first control point - * @param {Number} y1 - * @param {Number} x2 secondo control point - * @param {Number} y2 - * @param {Number} x3 end of beizer - * @param {Number} y3 - */ - // taken from http://jsbin.com/ivomiq/56/edit no credits available for that. - function getBoundsOfCurve(x0, y0, x1, y1, x2, y2, x3, y3) { - var argsString = _join.call(arguments); - if (boundsOfCurveCache[argsString]) { - return boundsOfCurveCache[argsString]; - } - - var sqrt = Math.sqrt, - min = Math.min, max = Math.max, - abs = Math.abs, tvalues = [ ], - bounds = [[ ], [ ]], - a, b, c, t, t1, t2, b2ac, sqrtb2ac; - - b = 6 * x0 - 12 * x1 + 6 * x2; - a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3; - c = 3 * x1 - 3 * x0; - - for (var i = 0; i < 2; ++i) { - if (i > 0) { - b = 6 * y0 - 12 * y1 + 6 * y2; - a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3; - c = 3 * y1 - 3 * y0; - } - - if (abs(a) < 1e-12) { - if (abs(b) < 1e-12) { - continue; - } - t = -c / b; - if (0 < t && t < 1) { - tvalues.push(t); - } - continue; - } - b2ac = b * b - 4 * c * a; - if (b2ac < 0) { - continue; - } - sqrtb2ac = sqrt(b2ac); - t1 = (-b + sqrtb2ac) / (2 * a); - if (0 < t1 && t1 < 1) { - tvalues.push(t1); - } - t2 = (-b - sqrtb2ac) / (2 * a); - if (0 < t2 && t2 < 1) { - tvalues.push(t2); - } - } - - var x, y, j = tvalues.length, jlen = j, mt; - while (j--) { - t = tvalues[j]; - mt = 1 - t; - x = (mt * mt * mt * x0) + (3 * mt * mt * t * x1) + (3 * mt * t * t * x2) + (t * t * t * x3); - bounds[0][j] = x; - - y = (mt * mt * mt * y0) + (3 * mt * mt * t * y1) + (3 * mt * t * t * y2) + (t * t * t * y3); - bounds[1][j] = y; - } - - bounds[0][jlen] = x0; - bounds[1][jlen] = y0; - bounds[0][jlen + 1] = x3; - bounds[1][jlen + 1] = y3; - var result = [ - { - x: min.apply(null, bounds[0]), - y: min.apply(null, bounds[1]) - }, - { - x: max.apply(null, bounds[0]), - y: max.apply(null, bounds[1]) - } - ]; - boundsOfCurveCache[argsString] = result; - return result; - } - - fabric.util.getBoundsOfCurve = getBoundsOfCurve; - -})(); - - -(function() { - - var slice = Array.prototype.slice; - - /* _ES5_COMPAT_START_ */ - - if (!Array.prototype.indexOf) { - /** - * Finds index of an element in an array - * @param {Any} searchElement - * @param {Number} [fromIndex] - * @return {Number} - */ - Array.prototype.indexOf = function (searchElement /*, fromIndex */ ) { - if (this === void 0 || this === null) { - throw new TypeError(); - } - var t = Object(this), len = t.length >>> 0; - if (len === 0) { - return -1; - } - var n = 0; - if (arguments.length > 0) { - n = Number(arguments[1]); - if (n !== n) { // shortcut for verifying if it's NaN - n = 0; - } - else if (n !== 0 && n !== Number.POSITIVE_INFINITY && n !== Number.NEGATIVE_INFINITY) { - n = (n > 0 || -1) * Math.floor(Math.abs(n)); - } - } - if (n >= len) { - return -1; - } - var k = n >= 0 ? n : Math.max(len - Math.abs(n), 0); - for (; k < len; k++) { - if (k in t && t[k] === searchElement) { - return k; - } - } - return -1; - }; - } - - if (!Array.prototype.forEach) { - /** - * Iterates an array, invoking callback for each element - * @param {Function} fn Callback to invoke for each element - * @param {Object} [context] Context to invoke callback in - * @return {Array} - */ - Array.prototype.forEach = function(fn, context) { - for (var i = 0, len = this.length >>> 0; i < len; i++) { - if (i in this) { - fn.call(context, this[i], i, this); - } - } - }; - } - - if (!Array.prototype.map) { - /** - * Returns a result of iterating over an array, invoking callback for each element - * @param {Function} fn Callback to invoke for each element - * @param {Object} [context] Context to invoke callback in - * @return {Array} - */ - Array.prototype.map = function(fn, context) { - var result = [ ]; - for (var i = 0, len = this.length >>> 0; i < len; i++) { - if (i in this) { - result[i] = fn.call(context, this[i], i, this); - } - } - return result; - }; - } - - if (!Array.prototype.every) { - /** - * Returns true if a callback returns truthy value for all elements in an array - * @param {Function} fn Callback to invoke for each element - * @param {Object} [context] Context to invoke callback in - * @return {Boolean} - */ - Array.prototype.every = function(fn, context) { - for (var i = 0, len = this.length >>> 0; i < len; i++) { - if (i in this && !fn.call(context, this[i], i, this)) { - return false; - } - } - return true; - }; - } - - if (!Array.prototype.some) { - /** - * Returns true if a callback returns truthy value for at least one element in an array - * @param {Function} fn Callback to invoke for each element - * @param {Object} [context] Context to invoke callback in - * @return {Boolean} - */ - Array.prototype.some = function(fn, context) { - for (var i = 0, len = this.length >>> 0; i < len; i++) { - if (i in this && fn.call(context, this[i], i, this)) { - return true; - } - } - return false; - }; - } - - if (!Array.prototype.filter) { - /** - * Returns the result of iterating over elements in an array - * @param {Function} fn Callback to invoke for each element - * @param {Object} [context] Context to invoke callback in - * @return {Array} - */ - Array.prototype.filter = function(fn, context) { - var result = [ ], val; - for (var i = 0, len = this.length >>> 0; i < len; i++) { - if (i in this) { - val = this[i]; // in case fn mutates this - if (fn.call(context, val, i, this)) { - result.push(val); - } - } - } - return result; - }; - } - - if (!Array.prototype.reduce) { - /** - * Returns "folded" (reduced) result of iterating over elements in an array - * @param {Function} fn Callback to invoke for each element - * @param {Object} [initial] Object to use as the first argument to the first call of the callback - * @return {Any} - */ - Array.prototype.reduce = function(fn /*, initial*/) { - var len = this.length >>> 0, - i = 0, - rv; - - if (arguments.length > 1) { - rv = arguments[1]; - } - else { - do { - if (i in this) { - rv = this[i++]; - break; - } - // if array contains no values, no initial value to return - if (++i >= len) { - throw new TypeError(); - } - } - while (true); - } - for (; i < len; i++) { - if (i in this) { - rv = fn.call(null, rv, this[i], i, this); - } - } - return rv; - }; - } - - /* _ES5_COMPAT_END_ */ - - /** - * Invokes method on all items in a given array - * @memberOf fabric.util.array - * @param {Array} array Array to iterate over - * @param {String} method Name of a method to invoke - * @return {Array} - */ - function invoke(array, method) { - var args = slice.call(arguments, 2), result = [ ]; - for (var i = 0, len = array.length; i < len; i++) { - result[i] = args.length ? array[i][method].apply(array[i], args) : array[i][method].call(array[i]); - } - return result; - } - - /** - * Finds maximum value in array (not necessarily "first" one) - * @memberOf fabric.util.array - * @param {Array} array Array to iterate over - * @param {String} byProperty - * @return {Any} - */ - function max(array, byProperty) { - return find(array, byProperty, function(value1, value2) { - return value1 >= value2; - }); - } - - /** - * Finds minimum value in array (not necessarily "first" one) - * @memberOf fabric.util.array - * @param {Array} array Array to iterate over - * @param {String} byProperty - * @return {Any} - */ - function min(array, byProperty) { - return find(array, byProperty, function(value1, value2) { - return value1 < value2; - }); - } - - /** - * @private - */ - function find(array, byProperty, condition) { - if (!array || array.length === 0) { - return; - } - - var i = array.length - 1, - result = byProperty ? array[i][byProperty] : array[i]; - if (byProperty) { - while (i--) { - if (condition(array[i][byProperty], result)) { - result = array[i][byProperty]; - } - } - } - else { - while (i--) { - if (condition(array[i], result)) { - result = array[i]; - } - } - } - return result; - } - - /** - * @namespace fabric.util.array - */ - fabric.util.array = { - invoke: invoke, - min: min, - max: max - }; - -})(); - - -(function() { - - /** - * Copies all enumerable properties of one object to another - * @memberOf fabric.util.object - * @param {Object} destination Where to copy to - * @param {Object} source Where to copy from - * @return {Object} - */ - function extend(destination, source) { - // JScript DontEnum bug is not taken care of - for (var property in source) { - destination[property] = source[property]; - } - return destination; - } - - /** - * Creates an empty object and copies all enumerable properties of another object to it - * @memberOf fabric.util.object - * @param {Object} object Object to clone - * @return {Object} - */ - function clone(object) { - return extend({ }, object); - } - - /** @namespace fabric.util.object */ - fabric.util.object = { - extend: extend, - clone: clone - }; - -})(); - - -(function() { - - /* _ES5_COMPAT_START_ */ - if (!String.prototype.trim) { - /** - * Trims a string (removing whitespace from the beginning and the end) - * @function external:String#trim - * @see String#trim on MDN - */ - String.prototype.trim = function () { - // this trim is not fully ES3 or ES5 compliant, but it should cover most cases for now - return this.replace(/^[\s\xA0]+/, '').replace(/[\s\xA0]+$/, ''); - }; - } - /* _ES5_COMPAT_END_ */ - - /** - * Camelizes a string - * @memberOf fabric.util.string - * @param {String} string String to camelize - * @return {String} Camelized version of a string - */ - function camelize(string) { - return string.replace(/-+(.)?/g, function(match, character) { - return character ? character.toUpperCase() : ''; - }); - } - - /** - * Capitalizes a string - * @memberOf fabric.util.string - * @param {String} string String to capitalize - * @param {Boolean} [firstLetterOnly] If true only first letter is capitalized - * and other letters stay untouched, if false first letter is capitalized - * and other letters are converted to lowercase. - * @return {String} Capitalized version of a string - */ - function capitalize(string, firstLetterOnly) { - return string.charAt(0).toUpperCase() + - (firstLetterOnly ? string.slice(1) : string.slice(1).toLowerCase()); - } - - /** - * Escapes XML in a string - * @memberOf fabric.util.string - * @param {String} string String to escape - * @return {String} Escaped version of a string - */ - function escapeXml(string) { - return string.replace(/&/g, '&') - .replace(/"/g, '"') - .replace(/'/g, ''') - .replace(//g, '>'); - } - - /** - * String utilities - * @namespace fabric.util.string - */ - fabric.util.string = { - camelize: camelize, - capitalize: capitalize, - escapeXml: escapeXml - }; -}()); - - -/* _ES5_COMPAT_START_ */ -(function() { - - var slice = Array.prototype.slice, - apply = Function.prototype.apply, - Dummy = function() { }; - - if (!Function.prototype.bind) { - /** - * Cross-browser approximation of ES5 Function.prototype.bind (not fully spec conforming) - * @see Function#bind on MDN - * @param {Object} thisArg Object to bind function to - * @param {Any[]} [...] Values to pass to a bound function - * @return {Function} - */ - Function.prototype.bind = function(thisArg) { - var _this = this, args = slice.call(arguments, 1), bound; - if (args.length) { - bound = function() { - return apply.call(_this, this instanceof Dummy ? this : thisArg, args.concat(slice.call(arguments))); - }; - } - else { - /** @ignore */ - bound = function() { - return apply.call(_this, this instanceof Dummy ? this : thisArg, arguments); - }; - } - Dummy.prototype = this.prototype; - bound.prototype = new Dummy(); - - return bound; - }; - } - -})(); -/* _ES5_COMPAT_END_ */ - - -(function() { - - var slice = Array.prototype.slice, emptyFunction = function() { }, - - IS_DONTENUM_BUGGY = (function() { - for (var p in { toString: 1 }) { - if (p === 'toString') { - return false; - } - } - return true; - })(), - - /** @ignore */ - addMethods = function(klass, source, parent) { - for (var property in source) { - - if (property in klass.prototype && - typeof klass.prototype[property] === 'function' && - (source[property] + '').indexOf('callSuper') > -1) { - - klass.prototype[property] = (function(property) { - return function() { - - var superclass = this.constructor.superclass; - this.constructor.superclass = parent; - var returnValue = source[property].apply(this, arguments); - this.constructor.superclass = superclass; - - if (property !== 'initialize') { - return returnValue; - } - }; - })(property); - } - else { - klass.prototype[property] = source[property]; - } - - if (IS_DONTENUM_BUGGY) { - if (source.toString !== Object.prototype.toString) { - klass.prototype.toString = source.toString; - } - if (source.valueOf !== Object.prototype.valueOf) { - klass.prototype.valueOf = source.valueOf; - } - } - } - }; - - function Subclass() { } - - function callSuper(methodName) { - var fn = this.constructor.superclass.prototype[methodName]; - return (arguments.length > 1) - ? fn.apply(this, slice.call(arguments, 1)) - : fn.call(this); - } - - /** - * Helper for creation of "classes". - * @memberOf fabric.util - * @param {Function} [parent] optional "Class" to inherit from - * @param {Object} [properties] Properties shared by all instances of this class - * (be careful modifying objects defined here as this would affect all instances) - */ - function createClass() { - var parent = null, - properties = slice.call(arguments, 0); - - if (typeof properties[0] === 'function') { - parent = properties.shift(); - } - function klass() { - this.initialize.apply(this, arguments); - } - - klass.superclass = parent; - klass.subclasses = [ ]; - - if (parent) { - Subclass.prototype = parent.prototype; - klass.prototype = new Subclass(); - parent.subclasses.push(klass); - } - for (var i = 0, length = properties.length; i < length; i++) { - addMethods(klass, properties[i], parent); - } - if (!klass.prototype.initialize) { - klass.prototype.initialize = emptyFunction; - } - klass.prototype.constructor = klass; - klass.prototype.callSuper = callSuper; - return klass; - } - - fabric.util.createClass = createClass; -})(); - - -(function () { - - var unknown = 'unknown'; - - /* EVENT HANDLING */ - - function areHostMethods(object) { - var methodNames = Array.prototype.slice.call(arguments, 1), - t, i, len = methodNames.length; - for (i = 0; i < len; i++) { - t = typeof object[methodNames[i]]; - if (!(/^(?:function|object|unknown)$/).test(t)) { - return false; - } - } - return true; - } - - /** @ignore */ - var getElement, - setElement, - getUniqueId = (function () { - var uid = 0; - return function (element) { - return element.__uniqueID || (element.__uniqueID = 'uniqueID__' + uid++); - }; - })(); - - (function () { - var elements = { }; - /** @ignore */ - getElement = function (uid) { - return elements[uid]; - }; - /** @ignore */ - setElement = function (uid, element) { - elements[uid] = element; - }; - })(); - - function createListener(uid, handler) { - return { - handler: handler, - wrappedHandler: createWrappedHandler(uid, handler) - }; - } - - function createWrappedHandler(uid, handler) { - return function (e) { - handler.call(getElement(uid), e || fabric.window.event); - }; - } - - function createDispatcher(uid, eventName) { - return function (e) { - if (handlers[uid] && handlers[uid][eventName]) { - var handlersForEvent = handlers[uid][eventName]; - for (var i = 0, len = handlersForEvent.length; i < len; i++) { - handlersForEvent[i].call(this, e || fabric.window.event); - } - } - }; - } - - var shouldUseAddListenerRemoveListener = ( - areHostMethods(fabric.document.documentElement, 'addEventListener', 'removeEventListener') && - areHostMethods(fabric.window, 'addEventListener', 'removeEventListener')), - - shouldUseAttachEventDetachEvent = ( - areHostMethods(fabric.document.documentElement, 'attachEvent', 'detachEvent') && - areHostMethods(fabric.window, 'attachEvent', 'detachEvent')), - - // IE branch - listeners = { }, - - // DOM L0 branch - handlers = { }, - - addListener, removeListener; - - if (shouldUseAddListenerRemoveListener) { - /** @ignore */ - addListener = function (element, eventName, handler) { - element.addEventListener(eventName, handler, false); - }; - /** @ignore */ - removeListener = function (element, eventName, handler) { - element.removeEventListener(eventName, handler, false); - }; - } - - else if (shouldUseAttachEventDetachEvent) { - /** @ignore */ - addListener = function (element, eventName, handler) { - var uid = getUniqueId(element); - setElement(uid, element); - if (!listeners[uid]) { - listeners[uid] = { }; - } - if (!listeners[uid][eventName]) { - listeners[uid][eventName] = [ ]; - - } - var listener = createListener(uid, handler); - listeners[uid][eventName].push(listener); - element.attachEvent('on' + eventName, listener.wrappedHandler); - }; - /** @ignore */ - removeListener = function (element, eventName, handler) { - var uid = getUniqueId(element), listener; - if (listeners[uid] && listeners[uid][eventName]) { - for (var i = 0, len = listeners[uid][eventName].length; i < len; i++) { - listener = listeners[uid][eventName][i]; - if (listener && listener.handler === handler) { - element.detachEvent('on' + eventName, listener.wrappedHandler); - listeners[uid][eventName][i] = null; - } - } - } - }; - } - else { - /** @ignore */ - addListener = function (element, eventName, handler) { - var uid = getUniqueId(element); - if (!handlers[uid]) { - handlers[uid] = { }; - } - if (!handlers[uid][eventName]) { - handlers[uid][eventName] = [ ]; - var existingHandler = element['on' + eventName]; - if (existingHandler) { - handlers[uid][eventName].push(existingHandler); - } - element['on' + eventName] = createDispatcher(uid, eventName); - } - handlers[uid][eventName].push(handler); - }; - /** @ignore */ - removeListener = function (element, eventName, handler) { - var uid = getUniqueId(element); - if (handlers[uid] && handlers[uid][eventName]) { - var handlersForEvent = handlers[uid][eventName]; - for (var i = 0, len = handlersForEvent.length; i < len; i++) { - if (handlersForEvent[i] === handler) { - handlersForEvent.splice(i, 1); - } - } - } - }; - } - - /** - * Adds an event listener to an element - * @function - * @memberOf fabric.util - * @param {HTMLElement} element - * @param {String} eventName - * @param {Function} handler - */ - fabric.util.addListener = addListener; - - /** - * Removes an event listener from an element - * @function - * @memberOf fabric.util - * @param {HTMLElement} element - * @param {String} eventName - * @param {Function} handler - */ - fabric.util.removeListener = removeListener; - - /** - * Cross-browser wrapper for getting event's coordinates - * @memberOf fabric.util - * @param {Event} event Event object - * @param {HTMLCanvasElement} upperCanvasEl <canvas> element on which object selection is drawn - */ - function getPointer(event, upperCanvasEl) { - event || (event = fabric.window.event); - - var element = event.target || - (typeof event.srcElement !== unknown ? event.srcElement : null), - - scroll = fabric.util.getScrollLeftTop(element, upperCanvasEl); - - return { - x: pointerX(event) + scroll.left, - y: pointerY(event) + scroll.top - }; - } - - var pointerX = function(event) { - // looks like in IE (<9) clientX at certain point (apparently when mouseup fires on VML element) - // is represented as COM object, with all the consequences, like "unknown" type and error on [[Get]] - // need to investigate later - return (typeof event.clientX !== unknown ? event.clientX : 0); - }, - - pointerY = function(event) { - return (typeof event.clientY !== unknown ? event.clientY : 0); - }; - - function _getPointer(event, pageProp, clientProp) { - var touchProp = event.type === 'touchend' ? 'changedTouches' : 'touches'; - - return (event[touchProp] && event[touchProp][0] - ? (event[touchProp][0][pageProp] - (event[touchProp][0][pageProp] - event[touchProp][0][clientProp])) - || event[clientProp] - : event[clientProp]); - } - - if (fabric.isTouchSupported) { - pointerX = function(event) { - return _getPointer(event, 'pageX', 'clientX'); - }; - pointerY = function(event) { - return _getPointer(event, 'pageY', 'clientY'); - }; - } - - fabric.util.getPointer = getPointer; - - fabric.util.object.extend(fabric.util, fabric.Observable); - -})(); - - -(function () { - - /** - * Cross-browser wrapper for setting element's style - * @memberOf fabric.util - * @param {HTMLElement} element - * @param {Object} styles - * @return {HTMLElement} Element that was passed as a first argument - */ - function setStyle(element, styles) { - var elementStyle = element.style; - if (!elementStyle) { - return element; - } - if (typeof styles === 'string') { - element.style.cssText += ';' + styles; - return styles.indexOf('opacity') > -1 - ? setOpacity(element, styles.match(/opacity:\s*(\d?\.?\d*)/)[1]) - : element; - } - for (var property in styles) { - if (property === 'opacity') { - setOpacity(element, styles[property]); - } - else { - var normalizedProperty = (property === 'float' || property === 'cssFloat') - ? (typeof elementStyle.styleFloat === 'undefined' ? 'cssFloat' : 'styleFloat') - : property; - elementStyle[normalizedProperty] = styles[property]; - } - } - return element; - } - - var parseEl = fabric.document.createElement('div'), - supportsOpacity = typeof parseEl.style.opacity === 'string', - supportsFilters = typeof parseEl.style.filter === 'string', - reOpacity = /alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/, - - /** @ignore */ - setOpacity = function (element) { return element; }; - - if (supportsOpacity) { - /** @ignore */ - setOpacity = function(element, value) { - element.style.opacity = value; - return element; - }; - } - else if (supportsFilters) { - /** @ignore */ - setOpacity = function(element, value) { - var es = element.style; - if (element.currentStyle && !element.currentStyle.hasLayout) { - es.zoom = 1; - } - if (reOpacity.test(es.filter)) { - value = value >= 0.9999 ? '' : ('alpha(opacity=' + (value * 100) + ')'); - es.filter = es.filter.replace(reOpacity, value); - } - else { - es.filter += ' alpha(opacity=' + (value * 100) + ')'; - } - return element; - }; - } - - fabric.util.setStyle = setStyle; - -})(); - - -(function() { - - var _slice = Array.prototype.slice; - - /** - * Takes id and returns an element with that id (if one exists in a document) - * @memberOf fabric.util - * @param {String|HTMLElement} id - * @return {HTMLElement|null} - */ - function getById(id) { - return typeof id === 'string' ? fabric.document.getElementById(id) : id; - } - - var sliceCanConvertNodelists, - /** - * Converts an array-like object (e.g. arguments or NodeList) to an array - * @memberOf fabric.util - * @param {Object} arrayLike - * @return {Array} - */ - toArray = function(arrayLike) { - return _slice.call(arrayLike, 0); - }; - - try { - sliceCanConvertNodelists = toArray(fabric.document.childNodes) instanceof Array; - } - catch (err) { } - - if (!sliceCanConvertNodelists) { - toArray = function(arrayLike) { - var arr = new Array(arrayLike.length), i = arrayLike.length; - while (i--) { - arr[i] = arrayLike[i]; - } - return arr; - }; - } - - /** - * Creates specified element with specified attributes - * @memberOf fabric.util - * @param {String} tagName Type of an element to create - * @param {Object} [attributes] Attributes to set on an element - * @return {HTMLElement} Newly created element - */ - function makeElement(tagName, attributes) { - var el = fabric.document.createElement(tagName); - for (var prop in attributes) { - if (prop === 'class') { - el.className = attributes[prop]; - } - else if (prop === 'for') { - el.htmlFor = attributes[prop]; - } - else { - el.setAttribute(prop, attributes[prop]); - } - } - return el; - } - - /** - * Adds class to an element - * @memberOf fabric.util - * @param {HTMLElement} element Element to add class to - * @param {String} className Class to add to an element - */ - function addClass(element, className) { - if (element && (' ' + element.className + ' ').indexOf(' ' + className + ' ') === -1) { - element.className += (element.className ? ' ' : '') + className; - } - } - - /** - * Wraps element with another element - * @memberOf fabric.util - * @param {HTMLElement} element Element to wrap - * @param {HTMLElement|String} wrapper Element to wrap with - * @param {Object} [attributes] Attributes to set on a wrapper - * @return {HTMLElement} wrapper - */ - function wrapElement(element, wrapper, attributes) { - if (typeof wrapper === 'string') { - wrapper = makeElement(wrapper, attributes); - } - if (element.parentNode) { - element.parentNode.replaceChild(wrapper, element); - } - wrapper.appendChild(element); - return wrapper; - } - - /** - * Returns element scroll offsets - * @memberOf fabric.util - * @param {HTMLElement} element Element to operate on - * @param {HTMLElement} upperCanvasEl Upper canvas element - * @return {Object} Object with left/top values - */ - function getScrollLeftTop(element, upperCanvasEl) { - - var firstFixedAncestor, - origElement, - left = 0, - top = 0, - docElement = fabric.document.documentElement, - body = fabric.document.body || { - scrollLeft: 0, scrollTop: 0 - }; - - origElement = element; - - while (element && element.parentNode && !firstFixedAncestor) { - - element = element.parentNode; - - if (element.nodeType === 1 && - fabric.util.getElementStyle(element, 'position') === 'fixed') { - firstFixedAncestor = element; - } - - if (element.nodeType === 1 && - origElement !== upperCanvasEl && - fabric.util.getElementStyle(element, 'position') === 'absolute') { - left = 0; - top = 0; - } - else if (element === fabric.document) { - left = body.scrollLeft || docElement.scrollLeft || 0; - top = body.scrollTop || docElement.scrollTop || 0; - } - else { - left += element.scrollLeft || 0; - top += element.scrollTop || 0; - } - } - - return { left: left, top: top }; - } - - /** - * Returns offset for a given element - * @function - * @memberOf fabric.util - * @param {HTMLElement} element Element to get offset for - * @return {Object} Object with "left" and "top" properties - */ - function getElementOffset(element) { - var docElem, - doc = element && element.ownerDocument, - box = { left: 0, top: 0 }, - offset = { left: 0, top: 0 }, - scrollLeftTop, - offsetAttributes = { - borderLeftWidth: 'left', - borderTopWidth: 'top', - paddingLeft: 'left', - paddingTop: 'top' - }; - - if (!doc) { - return { left: 0, top: 0 }; - } - - for (var attr in offsetAttributes) { - offset[offsetAttributes[attr]] += parseInt(getElementStyle(element, attr), 10) || 0; - } - - docElem = doc.documentElement; - if ( typeof element.getBoundingClientRect !== 'undefined' ) { - box = element.getBoundingClientRect(); - } - - scrollLeftTop = fabric.util.getScrollLeftTop(element, null); - - return { - left: box.left + scrollLeftTop.left - (docElem.clientLeft || 0) + offset.left, - top: box.top + scrollLeftTop.top - (docElem.clientTop || 0) + offset.top - }; - } - - /** - * Returns style attribute value of a given element - * @memberOf fabric.util - * @param {HTMLElement} element Element to get style attribute for - * @param {String} attr Style attribute to get for element - * @return {String} Style attribute value of the given element. - */ - var getElementStyle; - if (fabric.document.defaultView && fabric.document.defaultView.getComputedStyle) { - getElementStyle = function(element, attr) { - var style = fabric.document.defaultView.getComputedStyle(element, null); - return style ? style[attr] : undefined; - }; - } - else { - getElementStyle = function(element, attr) { - var value = element.style[attr]; - if (!value && element.currentStyle) { - value = element.currentStyle[attr]; - } - return value; - }; - } - - (function () { - var style = fabric.document.documentElement.style, - selectProp = 'userSelect' in style - ? 'userSelect' - : 'MozUserSelect' in style - ? 'MozUserSelect' - : 'WebkitUserSelect' in style - ? 'WebkitUserSelect' - : 'KhtmlUserSelect' in style - ? 'KhtmlUserSelect' - : ''; - - /** - * Makes element unselectable - * @memberOf fabric.util - * @param {HTMLElement} element Element to make unselectable - * @return {HTMLElement} Element that was passed in - */ - function makeElementUnselectable(element) { - if (typeof element.onselectstart !== 'undefined') { - element.onselectstart = fabric.util.falseFunction; - } - if (selectProp) { - element.style[selectProp] = 'none'; - } - else if (typeof element.unselectable === 'string') { - element.unselectable = 'on'; - } - return element; - } - - /** - * Makes element selectable - * @memberOf fabric.util - * @param {HTMLElement} element Element to make selectable - * @return {HTMLElement} Element that was passed in - */ - function makeElementSelectable(element) { - if (typeof element.onselectstart !== 'undefined') { - element.onselectstart = null; - } - if (selectProp) { - element.style[selectProp] = ''; - } - else if (typeof element.unselectable === 'string') { - element.unselectable = ''; - } - return element; - } - - fabric.util.makeElementUnselectable = makeElementUnselectable; - fabric.util.makeElementSelectable = makeElementSelectable; - })(); - - (function() { - - /** - * Inserts a script element with a given url into a document; invokes callback, when that script is finished loading - * @memberOf fabric.util - * @param {String} url URL of a script to load - * @param {Function} callback Callback to execute when script is finished loading - */ - function getScript(url, callback) { - var headEl = fabric.document.getElementsByTagName('head')[0], - scriptEl = fabric.document.createElement('script'), - loading = true; - - /** @ignore */ - scriptEl.onload = /** @ignore */ scriptEl.onreadystatechange = function(e) { - if (loading) { - if (typeof this.readyState === 'string' && - this.readyState !== 'loaded' && - this.readyState !== 'complete') { - return; - } - loading = false; - callback(e || fabric.window.event); - scriptEl = scriptEl.onload = scriptEl.onreadystatechange = null; - } - }; - scriptEl.src = url; - headEl.appendChild(scriptEl); - // causes issue in Opera - // headEl.removeChild(scriptEl); - } - - fabric.util.getScript = getScript; - })(); - - fabric.util.getById = getById; - fabric.util.toArray = toArray; - fabric.util.makeElement = makeElement; - fabric.util.addClass = addClass; - fabric.util.wrapElement = wrapElement; - fabric.util.getScrollLeftTop = getScrollLeftTop; - fabric.util.getElementOffset = getElementOffset; - fabric.util.getElementStyle = getElementStyle; - -})(); - - -(function() { - - function addParamToUrl(url, param) { - return url + (/\?/.test(url) ? '&' : '?') + param; - } - - var makeXHR = (function() { - var factories = [ - function() { return new ActiveXObject('Microsoft.XMLHTTP'); }, - function() { return new ActiveXObject('Msxml2.XMLHTTP'); }, - function() { return new ActiveXObject('Msxml2.XMLHTTP.3.0'); }, - function() { return new XMLHttpRequest(); } - ]; - for (var i = factories.length; i--; ) { - try { - var req = factories[i](); - if (req) { - return factories[i]; - } - } - catch (err) { } - } - })(); - - function emptyFn() { } - - /** - * Cross-browser abstraction for sending XMLHttpRequest - * @memberOf fabric.util - * @param {String} url URL to send XMLHttpRequest to - * @param {Object} [options] Options object - * @param {String} [options.method="GET"] - * @param {Function} options.onComplete Callback to invoke when request is completed - * @return {XMLHttpRequest} request - */ - function request(url, options) { - - options || (options = { }); - - var method = options.method ? options.method.toUpperCase() : 'GET', - onComplete = options.onComplete || function() { }, - xhr = makeXHR(), - body; - - /** @ignore */ - xhr.onreadystatechange = function() { - if (xhr.readyState === 4) { - onComplete(xhr); - xhr.onreadystatechange = emptyFn; - } - }; - - if (method === 'GET') { - body = null; - if (typeof options.parameters === 'string') { - url = addParamToUrl(url, options.parameters); - } - } - - xhr.open(method, url, true); - - if (method === 'POST' || method === 'PUT') { - xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); - } - - xhr.send(body); - return xhr; - } - - fabric.util.request = request; -})(); - - -/** - * Wrapper around `console.log` (when available) - * @param {Any} [values] Values to log - */ -fabric.log = function() { }; - -/** - * Wrapper around `console.warn` (when available) - * @param {Any} [values] Values to log as a warning - */ -fabric.warn = function() { }; - -if (typeof console !== 'undefined') { - - ['log', 'warn'].forEach(function(methodName) { - - if (typeof console[methodName] !== 'undefined' && - typeof console[methodName].apply === 'function') { - - fabric[methodName] = function() { - return console[methodName].apply(console, arguments); - }; - } - }); -} - - -(function() { - - /** - * Changes value from one to another within certain period of time, invoking callbacks as value is being changed. - * @memberOf fabric.util - * @param {Object} [options] Animation options - * @param {Function} [options.onChange] Callback; invoked on every value change - * @param {Function} [options.onComplete] Callback; invoked when value change is completed - * @param {Number} [options.startValue=0] Starting value - * @param {Number} [options.endValue=100] Ending value - * @param {Number} [options.byValue=100] Value to modify the property by - * @param {Function} [options.easing] Easing function - * @param {Number} [options.duration=500] Duration of change (in ms) - */ - function animate(options) { - - requestAnimFrame(function(timestamp) { - options || (options = { }); - - var start = timestamp || +new Date(), - duration = options.duration || 500, - finish = start + duration, time, - onChange = options.onChange || function() { }, - abort = options.abort || function() { return false; }, - easing = options.easing || function(t, b, c, d) {return -c * Math.cos(t / d * (Math.PI / 2)) + c + b;}, - startValue = 'startValue' in options ? options.startValue : 0, - endValue = 'endValue' in options ? options.endValue : 100, - byValue = options.byValue || endValue - startValue; - - options.onStart && options.onStart(); - - (function tick(ticktime) { - time = ticktime || +new Date(); - var currentTime = time > finish ? duration : (time - start); - if (abort()) { - options.onComplete && options.onComplete(); - return; - } - onChange(easing(currentTime, startValue, byValue, duration)); - if (time > finish) { - options.onComplete && options.onComplete(); - return; - } - requestAnimFrame(tick); - })(start); - }); - - } - - var _requestAnimFrame = fabric.window.requestAnimationFrame || - fabric.window.webkitRequestAnimationFrame || - fabric.window.mozRequestAnimationFrame || - fabric.window.oRequestAnimationFrame || - fabric.window.msRequestAnimationFrame || - function(callback) { - fabric.window.setTimeout(callback, 1000 / 60); - }; - /** - * requestAnimationFrame polyfill based on http://paulirish.com/2011/requestanimationframe-for-smart-animating/ - * In order to get a precise start time, `requestAnimFrame` should be called as an entry into the method - * @memberOf fabric.util - * @param {Function} callback Callback to invoke - * @param {DOMElement} element optional Element to associate with animation - */ - function requestAnimFrame() { - return _requestAnimFrame.apply(fabric.window, arguments); - } - - fabric.util.animate = animate; - fabric.util.requestAnimFrame = requestAnimFrame; - -})(); - - -(function() { - - function normalize(a, c, p, s) { - if (a < Math.abs(c)) { - a = c; - s = p / 4; - } - else { - s = p / (2 * Math.PI) * Math.asin(c / a); - } - return { a: a, c: c, p: p, s: s }; - } - - function elastic(opts, t, d) { - return opts.a * - Math.pow(2, 10 * (t -= 1)) * - Math.sin( (t * d - opts.s) * (2 * Math.PI) / opts.p ); - } - - /** - * Cubic easing out - * @memberOf fabric.util.ease - */ - function easeOutCubic(t, b, c, d) { - return c * ((t = t / d - 1) * t * t + 1) + b; - } - - /** - * Cubic easing in and out - * @memberOf fabric.util.ease - */ - function easeInOutCubic(t, b, c, d) { - t /= d/2; - if (t < 1) { - return c / 2 * t * t * t + b; - } - return c / 2 * ((t -= 2) * t * t + 2) + b; - } - - /** - * Quartic easing in - * @memberOf fabric.util.ease - */ - function easeInQuart(t, b, c, d) { - return c * (t /= d) * t * t * t + b; - } - - /** - * Quartic easing out - * @memberOf fabric.util.ease - */ - function easeOutQuart(t, b, c, d) { - return -c * ((t = t / d - 1) * t * t * t - 1) + b; - } - - /** - * Quartic easing in and out - * @memberOf fabric.util.ease - */ - function easeInOutQuart(t, b, c, d) { - t /= d / 2; - if (t < 1) { - return c / 2 * t * t * t * t + b; - } - return -c / 2 * ((t -= 2) * t * t * t - 2) + b; - } - - /** - * Quintic easing in - * @memberOf fabric.util.ease - */ - function easeInQuint(t, b, c, d) { - return c * (t /= d) * t * t * t * t + b; - } - - /** - * Quintic easing out - * @memberOf fabric.util.ease - */ - function easeOutQuint(t, b, c, d) { - return c * ((t = t / d - 1) * t * t * t * t + 1) + b; - } - - /** - * Quintic easing in and out - * @memberOf fabric.util.ease - */ - function easeInOutQuint(t, b, c, d) { - t /= d / 2; - if (t < 1) { - return c / 2 * t * t * t * t * t + b; - } - return c / 2 * ((t -= 2) * t * t * t * t + 2) + b; - } - - /** - * Sinusoidal easing in - * @memberOf fabric.util.ease - */ - function easeInSine(t, b, c, d) { - return -c * Math.cos(t / d * (Math.PI / 2)) + c + b; - } - - /** - * Sinusoidal easing out - * @memberOf fabric.util.ease - */ - function easeOutSine(t, b, c, d) { - return c * Math.sin(t / d * (Math.PI / 2)) + b; - } - - /** - * Sinusoidal easing in and out - * @memberOf fabric.util.ease - */ - function easeInOutSine(t, b, c, d) { - return -c / 2 * (Math.cos(Math.PI * t / d) - 1) + b; - } - - /** - * Exponential easing in - * @memberOf fabric.util.ease - */ - function easeInExpo(t, b, c, d) { - return (t === 0) ? b : c * Math.pow(2, 10 * (t / d - 1)) + b; - } - - /** - * Exponential easing out - * @memberOf fabric.util.ease - */ - function easeOutExpo(t, b, c, d) { - return (t === d) ? b + c : c * (-Math.pow(2, -10 * t / d) + 1) + b; - } - - /** - * Exponential easing in and out - * @memberOf fabric.util.ease - */ - function easeInOutExpo(t, b, c, d) { - if (t === 0) { - return b; - } - if (t === d) { - return b + c; - } - t /= d / 2; - if (t < 1) { - return c / 2 * Math.pow(2, 10 * (t - 1)) + b; - } - return c / 2 * (-Math.pow(2, -10 * --t) + 2) + b; - } - - /** - * Circular easing in - * @memberOf fabric.util.ease - */ - function easeInCirc(t, b, c, d) { - return -c * (Math.sqrt(1 - (t /= d) * t) - 1) + b; - } - - /** - * Circular easing out - * @memberOf fabric.util.ease - */ - function easeOutCirc(t, b, c, d) { - return c * Math.sqrt(1 - (t = t / d - 1) * t) + b; - } - - /** - * Circular easing in and out - * @memberOf fabric.util.ease - */ - function easeInOutCirc(t, b, c, d) { - t /= d / 2; - if (t < 1) { - return -c / 2 * (Math.sqrt(1 - t * t) - 1) + b; - } - return c / 2 * (Math.sqrt(1 - (t -= 2) * t) + 1) + b; - } - - /** - * Elastic easing in - * @memberOf fabric.util.ease - */ - function easeInElastic(t, b, c, d) { - var s = 1.70158, p = 0, a = c; - if (t === 0) { - return b; - } - t /= d; - if (t === 1) { - return b + c; - } - if (!p) { - p = d * 0.3; - } - var opts = normalize(a, c, p, s); - return -elastic(opts, t, d) + b; - } - - /** - * Elastic easing out - * @memberOf fabric.util.ease - */ - function easeOutElastic(t, b, c, d) { - var s = 1.70158, p = 0, a = c; - if (t === 0) { - return b; - } - t /= d; - if (t === 1) { - return b + c; - } - if (!p) { - p = d * 0.3; - } - var opts = normalize(a, c, p, s); - return opts.a * Math.pow(2, -10 * t) * Math.sin((t * d - opts.s) * (2 * Math.PI) / opts.p ) + opts.c + b; - } - - /** - * Elastic easing in and out - * @memberOf fabric.util.ease - */ - function easeInOutElastic(t, b, c, d) { - var s = 1.70158, p = 0, a = c; - if (t === 0) { - return b; - } - t /= d / 2; - if (t === 2) { - return b + c; - } - if (!p) { - p = d * (0.3 * 1.5); - } - var opts = normalize(a, c, p, s); - if (t < 1) { - return -0.5 * elastic(opts, t, d) + b; - } - return opts.a * Math.pow(2, -10 * (t -= 1)) * - Math.sin((t * d - opts.s) * (2 * Math.PI) / opts.p ) * 0.5 + opts.c + b; - } - - /** - * Backwards easing in - * @memberOf fabric.util.ease - */ - function easeInBack(t, b, c, d, s) { - if (s === undefined) { - s = 1.70158; - } - return c * (t /= d) * t * ((s + 1) * t - s) + b; - } - - /** - * Backwards easing out - * @memberOf fabric.util.ease - */ - function easeOutBack(t, b, c, d, s) { - if (s === undefined) { - s = 1.70158; - } - return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b; - } - - /** - * Backwards easing in and out - * @memberOf fabric.util.ease - */ - function easeInOutBack(t, b, c, d, s) { - if (s === undefined) { - s = 1.70158; - } - t /= d / 2; - if (t < 1) { - return c / 2 * (t * t * (((s *= (1.525)) + 1) * t - s)) + b; - } - return c / 2 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2) + b; - } - - /** - * Bouncing easing in - * @memberOf fabric.util.ease - */ - function easeInBounce(t, b, c, d) { - return c - easeOutBounce (d - t, 0, c, d) + b; - } - - /** - * Bouncing easing out - * @memberOf fabric.util.ease - */ - function easeOutBounce(t, b, c, d) { - if ((t /= d) < (1 / 2.75)) { - return c * (7.5625 * t * t) + b; - } - else if (t < (2/2.75)) { - return c * (7.5625 * (t -= (1.5 / 2.75)) * t + 0.75) + b; - } - else if (t < (2.5/2.75)) { - return c * (7.5625 * (t -= (2.25 / 2.75)) * t + 0.9375) + b; - } - else { - return c * (7.5625 * (t -= (2.625 / 2.75)) * t + 0.984375) + b; - } - } - - /** - * Bouncing easing in and out - * @memberOf fabric.util.ease - */ - function easeInOutBounce(t, b, c, d) { - if (t < d / 2) { - return easeInBounce (t * 2, 0, c, d) * 0.5 + b; - } - return easeOutBounce(t * 2 - d, 0, c, d) * 0.5 + c * 0.5 + b; - } - - /** - * Easing functions - * See Easing Equations by Robert Penner - * @namespace fabric.util.ease - */ - fabric.util.ease = { - - /** - * Quadratic easing in - * @memberOf fabric.util.ease - */ - easeInQuad: function(t, b, c, d) { - return c * (t /= d) * t + b; - }, - - /** - * Quadratic easing out - * @memberOf fabric.util.ease - */ - easeOutQuad: function(t, b, c, d) { - return -c * (t /= d) * (t - 2) + b; - }, - - /** - * Quadratic easing in and out - * @memberOf fabric.util.ease - */ - easeInOutQuad: function(t, b, c, d) { - t /= (d / 2); - if (t < 1) { - return c / 2 * t * t + b; - } - return -c / 2 * ((--t) * (t - 2) - 1) + b; - }, - - /** - * Cubic easing in - * @memberOf fabric.util.ease - */ - easeInCubic: function(t, b, c, d) { - return c * (t /= d) * t * t + b; - }, - - easeOutCubic: easeOutCubic, - easeInOutCubic: easeInOutCubic, - easeInQuart: easeInQuart, - easeOutQuart: easeOutQuart, - easeInOutQuart: easeInOutQuart, - easeInQuint: easeInQuint, - easeOutQuint: easeOutQuint, - easeInOutQuint: easeInOutQuint, - easeInSine: easeInSine, - easeOutSine: easeOutSine, - easeInOutSine: easeInOutSine, - easeInExpo: easeInExpo, - easeOutExpo: easeOutExpo, - easeInOutExpo: easeInOutExpo, - easeInCirc: easeInCirc, - easeOutCirc: easeOutCirc, - easeInOutCirc: easeInOutCirc, - easeInElastic: easeInElastic, - easeOutElastic: easeOutElastic, - easeInOutElastic: easeInOutElastic, - easeInBack: easeInBack, - easeOutBack: easeOutBack, - easeInOutBack: easeInOutBack, - easeInBounce: easeInBounce, - easeOutBounce: easeOutBounce, - easeInOutBounce: easeInOutBounce - }; - -}()); - - -(function(global) { - - 'use strict'; - - /** - * @name fabric - * @namespace - */ - - var fabric = global.fabric || (global.fabric = { }), - extend = fabric.util.object.extend, - capitalize = fabric.util.string.capitalize, - clone = fabric.util.object.clone, - toFixed = fabric.util.toFixed, - parseUnit = fabric.util.parseUnit, - multiplyTransformMatrices = fabric.util.multiplyTransformMatrices, - - attributesMap = { - cx: 'left', - x: 'left', - r: 'radius', - cy: 'top', - y: 'top', - display: 'visible', - visibility: 'visible', - transform: 'transformMatrix', - 'fill-opacity': 'fillOpacity', - 'fill-rule': 'fillRule', - 'font-family': 'fontFamily', - 'font-size': 'fontSize', - 'font-style': 'fontStyle', - 'font-weight': 'fontWeight', - 'stroke-dasharray': 'strokeDashArray', - 'stroke-linecap': 'strokeLineCap', - 'stroke-linejoin': 'strokeLineJoin', - 'stroke-miterlimit': 'strokeMiterLimit', - 'stroke-opacity': 'strokeOpacity', - 'stroke-width': 'strokeWidth', - 'text-decoration': 'textDecoration', - 'text-anchor': 'originX' - }, - - colorAttributes = { - stroke: 'strokeOpacity', - fill: 'fillOpacity' - }; - - fabric.cssRules = { }; - fabric.gradientDefs = { }; - - function normalizeAttr(attr) { - // transform attribute names - if (attr in attributesMap) { - return attributesMap[attr]; - } - return attr; - } - - function normalizeValue(attr, value, parentAttributes, fontSize) { - var isArray = Object.prototype.toString.call(value) === '[object Array]', - parsed; - - if ((attr === 'fill' || attr === 'stroke') && value === 'none') { - value = ''; - } - else if (attr === 'strokeDashArray') { - value = value.replace(/,/g, ' ').split(/\s+/).map(function(n) { - return parseFloat(n); - }); - } - else if (attr === 'transformMatrix') { - if (parentAttributes && parentAttributes.transformMatrix) { - value = multiplyTransformMatrices( - parentAttributes.transformMatrix, fabric.parseTransformAttribute(value)); - } - else { - value = fabric.parseTransformAttribute(value); - } - } - else if (attr === 'visible') { - value = (value === 'none' || value === 'hidden') ? false : true; - // display=none on parent element always takes precedence over child element - if (parentAttributes && parentAttributes.visible === false) { - value = false; - } - } - else if (attr === 'originX' /* text-anchor */) { - value = value === 'start' ? 'left' : value === 'end' ? 'right' : 'center'; - } - else { - parsed = isArray ? value.map(parseUnit) : parseUnit(value, fontSize); - } - - return (!isArray && isNaN(parsed) ? value : parsed); - } - - /** - * @private - * @param {Object} attributes Array of attributes to parse - */ - function _setStrokeFillOpacity(attributes) { - for (var attr in colorAttributes) { - - if (!attributes[attr] || typeof attributes[colorAttributes[attr]] === 'undefined') { - continue; - } - - if (attributes[attr].indexOf('url(') === 0) { - continue; - } - - var color = new fabric.Color(attributes[attr]); - attributes[attr] = color.setAlpha(toFixed(color.getAlpha() * attributes[colorAttributes[attr]], 2)).toRgba(); - } - return attributes; - } - - /** - * Parses "transform" attribute, returning an array of values - * @static - * @function - * @memberOf fabric - * @param {String} attributeValue String containing attribute value - * @return {Array} Array of 6 elements representing transformation matrix - */ - fabric.parseTransformAttribute = (function() { - function rotateMatrix(matrix, args) { - var angle = args[0]; - - matrix[0] = Math.cos(angle); - matrix[1] = Math.sin(angle); - matrix[2] = -Math.sin(angle); - matrix[3] = Math.cos(angle); - } - - function scaleMatrix(matrix, args) { - var multiplierX = args[0], - multiplierY = (args.length === 2) ? args[1] : args[0]; - - matrix[0] = multiplierX; - matrix[3] = multiplierY; - } - - function skewXMatrix(matrix, args) { - matrix[2] = Math.tan(fabric.util.degreesToRadians(args[0])); - } - - function skewYMatrix(matrix, args) { - matrix[1] = Math.tan(fabric.util.degreesToRadians(args[0])); - } - - function translateMatrix(matrix, args) { - matrix[4] = args[0]; - if (args.length === 2) { - matrix[5] = args[1]; - } - } - - // identity matrix - var iMatrix = [ - 1, // a - 0, // b - 0, // c - 1, // d - 0, // e - 0 // f - ], - - // == begin transform regexp - number = fabric.reNum, - - commaWsp = '(?:\\s+,?\\s*|,\\s*)', - - skewX = '(?:(skewX)\\s*\\(\\s*(' + number + ')\\s*\\))', - - skewY = '(?:(skewY)\\s*\\(\\s*(' + number + ')\\s*\\))', - - rotate = '(?:(rotate)\\s*\\(\\s*(' + number + ')(?:' + - commaWsp + '(' + number + ')' + - commaWsp + '(' + number + '))?\\s*\\))', - - scale = '(?:(scale)\\s*\\(\\s*(' + number + ')(?:' + - commaWsp + '(' + number + '))?\\s*\\))', - - translate = '(?:(translate)\\s*\\(\\s*(' + number + ')(?:' + - commaWsp + '(' + number + '))?\\s*\\))', - - matrix = '(?:(matrix)\\s*\\(\\s*' + - '(' + number + ')' + commaWsp + - '(' + number + ')' + commaWsp + - '(' + number + ')' + commaWsp + - '(' + number + ')' + commaWsp + - '(' + number + ')' + commaWsp + - '(' + number + ')' + - '\\s*\\))', - - transform = '(?:' + - matrix + '|' + - translate + '|' + - scale + '|' + - rotate + '|' + - skewX + '|' + - skewY + - ')', - - transforms = '(?:' + transform + '(?:' + commaWsp + transform + ')*' + ')', - - transformList = '^\\s*(?:' + transforms + '?)\\s*$', - - // http://www.w3.org/TR/SVG/coords.html#TransformAttribute - reTransformList = new RegExp(transformList), - // == end transform regexp - - reTransform = new RegExp(transform, 'g'); - - return function(attributeValue) { - - // start with identity matrix - var matrix = iMatrix.concat(), - matrices = [ ]; - - // return if no argument was given or - // an argument does not match transform attribute regexp - if (!attributeValue || (attributeValue && !reTransformList.test(attributeValue))) { - return matrix; - } - - attributeValue.replace(reTransform, function(match) { - - var m = new RegExp(transform).exec(match).filter(function (match) { - return (match !== '' && match != null); - }), - operation = m[1], - args = m.slice(2).map(parseFloat); - - switch (operation) { - case 'translate': - translateMatrix(matrix, args); - break; - case 'rotate': - args[0] = fabric.util.degreesToRadians(args[0]); - rotateMatrix(matrix, args); - break; - case 'scale': - scaleMatrix(matrix, args); - break; - case 'skewX': - skewXMatrix(matrix, args); - break; - case 'skewY': - skewYMatrix(matrix, args); - break; - case 'matrix': - matrix = args; - break; - } - - // snapshot current matrix into matrices array - matrices.push(matrix.concat()); - // reset - matrix = iMatrix.concat(); - }); - - var combinedMatrix = matrices[0]; - while (matrices.length > 1) { - matrices.shift(); - combinedMatrix = fabric.util.multiplyTransformMatrices(combinedMatrix, matrices[0]); - } - return combinedMatrix; - }; - })(); - - /** - * @private - */ - function parseStyleString(style, oStyle) { - var attr, value; - style.replace(/;$/, '').split(';').forEach(function (chunk) { - var pair = chunk.split(':'); - - attr = normalizeAttr(pair[0].trim().toLowerCase()); - value = normalizeValue(attr, pair[1].trim()); - - oStyle[attr] = value; - }); - } - - /** - * @private - */ - function parseStyleObject(style, oStyle) { - var attr, value; - for (var prop in style) { - if (typeof style[prop] === 'undefined') { - continue; - } - - attr = normalizeAttr(prop.toLowerCase()); - value = normalizeValue(attr, style[prop]); - - oStyle[attr] = value; - } - } - - /** - * @private - */ - function getGlobalStylesForElement(element, svgUid) { - var styles = { }; - for (var rule in fabric.cssRules[svgUid]) { - if (elementMatchesRule(element, rule.split(' '))) { - for (var property in fabric.cssRules[svgUid][rule]) { - styles[property] = fabric.cssRules[svgUid][rule][property]; - } - } - } - return styles; - } - - /** - * @private - */ - function elementMatchesRule(element, selectors) { - var firstMatching, parentMatching = true; - //start from rightmost selector. - firstMatching = selectorMatches(element, selectors.pop()); - if (firstMatching && selectors.length) { - parentMatching = doesSomeParentMatch(element, selectors); - } - return firstMatching && parentMatching && (selectors.length === 0); - } - - function doesSomeParentMatch(element, selectors) { - var selector, parentMatching = true; - while (element.parentNode && element.parentNode.nodeType === 1 && selectors.length) { - if (parentMatching) { - selector = selectors.pop(); - } - element = element.parentNode; - parentMatching = selectorMatches(element, selector); - } - return selectors.length === 0; - } - /** - * @private - */ - function selectorMatches(element, selector) { - var nodeName = element.nodeName, - classNames = element.getAttribute('class'), - id = element.getAttribute('id'), matcher; - // i check if a selector matches slicing away part from it. - // if i get empty string i should match - matcher = new RegExp('^' + nodeName, 'i'); - selector = selector.replace(matcher, ''); - if (id && selector.length) { - matcher = new RegExp('#' + id + '(?![a-zA-Z\\-]+)', 'i'); - selector = selector.replace(matcher, ''); - } - if (classNames && selector.length) { - classNames = classNames.split(' '); - for (var i = classNames.length; i--;) { - matcher = new RegExp('\\.' + classNames[i] + '(?![a-zA-Z\\-]+)', 'i'); - selector = selector.replace(matcher, ''); - } - } - return selector.length === 0; - } - - /** - * @private - */ - function parseUseDirectives(doc) { - var nodelist = doc.getElementsByTagName('use'); - while (nodelist.length) { - var el = nodelist[0], - xlink = el.getAttribute('xlink:href').substr(1), - x = el.getAttribute('x') || 0, - y = el.getAttribute('y') || 0, - el2 = doc.getElementById(xlink).cloneNode(true), - currentTrans = (el2.getAttribute('transform') || '') + ' translate(' + x + ', ' + y + ')', - parentNode; - - for (var j = 0, attrs = el.attributes, l = attrs.length; j < l; j++) { - var attr = attrs.item(j); - if (attr.nodeName === 'x' || attr.nodeName === 'y' || attr.nodeName === 'xlink:href') { - continue; - } - - if (attr.nodeName === 'transform') { - currentTrans = attr.nodeValue + ' ' + currentTrans; - } - else { - el2.setAttribute(attr.nodeName, attr.nodeValue); - } - } - - el2.setAttribute('transform', currentTrans); - el2.setAttribute('instantiated_by_use', '1'); - el2.removeAttribute('id'); - parentNode = el.parentNode; - parentNode.replaceChild(el2, el); - } - } - - // http://www.w3.org/TR/SVG/coords.html#ViewBoxAttribute - // matches, e.g.: +14.56e-12, etc. - var reViewBoxAttrValue = new RegExp( - '^' + - '\\s*(' + fabric.reNum + '+)\\s*,?' + - '\\s*(' + fabric.reNum + '+)\\s*,?' + - '\\s*(' + fabric.reNum + '+)\\s*,?' + - '\\s*(' + fabric.reNum + '+)\\s*' + - '$' - ); - - /** - * Add a element that envelop all child elements and makes the viewbox transformMatrix descend on all elements - */ - function addVBTransform(element, widthAttr, heightAttr) { - - var viewBoxAttr = element.getAttribute('viewBox'), - scaleX = 1, - scaleY = 1, - minX = 0, - minY = 0, - viewBoxWidth, viewBoxHeight, matrix, el; - - if (viewBoxAttr && (viewBoxAttr = viewBoxAttr.match(reViewBoxAttrValue))) { - minX = -parseFloat(viewBoxAttr[1]), - minY = -parseFloat(viewBoxAttr[2]), - viewBoxWidth = parseFloat(viewBoxAttr[3]), - viewBoxHeight = parseFloat(viewBoxAttr[4]); - } - else { - return; - } - if (widthAttr && widthAttr !== viewBoxWidth) { - scaleX = widthAttr / viewBoxWidth; - } - if (heightAttr && heightAttr !== viewBoxHeight) { - scaleY = heightAttr / viewBoxHeight; - } - - // default is to preserve aspect ratio - // preserveAspectRatio attribute to be implemented - scaleY = scaleX = (scaleX > scaleY ? scaleY : scaleX); - - if (!(scaleX !== 1 || scaleY !== 1 || minX !== 0 || minY !== 0)) { - return; - } - matrix = ' matrix(' + scaleX + - ' 0' + - ' 0 ' + - scaleY + ' ' + - (minX * scaleX) + ' ' + - (minY * scaleY) + ') '; - - if (element.tagName === 'svg') { - el = element.ownerDocument.createElement('g'); - while (element.firstChild != null) { - el.appendChild(element.firstChild); - } - element.appendChild(el); - } - else { - el = element; - matrix = el.getAttribute('transform') + matrix; - } - - el.setAttribute('transform', matrix); - } - - /** - * Parses an SVG document, converts it to an array of corresponding fabric.* instances and passes them to a callback - * @static - * @function - * @memberOf fabric - * @param {SVGDocument} doc SVG document to parse - * @param {Function} callback Callback to call when parsing is finished; It's being passed an array of elements (parsed from a document). - * @param {Function} [reviver] Method for further parsing of SVG elements, called after each fabric object created. - */ - fabric.parseSVGDocument = (function() { - - var reAllowedSVGTagNames = /^(path|circle|polygon|polyline|ellipse|rect|line|image|text)$/, - reViewBoxTagNames = /^(symbol|image|marker|pattern|view)$/; - - function hasAncestorWithNodeName(element, nodeName) { - while (element && (element = element.parentNode)) { - if (nodeName.test(element.nodeName) && !element.getAttribute('instantiated_by_use')) { - return true; - } - } - return false; - } - - return function(doc, callback, reviver) { - if (!doc) { - return; - } - - parseUseDirectives(doc); - - var startTime = new Date(), - svgUid = fabric.Object.__uid++, - widthAttr, heightAttr, toBeParsed = false; - - if (doc.getAttribute('width') && doc.getAttribute('width') !== '100%') { - widthAttr = parseUnit(doc.getAttribute('width')); - } - if (doc.getAttribute('height') && doc.getAttribute('height') !== '100%') { - heightAttr = parseUnit(doc.getAttribute('height')); - } - - if (!widthAttr || !heightAttr) { - var viewBoxAttr = doc.getAttribute('viewBox'); - if (viewBoxAttr && (viewBoxAttr = viewBoxAttr.match(reViewBoxAttrValue))) { - widthAttr = parseFloat(viewBoxAttr[3]), - heightAttr = parseFloat(viewBoxAttr[4]); - } - else { - toBeParsed = true; - } - } - - addVBTransform(doc, widthAttr, heightAttr); - - var descendants = fabric.util.toArray(doc.getElementsByTagName('*')); - - if (descendants.length === 0 && fabric.isLikelyNode) { - // we're likely in node, where "o3-xml" library fails to gEBTN("*") - // https://github.com/ajaxorg/node-o3-xml/issues/21 - descendants = doc.selectNodes('//*[name(.)!="svg"]'); - var arr = [ ]; - for (var i = 0, len = descendants.length; i < len; i++) { - arr[i] = descendants[i]; - } - descendants = arr; - } - - var elements = descendants.filter(function(el) { - reViewBoxTagNames.test(el.tagName) && addVBTransform(el, 0, 0); - return reAllowedSVGTagNames.test(el.tagName) && - !hasAncestorWithNodeName(el, /^(?:pattern|defs|symbol)$/); // http://www.w3.org/TR/SVG/struct.html#DefsElement - }); - - if (!elements || (elements && !elements.length)) { - callback && callback([], {}); - return; - } - - var options = { - width: widthAttr, - height: heightAttr, - svgUid: svgUid, - toBeParsed: toBeParsed - }; - - fabric.gradientDefs[svgUid] = fabric.getGradientDefs(doc); - fabric.cssRules[svgUid] = fabric.getCSSRules(doc); - // Precedence of rules: style > class > attribute - fabric.parseElements(elements, function(instances) { - fabric.documentParsingTime = new Date() - startTime; - if (callback) { - callback(instances, options); - } - }, clone(options), reviver); - }; - })(); - - /** - * Used for caching SVG documents (loaded via `fabric.Canvas#loadSVGFromURL`) - * @namespace - */ - var svgCache = { - - /** - * @param {String} name - * @param {Function} callback - */ - has: function (name, callback) { - callback(false); - }, - - get: function () { - /* NOOP */ - }, - - set: function () { - /* NOOP */ - } - }; - - /** - * @private - */ - function _enlivenCachedObject(cachedObject) { - - var objects = cachedObject.objects, - options = cachedObject.options; - - objects = objects.map(function (o) { - return fabric[capitalize(o.type)].fromObject(o); - }); - - return ({ objects: objects, options: options }); - } - - /** - * @private - */ - function _createSVGPattern(markup, canvas, property) { - if (canvas[property] && canvas[property].toSVG) { - markup.push( - '', - '' - ); - } - } - - var reFontDeclaration = new RegExp( - '(normal|italic)?\\s*(normal|small-caps)?\\s*' + - '(normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900)?\\s*(' + - fabric.reNum + - '(?:px|cm|mm|em|pt|pc|in)*)(?:\\/(normal|' + fabric.reNum + '))?\\s+(.*)'); - - extend(fabric, { - /** - * Parses a short font declaration, building adding its properties to a style object - * @static - * @function - * @memberOf fabric - * @param {String} value font declaration - * @param {Object} oStyle definition - */ - parseFontDeclaration: function(value, oStyle) { - var match = value.match(reFontDeclaration); - - if (!match) { - return; - } - var fontStyle = match[1], - // font variant is not used - // fontVariant = match[2], - fontWeight = match[3], - fontSize = match[4], - lineHeight = match[5], - fontFamily = match[6]; - - if (fontStyle) { - oStyle.fontStyle = fontStyle; - } - if (fontWeight) { - oStyle.fontWeight = isNaN(parseFloat(fontWeight)) ? fontWeight : parseFloat(fontWeight); - } - if (fontSize) { - oStyle.fontSize = parseUnit(fontSize); - } - if (fontFamily) { - oStyle.fontFamily = fontFamily; - } - if (lineHeight) { - oStyle.lineHeight = lineHeight === 'normal' ? 1 : lineHeight; - } - }, - - /** - * Parses an SVG document, returning all of the gradient declarations found in it - * @static - * @function - * @memberOf fabric - * @param {SVGDocument} doc SVG document to parse - * @return {Object} Gradient definitions; key corresponds to element id, value -- to gradient definition element - */ - getGradientDefs: function(doc) { - var linearGradientEls = doc.getElementsByTagName('linearGradient'), - radialGradientEls = doc.getElementsByTagName('radialGradient'), - el, i, j = 0, id, xlink, elList = [ ], - gradientDefs = { }, idsToXlinkMap = { }; - - elList.length = linearGradientEls.length + radialGradientEls.length; - i = linearGradientEls.length; - while (i--) { - elList[j++] = linearGradientEls[i]; - } - i = radialGradientEls.length; - while (i--) { - elList[j++] = radialGradientEls[i]; - } - - while (j--) { - el = elList[j]; - xlink = el.getAttribute('xlink:href'); - id = el.getAttribute('id'); - if (xlink) { - idsToXlinkMap[id] = xlink.substr(1); - } - gradientDefs[id] = el; - } - - for (id in idsToXlinkMap) { - var el2 = gradientDefs[idsToXlinkMap[id]].cloneNode(true); - el = gradientDefs[id]; - while (el2.firstChild) { - el.appendChild(el2.firstChild); - } - } - return gradientDefs; - }, - - /** - * Returns an object of attributes' name/value, given element and an array of attribute names; - * Parses parent "g" nodes recursively upwards. - * @static - * @memberOf fabric - * @param {DOMElement} element Element to parse - * @param {Array} attributes Array of attributes to parse - * @return {Object} object containing parsed attributes' names/values - */ - parseAttributes: function(element, attributes, svgUid) { - - if (!element) { - return; - } - - var value, - parentAttributes = { }, - fontSize; - - if (typeof svgUid === 'undefined') { - svgUid = element.getAttribute('svgUid'); - } - // if there's a parent container (`g` or `a` or `symbol` node), parse its attributes recursively upwards - if (element.parentNode && /^symbol|[g|a]$/i.test(element.parentNode.nodeName)) { - parentAttributes = fabric.parseAttributes(element.parentNode, attributes, svgUid); - } - fontSize = (parentAttributes && parentAttributes.fontSize ) || - element.getAttribute('font-size') || fabric.Text.DEFAULT_SVG_FONT_SIZE; - - var ownAttributes = attributes.reduce(function(memo, attr) { - value = element.getAttribute(attr); - if (value) { - attr = normalizeAttr(attr); - value = normalizeValue(attr, value, parentAttributes, fontSize); - - memo[attr] = value; - } - return memo; - }, { }); - - // add values parsed from style, which take precedence over attributes - // (see: http://www.w3.org/TR/SVG/styling.html#UsingPresentationAttributes) - ownAttributes = extend(ownAttributes, - extend(getGlobalStylesForElement(element, svgUid), fabric.parseStyleAttribute(element))); - if (ownAttributes.font) { - fabric.parseFontDeclaration(ownAttributes.font, ownAttributes); - } - return _setStrokeFillOpacity(extend(parentAttributes, ownAttributes)); - }, - - /** - * Transforms an array of svg elements to corresponding fabric.* instances - * @static - * @memberOf fabric - * @param {Array} elements Array of elements to parse - * @param {Function} callback Being passed an array of fabric instances (transformed from SVG elements) - * @param {Object} [options] Options object - * @param {Function} [reviver] Method for further parsing of SVG elements, called after each fabric object created. - */ - parseElements: function(elements, callback, options, reviver) { - new fabric.ElementsParser(elements, callback, options, reviver).parse(); - }, - - /** - * Parses "style" attribute, retuning an object with values - * @static - * @memberOf fabric - * @param {SVGElement} element Element to parse - * @return {Object} Objects with values parsed from style attribute of an element - */ - parseStyleAttribute: function(element) { - var oStyle = { }, - style = element.getAttribute('style'); - - if (!style) { - return oStyle; - } - - if (typeof style === 'string') { - parseStyleString(style, oStyle); - } - else { - parseStyleObject(style, oStyle); - } - - return oStyle; - }, - - /** - * Parses "points" attribute, returning an array of values - * @static - * @memberOf fabric - * @param {String} points points attribute string - * @return {Array} array of points - */ - parsePointsAttribute: function(points) { - - // points attribute is required and must not be empty - if (!points) { - return null; - } - - // replace commas with whitespace and remove bookending whitespace - points = points.replace(/,/g, ' ').trim(); - - points = points.split(/\s+/); - var parsedPoints = [ ], i, len; - - i = 0; - len = points.length; - for (; i < len; i+=2) { - parsedPoints.push({ - x: parseFloat(points[i]), - y: parseFloat(points[i + 1]) - }); - } - - // odd number of points is an error - // if (parsedPoints.length % 2 !== 0) { - // return null; - // } - - return parsedPoints; - }, - - /** - * Returns CSS rules for a given SVG document - * @static - * @function - * @memberOf fabric - * @param {SVGDocument} doc SVG document to parse - * @return {Object} CSS rules of this document - */ - getCSSRules: function(doc) { - var styles = doc.getElementsByTagName('style'), - allRules = { }, rules; - - // very crude parsing of style contents - for (var i = 0, len = styles.length; i < len; i++) { - var styleContents = styles[i].textContent; - - // remove comments - styleContents = styleContents.replace(/\/\*[\s\S]*?\*\//g, ''); - if (styleContents.trim() === '') { - continue; - } - rules = styleContents.match(/[^{]*\{[\s\S]*?\}/g); - rules = rules.map(function(rule) { return rule.trim(); }); - - rules.forEach(function(rule) { - - var match = rule.match(/([\s\S]*?)\s*\{([^}]*)\}/), - ruleObj = { }, declaration = match[2].trim(), - propertyValuePairs = declaration.replace(/;$/, '').split(/\s*;\s*/); - - for (var i = 0, len = propertyValuePairs.length; i < len; i++) { - var pair = propertyValuePairs[i].split(/\s*:\s*/), - property = normalizeAttr(pair[0]), - value = normalizeValue(property, pair[1], pair[0]); - ruleObj[property] = value; - } - rule = match[1]; - rule.split(',').forEach(function(_rule) { - _rule = _rule.replace(/^svg/i, '').trim(); - if (_rule === '') { - return; - } - allRules[_rule] = fabric.util.object.clone(ruleObj); - }); - }); - } - return allRules; - }, - - /** - * Takes url corresponding to an SVG document, and parses it into a set of fabric objects. Note that SVG is fetched via XMLHttpRequest, so it needs to conform to SOP (Same Origin Policy) - * @memberof fabric - * @param {String} url - * @param {Function} callback - * @param {Function} [reviver] Method for further parsing of SVG elements, called after each fabric object created. - */ - loadSVGFromURL: function(url, callback, reviver) { - - url = url.replace(/^\n\s*/, '').trim(); - svgCache.has(url, function (hasUrl) { - if (hasUrl) { - svgCache.get(url, function (value) { - var enlivedRecord = _enlivenCachedObject(value); - callback(enlivedRecord.objects, enlivedRecord.options); - }); - } - else { - new fabric.util.request(url, { - method: 'get', - onComplete: onComplete - }); - } - }); - - function onComplete(r) { - - var xml = r.responseXML; - if (xml && !xml.documentElement && fabric.window.ActiveXObject && r.responseText) { - xml = new ActiveXObject('Microsoft.XMLDOM'); - xml.async = 'false'; - //IE chokes on DOCTYPE - xml.loadXML(r.responseText.replace(//i, '')); - } - if (!xml || !xml.documentElement) { - return; - } - - fabric.parseSVGDocument(xml.documentElement, function (results, options) { - svgCache.set(url, { - objects: fabric.util.array.invoke(results, 'toObject'), - options: options - }); - callback(results, options); - }, reviver); - } - }, - - /** - * Takes string corresponding to an SVG document, and parses it into a set of fabric objects - * @memberof fabric - * @param {String} string - * @param {Function} callback - * @param {Function} [reviver] Method for further parsing of SVG elements, called after each fabric object created. - */ - loadSVGFromString: function(string, callback, reviver) { - string = string.trim(); - var doc; - if (typeof DOMParser !== 'undefined') { - var parser = new DOMParser(); - if (parser && parser.parseFromString) { - doc = parser.parseFromString(string, 'text/xml'); - } - } - else if (fabric.window.ActiveXObject) { - doc = new ActiveXObject('Microsoft.XMLDOM'); - doc.async = 'false'; - // IE chokes on DOCTYPE - doc.loadXML(string.replace(//i, '')); - } - - fabric.parseSVGDocument(doc.documentElement, function (results, options) { - callback(results, options); - }, reviver); - }, - - /** - * Creates markup containing SVG font faces - * @param {Array} objects Array of fabric objects - * @return {String} - */ - createSVGFontFacesMarkup: function(objects) { - var markup = ''; - - for (var i = 0, len = objects.length; i < len; i++) { - if (objects[i].type !== 'text' || !objects[i].path) { - continue; - } - - markup += [ - //jscs:disable validateIndentation - '@font-face {', - 'font-family: ', objects[i].fontFamily, '; ', - 'src: url(\'', objects[i].path, '\')', - '}' - //jscs:enable validateIndentation - ].join(''); - } - - if (markup) { - markup = [ - //jscs:disable validateIndentation - '' - //jscs:enable validateIndentation - ].join(''); - } - - return markup; - }, - - /** - * Creates markup containing SVG referenced elements like patterns, gradients etc. - * @param {fabric.Canvas} canvas instance of fabric.Canvas - * @return {String} - */ - createSVGRefElementsMarkup: function(canvas) { - var markup = [ ]; - - _createSVGPattern(markup, canvas, 'backgroundColor'); - _createSVGPattern(markup, canvas, 'overlayColor'); - - return markup.join(''); - } - }); - -})(typeof exports !== 'undefined' ? exports : this); - - -fabric.ElementsParser = function(elements, callback, options, reviver) { - this.elements = elements; - this.callback = callback; - this.options = options; - this.reviver = reviver; - this.svgUid = (options && options.svgUid) || 0; -}; - -fabric.ElementsParser.prototype.parse = function() { - this.instances = new Array(this.elements.length); - this.numElements = this.elements.length; - - this.createObjects(); -}; - -fabric.ElementsParser.prototype.createObjects = function() { - for (var i = 0, len = this.elements.length; i < len; i++) { - this.elements[i].setAttribute('svgUid', this.svgUid); - (function(_this, i) { - setTimeout(function() { - _this.createObject(_this.elements[i], i); - }, 0); - })(this, i); - } -}; - -fabric.ElementsParser.prototype.createObject = function(el, index) { - var klass = fabric[fabric.util.string.capitalize(el.tagName)]; - if (klass && klass.fromElement) { - try { - this._createObject(klass, el, index); - } - catch (err) { - fabric.log(err); - } - } - else { - this.checkIfDone(); - } -}; - -fabric.ElementsParser.prototype._createObject = function(klass, el, index) { - if (klass.async) { - klass.fromElement(el, this.createCallback(index, el), this.options); - } - else { - var obj = klass.fromElement(el, this.options); - this.resolveGradient(obj, 'fill'); - this.resolveGradient(obj, 'stroke'); - this.reviver && this.reviver(el, obj); - this.instances[index] = obj; - this.checkIfDone(); - } -}; - -fabric.ElementsParser.prototype.createCallback = function(index, el) { - var _this = this; - return function(obj) { - _this.resolveGradient(obj, 'fill'); - _this.resolveGradient(obj, 'stroke'); - _this.reviver && _this.reviver(el, obj); - _this.instances[index] = obj; - _this.checkIfDone(); - }; -}; - -fabric.ElementsParser.prototype.resolveGradient = function(obj, property) { - - var instanceFillValue = obj.get(property); - if (!(/^url\(/).test(instanceFillValue)) { - return; - } - var gradientId = instanceFillValue.slice(5, instanceFillValue.length - 1); - if (fabric.gradientDefs[this.svgUid][gradientId]) { - obj.set(property, - fabric.Gradient.fromElement(fabric.gradientDefs[this.svgUid][gradientId], obj)); - } -}; - -fabric.ElementsParser.prototype.checkIfDone = function() { - if (--this.numElements === 0) { - this.instances = this.instances.filter(function(el) { - return el != null; - }); - this.callback(this.instances); - } -}; - - -(function(global) { - - 'use strict'; - - /* Adaptation of work of Kevin Lindsey (kevin@kevlindev.com) */ - - var fabric = global.fabric || (global.fabric = { }); - - if (fabric.Point) { - fabric.warn('fabric.Point is already defined'); - return; - } - - fabric.Point = Point; - - /** - * Point class - * @class fabric.Point - * @memberOf fabric - * @constructor - * @param {Number} x - * @param {Number} y - * @return {fabric.Point} thisArg - */ - function Point(x, y) { - this.x = x; - this.y = y; - } - - Point.prototype = /** @lends fabric.Point.prototype */ { - - constructor: Point, - - /** - * Adds another point to this one and returns another one - * @param {fabric.Point} that - * @return {fabric.Point} new Point instance with added values - */ - add: function (that) { - return new Point(this.x + that.x, this.y + that.y); - }, - - /** - * Adds another point to this one - * @param {fabric.Point} that - * @return {fabric.Point} thisArg - */ - addEquals: function (that) { - this.x += that.x; - this.y += that.y; - return this; - }, - - /** - * Adds value to this point and returns a new one - * @param {Number} scalar - * @return {fabric.Point} new Point with added value - */ - scalarAdd: function (scalar) { - return new Point(this.x + scalar, this.y + scalar); - }, - - /** - * Adds value to this point - * @param {Number} scalar - * @return {fabric.Point} thisArg - */ - scalarAddEquals: function (scalar) { - this.x += scalar; - this.y += scalar; - return this; - }, - - /** - * Subtracts another point from this point and returns a new one - * @param {fabric.Point} that - * @return {fabric.Point} new Point object with subtracted values - */ - subtract: function (that) { - return new Point(this.x - that.x, this.y - that.y); - }, - - /** - * Subtracts another point from this point - * @param {fabric.Point} that - * @return {fabric.Point} thisArg - */ - subtractEquals: function (that) { - this.x -= that.x; - this.y -= that.y; - return this; - }, - - /** - * Subtracts value from this point and returns a new one - * @param {Number} scalar - * @return {fabric.Point} - */ - scalarSubtract: function (scalar) { - return new Point(this.x - scalar, this.y - scalar); - }, - - /** - * Subtracts value from this point - * @param {Number} scalar - * @return {fabric.Point} thisArg - */ - scalarSubtractEquals: function (scalar) { - this.x -= scalar; - this.y -= scalar; - return this; - }, - - /** - * Miltiplies this point by a value and returns a new one - * @param {Number} scalar - * @return {fabric.Point} - */ - multiply: function (scalar) { - return new Point(this.x * scalar, this.y * scalar); - }, - - /** - * Miltiplies this point by a value - * @param {Number} scalar - * @return {fabric.Point} thisArg - */ - multiplyEquals: function (scalar) { - this.x *= scalar; - this.y *= scalar; - return this; - }, - - /** - * Divides this point by a value and returns a new one - * @param {Number} scalar - * @return {fabric.Point} - */ - divide: function (scalar) { - return new Point(this.x / scalar, this.y / scalar); - }, - - /** - * Divides this point by a value - * @param {Number} scalar - * @return {fabric.Point} thisArg - */ - divideEquals: function (scalar) { - this.x /= scalar; - this.y /= scalar; - return this; - }, - - /** - * Returns true if this point is equal to another one - * @param {fabric.Point} that - * @return {Boolean} - */ - eq: function (that) { - return (this.x === that.x && this.y === that.y); - }, - - /** - * Returns true if this point is less than another one - * @param {fabric.Point} that - * @return {Boolean} - */ - lt: function (that) { - return (this.x < that.x && this.y < that.y); - }, - - /** - * Returns true if this point is less than or equal to another one - * @param {fabric.Point} that - * @return {Boolean} - */ - lte: function (that) { - return (this.x <= that.x && this.y <= that.y); - }, - - /** - - * Returns true if this point is greater another one - * @param {fabric.Point} that - * @return {Boolean} - */ - gt: function (that) { - return (this.x > that.x && this.y > that.y); - }, - - /** - * Returns true if this point is greater than or equal to another one - * @param {fabric.Point} that - * @return {Boolean} - */ - gte: function (that) { - return (this.x >= that.x && this.y >= that.y); - }, - - /** - * Returns new point which is the result of linear interpolation with this one and another one - * @param {fabric.Point} that - * @param {Number} t - * @return {fabric.Point} - */ - lerp: function (that, t) { - return new Point(this.x + (that.x - this.x) * t, this.y + (that.y - this.y) * t); - }, - - /** - * Returns distance from this point and another one - * @param {fabric.Point} that - * @return {Number} - */ - distanceFrom: function (that) { - var dx = this.x - that.x, - dy = this.y - that.y; - return Math.sqrt(dx * dx + dy * dy); - }, - - /** - * Returns the point between this point and another one - * @param {fabric.Point} that - * @return {fabric.Point} - */ - midPointFrom: function (that) { - return new Point(this.x + (that.x - this.x)/2, this.y + (that.y - this.y)/2); - }, - - /** - * Returns a new point which is the min of this and another one - * @param {fabric.Point} that - * @return {fabric.Point} - */ - min: function (that) { - return new Point(Math.min(this.x, that.x), Math.min(this.y, that.y)); - }, - - /** - * Returns a new point which is the max of this and another one - * @param {fabric.Point} that - * @return {fabric.Point} - */ - max: function (that) { - return new Point(Math.max(this.x, that.x), Math.max(this.y, that.y)); - }, - - /** - * Returns string representation of this point - * @return {String} - */ - toString: function () { - return this.x + ',' + this.y; - }, - - /** - * Sets x/y of this point - * @param {Number} x - * @param {Number} y - */ - setXY: function (x, y) { - this.x = x; - this.y = y; - }, - - /** - * Sets x/y of this point from another point - * @param {fabric.Point} that - */ - setFromPoint: function (that) { - this.x = that.x; - this.y = that.y; - }, - - /** - * Swaps x/y of this point and another point - * @param {fabric.Point} that - */ - swap: function (that) { - var x = this.x, - y = this.y; - this.x = that.x; - this.y = that.y; - that.x = x; - that.y = y; - } - }; - -})(typeof exports !== 'undefined' ? exports : this); - - -(function(global) { - - 'use strict'; - - /* Adaptation of work of Kevin Lindsey (kevin@kevlindev.com) */ - var fabric = global.fabric || (global.fabric = { }); - - if (fabric.Intersection) { - fabric.warn('fabric.Intersection is already defined'); - return; - } - - /** - * Intersection class - * @class fabric.Intersection - * @memberOf fabric - * @constructor - */ - function Intersection(status) { - this.status = status; - this.points = []; - } - - fabric.Intersection = Intersection; - - fabric.Intersection.prototype = /** @lends fabric.Intersection.prototype */ { - - /** - * Appends a point to intersection - * @param {fabric.Point} point - */ - appendPoint: function (point) { - this.points.push(point); - }, - - /** - * Appends points to intersection - * @param {Array} points - */ - appendPoints: function (points) { - this.points = this.points.concat(points); - } - }; - - /** - * Checks if one line intersects another - * @static - * @param {fabric.Point} a1 - * @param {fabric.Point} a2 - * @param {fabric.Point} b1 - * @param {fabric.Point} b2 - * @return {fabric.Intersection} - */ - fabric.Intersection.intersectLineLine = function (a1, a2, b1, b2) { - var result, - uaT = (b2.x - b1.x) * (a1.y - b1.y) - (b2.y - b1.y) * (a1.x - b1.x), - ubT = (a2.x - a1.x) * (a1.y - b1.y) - (a2.y - a1.y) * (a1.x - b1.x), - uB = (b2.y - b1.y) * (a2.x - a1.x) - (b2.x - b1.x) * (a2.y - a1.y); - if (uB !== 0) { - var ua = uaT / uB, - ub = ubT / uB; - if (0 <= ua && ua <= 1 && 0 <= ub && ub <= 1) { - result = new Intersection('Intersection'); - result.points.push(new fabric.Point(a1.x + ua * (a2.x - a1.x), a1.y + ua * (a2.y - a1.y))); - } - else { - result = new Intersection(); - } - } - else { - if (uaT === 0 || ubT === 0) { - result = new Intersection('Coincident'); - } - else { - result = new Intersection('Parallel'); - } - } - return result; - }; - - /** - * Checks if line intersects polygon - * @static - * @param {fabric.Point} a1 - * @param {fabric.Point} a2 - * @param {Array} points - * @return {fabric.Intersection} - */ - fabric.Intersection.intersectLinePolygon = function(a1, a2, points) { - var result = new Intersection(), - length = points.length; - - for (var i = 0; i < length; i++) { - var b1 = points[i], - b2 = points[(i + 1) % length], - inter = Intersection.intersectLineLine(a1, a2, b1, b2); - - result.appendPoints(inter.points); - } - if (result.points.length > 0) { - result.status = 'Intersection'; - } - return result; - }; - - /** - * Checks if polygon intersects another polygon - * @static - * @param {Array} points1 - * @param {Array} points2 - * @return {fabric.Intersection} - */ - fabric.Intersection.intersectPolygonPolygon = function (points1, points2) { - var result = new Intersection(), - length = points1.length; - - for (var i = 0; i < length; i++) { - var a1 = points1[i], - a2 = points1[(i + 1) % length], - inter = Intersection.intersectLinePolygon(a1, a2, points2); - - result.appendPoints(inter.points); - } - if (result.points.length > 0) { - result.status = 'Intersection'; - } - return result; - }; - - /** - * Checks if polygon intersects rectangle - * @static - * @param {Array} points - * @param {Number} r1 - * @param {Number} r2 - * @return {fabric.Intersection} - */ - fabric.Intersection.intersectPolygonRectangle = function (points, r1, r2) { - var min = r1.min(r2), - max = r1.max(r2), - topRight = new fabric.Point(max.x, min.y), - bottomLeft = new fabric.Point(min.x, max.y), - inter1 = Intersection.intersectLinePolygon(min, topRight, points), - inter2 = Intersection.intersectLinePolygon(topRight, max, points), - inter3 = Intersection.intersectLinePolygon(max, bottomLeft, points), - inter4 = Intersection.intersectLinePolygon(bottomLeft, min, points), - result = new Intersection(); - - result.appendPoints(inter1.points); - result.appendPoints(inter2.points); - result.appendPoints(inter3.points); - result.appendPoints(inter4.points); - - if (result.points.length > 0) { - result.status = 'Intersection'; - } - return result; - }; - -})(typeof exports !== 'undefined' ? exports : this); - - -(function(global) { - - 'use strict'; - - var fabric = global.fabric || (global.fabric = { }); - - if (fabric.Color) { - fabric.warn('fabric.Color is already defined.'); - return; - } - - /** - * Color class - * The purpose of {@link fabric.Color} is to abstract and encapsulate common color operations; - * {@link fabric.Color} is a constructor and creates instances of {@link fabric.Color} objects. - * - * @class fabric.Color - * @param {String} color optional in hex or rgb(a) format - * @return {fabric.Color} thisArg - * @tutorial {@link http://fabricjs.com/fabric-intro-part-2/#colors} - */ - function Color(color) { - if (!color) { - this.setSource([0, 0, 0, 1]); - } - else { - this._tryParsingColor(color); - } - } - - fabric.Color = Color; - - fabric.Color.prototype = /** @lends fabric.Color.prototype */ { - - /** - * @private - * @param {String|Array} color Color value to parse - */ - _tryParsingColor: function(color) { - var source; - - if (color in Color.colorNameMap) { - color = Color.colorNameMap[color]; - } - - if (color === 'transparent') { - this.setSource([255, 255, 255, 0]); - return; - } - - source = Color.sourceFromHex(color); - - if (!source) { - source = Color.sourceFromRgb(color); - } - if (!source) { - source = Color.sourceFromHsl(color); - } - if (source) { - this.setSource(source); - } - }, - - /** - * Adapted from https://github.com/mjijackson - * @private - * @param {Number} r Red color value - * @param {Number} g Green color value - * @param {Number} b Blue color value - * @return {Array} Hsl color - */ - _rgbToHsl: function(r, g, b) { - r /= 255, g /= 255, b /= 255; - - var h, s, l, - max = fabric.util.array.max([r, g, b]), - min = fabric.util.array.min([r, g, b]); - - l = (max + min) / 2; - - if (max === min) { - h = s = 0; // achromatic - } - else { - var d = max - min; - s = l > 0.5 ? d / (2 - max - min) : d / (max + min); - switch (max) { - case r: - h = (g - b) / d + (g < b ? 6 : 0); - break; - case g: - h = (b - r) / d + 2; - break; - case b: - h = (r - g) / d + 4; - break; - } - h /= 6; - } - - return [ - Math.round(h * 360), - Math.round(s * 100), - Math.round(l * 100) - ]; - }, - - /** - * Returns source of this color (where source is an array representation; ex: [200, 200, 100, 1]) - * @return {Array} - */ - getSource: function() { - return this._source; - }, - - /** - * Sets source of this color (where source is an array representation; ex: [200, 200, 100, 1]) - * @param {Array} source - */ - setSource: function(source) { - this._source = source; - }, - - /** - * Returns color represenation in RGB format - * @return {String} ex: rgb(0-255,0-255,0-255) - */ - toRgb: function() { - var source = this.getSource(); - return 'rgb(' + source[0] + ',' + source[1] + ',' + source[2] + ')'; - }, - - /** - * Returns color represenation in RGBA format - * @return {String} ex: rgba(0-255,0-255,0-255,0-1) - */ - toRgba: function() { - var source = this.getSource(); - return 'rgba(' + source[0] + ',' + source[1] + ',' + source[2] + ',' + source[3] + ')'; - }, - - /** - * Returns color represenation in HSL format - * @return {String} ex: hsl(0-360,0%-100%,0%-100%) - */ - toHsl: function() { - var source = this.getSource(), - hsl = this._rgbToHsl(source[0], source[1], source[2]); - - return 'hsl(' + hsl[0] + ',' + hsl[1] + '%,' + hsl[2] + '%)'; - }, - - /** - * Returns color represenation in HSLA format - * @return {String} ex: hsla(0-360,0%-100%,0%-100%,0-1) - */ - toHsla: function() { - var source = this.getSource(), - hsl = this._rgbToHsl(source[0], source[1], source[2]); - - return 'hsla(' + hsl[0] + ',' + hsl[1] + '%,' + hsl[2] + '%,' + source[3] + ')'; - }, - - /** - * Returns color represenation in HEX format - * @return {String} ex: FF5555 - */ - toHex: function() { - var source = this.getSource(), r, g, b; - - r = source[0].toString(16); - r = (r.length === 1) ? ('0' + r) : r; - - g = source[1].toString(16); - g = (g.length === 1) ? ('0' + g) : g; - - b = source[2].toString(16); - b = (b.length === 1) ? ('0' + b) : b; - - return r.toUpperCase() + g.toUpperCase() + b.toUpperCase(); - }, - - /** - * Gets value of alpha channel for this color - * @return {Number} 0-1 - */ - getAlpha: function() { - return this.getSource()[3]; - }, - - /** - * Sets value of alpha channel for this color - * @param {Number} alpha Alpha value 0-1 - * @return {fabric.Color} thisArg - */ - setAlpha: function(alpha) { - var source = this.getSource(); - source[3] = alpha; - this.setSource(source); - return this; - }, - - /** - * Transforms color to its grayscale representation - * @return {fabric.Color} thisArg - */ - toGrayscale: function() { - var source = this.getSource(), - average = parseInt((source[0] * 0.3 + source[1] * 0.59 + source[2] * 0.11).toFixed(0), 10), - currentAlpha = source[3]; - this.setSource([average, average, average, currentAlpha]); - return this; - }, - - /** - * Transforms color to its black and white representation - * @param {Number} threshold - * @return {fabric.Color} thisArg - */ - toBlackWhite: function(threshold) { - var source = this.getSource(), - average = (source[0] * 0.3 + source[1] * 0.59 + source[2] * 0.11).toFixed(0), - currentAlpha = source[3]; - - threshold = threshold || 127; - - average = (Number(average) < Number(threshold)) ? 0 : 255; - this.setSource([average, average, average, currentAlpha]); - return this; - }, - - /** - * Overlays color with another color - * @param {String|fabric.Color} otherColor - * @return {fabric.Color} thisArg - */ - overlayWith: function(otherColor) { - if (!(otherColor instanceof Color)) { - otherColor = new Color(otherColor); - } - - var result = [], - alpha = this.getAlpha(), - otherAlpha = 0.5, - source = this.getSource(), - otherSource = otherColor.getSource(); - - for (var i = 0; i < 3; i++) { - result.push(Math.round((source[i] * (1 - otherAlpha)) + (otherSource[i] * otherAlpha))); - } - - result[3] = alpha; - this.setSource(result); - return this; - } - }; - - /** - * Regex matching color in RGB or RGBA formats (ex: rgb(0, 0, 0), rgba(255, 100, 10, 0.5), rgba( 255 , 100 , 10 , 0.5 ), rgb(1,1,1), rgba(100%, 60%, 10%, 0.5)) - * @static - * @field - * @memberOf fabric.Color - */ - fabric.Color.reRGBa = /^rgba?\(\s*(\d{1,3}(?:\.\d+)?\%?)\s*,\s*(\d{1,3}(?:\.\d+)?\%?)\s*,\s*(\d{1,3}(?:\.\d+)?\%?)\s*(?:\s*,\s*(\d+(?:\.\d+)?)\s*)?\)$/; - - /** - * Regex matching color in HSL or HSLA formats (ex: hsl(200, 80%, 10%), hsla(300, 50%, 80%, 0.5), hsla( 300 , 50% , 80% , 0.5 )) - * @static - * @field - * @memberOf fabric.Color - */ - fabric.Color.reHSLa = /^hsla?\(\s*(\d{1,3})\s*,\s*(\d{1,3}\%)\s*,\s*(\d{1,3}\%)\s*(?:\s*,\s*(\d+(?:\.\d+)?)\s*)?\)$/; - - /** - * Regex matching color in HEX format (ex: #FF5555, 010155, aff) - * @static - * @field - * @memberOf fabric.Color - */ - fabric.Color.reHex = /^#?([0-9a-f]{6}|[0-9a-f]{3})$/i; - - /** - * Map of the 17 basic color names with HEX code - * @static - * @field - * @memberOf fabric.Color - * @see: http://www.w3.org/TR/CSS2/syndata.html#color-units - */ - fabric.Color.colorNameMap = { - aqua: '#00FFFF', - black: '#000000', - blue: '#0000FF', - fuchsia: '#FF00FF', - gray: '#808080', - green: '#008000', - lime: '#00FF00', - maroon: '#800000', - navy: '#000080', - olive: '#808000', - orange: '#FFA500', - purple: '#800080', - red: '#FF0000', - silver: '#C0C0C0', - teal: '#008080', - white: '#FFFFFF', - yellow: '#FFFF00' - }; - - /** - * @private - * @param {Number} p - * @param {Number} q - * @param {Number} t - * @return {Number} - */ - function hue2rgb(p, q, t) { - if (t < 0) { - t += 1; - } - if (t > 1) { - t -= 1; - } - if (t < 1/6) { - return p + (q - p) * 6 * t; - } - if (t < 1/2) { - return q; - } - if (t < 2/3) { - return p + (q - p) * (2/3 - t) * 6; - } - return p; - } - - /** - * Returns new color object, when given a color in RGB format - * @memberOf fabric.Color - * @param {String} color Color value ex: rgb(0-255,0-255,0-255) - * @return {fabric.Color} - */ - fabric.Color.fromRgb = function(color) { - return Color.fromSource(Color.sourceFromRgb(color)); - }; - - /** - * Returns array represenatation (ex: [100, 100, 200, 1]) of a color that's in RGB or RGBA format - * @memberOf fabric.Color - * @param {String} color Color value ex: rgb(0-255,0-255,0-255), rgb(0%-100%,0%-100%,0%-100%) - * @return {Array} source - */ - fabric.Color.sourceFromRgb = function(color) { - var match = color.match(Color.reRGBa); - if (match) { - var r = parseInt(match[1], 10) / (/%$/.test(match[1]) ? 100 : 1) * (/%$/.test(match[1]) ? 255 : 1), - g = parseInt(match[2], 10) / (/%$/.test(match[2]) ? 100 : 1) * (/%$/.test(match[2]) ? 255 : 1), - b = parseInt(match[3], 10) / (/%$/.test(match[3]) ? 100 : 1) * (/%$/.test(match[3]) ? 255 : 1); - - return [ - parseInt(r, 10), - parseInt(g, 10), - parseInt(b, 10), - match[4] ? parseFloat(match[4]) : 1 - ]; - } - }; - - /** - * Returns new color object, when given a color in RGBA format - * @static - * @function - * @memberOf fabric.Color - * @param {String} color - * @return {fabric.Color} - */ - fabric.Color.fromRgba = Color.fromRgb; - - /** - * Returns new color object, when given a color in HSL format - * @param {String} color Color value ex: hsl(0-260,0%-100%,0%-100%) - * @memberOf fabric.Color - * @return {fabric.Color} - */ - fabric.Color.fromHsl = function(color) { - return Color.fromSource(Color.sourceFromHsl(color)); - }; - - /** - * Returns array represenatation (ex: [100, 100, 200, 1]) of a color that's in HSL or HSLA format. - * Adapted from https://github.com/mjijackson - * @memberOf fabric.Color - * @param {String} color Color value ex: hsl(0-360,0%-100%,0%-100%) or hsla(0-360,0%-100%,0%-100%, 0-1) - * @return {Array} source - * @see http://http://www.w3.org/TR/css3-color/#hsl-color - */ - fabric.Color.sourceFromHsl = function(color) { - var match = color.match(Color.reHSLa); - if (!match) { - return; - } - - var h = (((parseFloat(match[1]) % 360) + 360) % 360) / 360, - s = parseFloat(match[2]) / (/%$/.test(match[2]) ? 100 : 1), - l = parseFloat(match[3]) / (/%$/.test(match[3]) ? 100 : 1), - r, g, b; - - if (s === 0) { - r = g = b = l; - } - else { - var q = l <= 0.5 ? l * (s + 1) : l + s - l * s, - p = l * 2 - q; - - r = hue2rgb(p, q, h + 1/3); - g = hue2rgb(p, q, h); - b = hue2rgb(p, q, h - 1/3); - } - - return [ - Math.round(r * 255), - Math.round(g * 255), - Math.round(b * 255), - match[4] ? parseFloat(match[4]) : 1 - ]; - }; - - /** - * Returns new color object, when given a color in HSLA format - * @static - * @function - * @memberOf fabric.Color - * @param {String} color - * @return {fabric.Color} - */ - fabric.Color.fromHsla = Color.fromHsl; - - /** - * Returns new color object, when given a color in HEX format - * @static - * @memberOf fabric.Color - * @param {String} color Color value ex: FF5555 - * @return {fabric.Color} - */ - fabric.Color.fromHex = function(color) { - return Color.fromSource(Color.sourceFromHex(color)); - }; - - /** - * Returns array represenatation (ex: [100, 100, 200, 1]) of a color that's in HEX format - * @static - * @memberOf fabric.Color - * @param {String} color ex: FF5555 - * @return {Array} source - */ - fabric.Color.sourceFromHex = function(color) { - if (color.match(Color.reHex)) { - var value = color.slice(color.indexOf('#') + 1), - isShortNotation = (value.length === 3), - r = isShortNotation ? (value.charAt(0) + value.charAt(0)) : value.substring(0, 2), - g = isShortNotation ? (value.charAt(1) + value.charAt(1)) : value.substring(2, 4), - b = isShortNotation ? (value.charAt(2) + value.charAt(2)) : value.substring(4, 6); - - return [ - parseInt(r, 16), - parseInt(g, 16), - parseInt(b, 16), - 1 - ]; - } - }; - - /** - * Returns new color object, when given color in array representation (ex: [200, 100, 100, 0.5]) - * @static - * @memberOf fabric.Color - * @param {Array} source - * @return {fabric.Color} - */ - fabric.Color.fromSource = function(source) { - var oColor = new Color(); - oColor.setSource(source); - return oColor; - }; - -})(typeof exports !== 'undefined' ? exports : this); - - -(function() { - - /* _FROM_SVG_START_ */ - function getColorStop(el) { - var style = el.getAttribute('style'), - offset = el.getAttribute('offset'), - color, colorAlpha, opacity; - - // convert percents to absolute values - offset = parseFloat(offset) / (/%$/.test(offset) ? 100 : 1); - offset = offset < 0 ? 0 : offset > 1 ? 1 : offset; - if (style) { - var keyValuePairs = style.split(/\s*;\s*/); - - if (keyValuePairs[keyValuePairs.length - 1] === '') { - keyValuePairs.pop(); - } - - for (var i = keyValuePairs.length; i--; ) { - - var split = keyValuePairs[i].split(/\s*:\s*/), - key = split[0].trim(), - value = split[1].trim(); - - if (key === 'stop-color') { - color = value; - } - else if (key === 'stop-opacity') { - opacity = value; - } - } - } - - if (!color) { - color = el.getAttribute('stop-color') || 'rgb(0,0,0)'; - } - if (!opacity) { - opacity = el.getAttribute('stop-opacity'); - } - - color = new fabric.Color(color); - colorAlpha = color.getAlpha(); - opacity = isNaN(parseFloat(opacity)) ? 1 : parseFloat(opacity); - opacity *= colorAlpha; - - return { - offset: offset, - color: color.toRgb(), - opacity: opacity - }; - } - - function getLinearCoords(el) { - return { - x1: el.getAttribute('x1') || 0, - y1: el.getAttribute('y1') || 0, - x2: el.getAttribute('x2') || '100%', - y2: el.getAttribute('y2') || 0 - }; - } - - function getRadialCoords(el) { - return { - x1: el.getAttribute('fx') || el.getAttribute('cx') || '50%', - y1: el.getAttribute('fy') || el.getAttribute('cy') || '50%', - r1: 0, - x2: el.getAttribute('cx') || '50%', - y2: el.getAttribute('cy') || '50%', - r2: el.getAttribute('r') || '50%' - }; - } - /* _FROM_SVG_END_ */ - - /** - * Gradient class - * @class fabric.Gradient - * @tutorial {@link http://fabricjs.com/fabric-intro-part-2/#gradients} - * @see {@link fabric.Gradient#initialize} for constructor definition - */ - fabric.Gradient = fabric.util.createClass(/** @lends fabric.Gradient.prototype */ { - - /** - * Horizontal offset for aligning gradients coming from SVG when outside pathgroups - * @type Number - * @default 0 - */ - offsetX: 0, - - /** - * Vertical offset for aligning gradients coming from SVG when outside pathgroups - * @type Number - * @default 0 - */ - offsetY: 0, - - /** - * Constructor - * @param {Object} [options] Options object with type, coords, gradientUnits and colorStops - * @return {fabric.Gradient} thisArg - */ - initialize: function(options) { - options || (options = { }); - - var coords = { }; - - this.id = fabric.Object.__uid++; - this.type = options.type || 'linear'; - - coords = { - x1: options.coords.x1 || 0, - y1: options.coords.y1 || 0, - x2: options.coords.x2 || 0, - y2: options.coords.y2 || 0 - }; - - if (this.type === 'radial') { - coords.r1 = options.coords.r1 || 0; - coords.r2 = options.coords.r2 || 0; - } - this.coords = coords; - this.colorStops = options.colorStops.slice(); - if (options.gradientTransform) { - this.gradientTransform = options.gradientTransform; - } - this.offsetX = options.offsetX || this.offsetX; - this.offsetY = options.offsetY || this.offsetY; - }, - - /** - * Adds another colorStop - * @param {Object} colorStop Object with offset and color - * @return {fabric.Gradient} thisArg - */ - addColorStop: function(colorStop) { - for (var position in colorStop) { - var color = new fabric.Color(colorStop[position]); - this.colorStops.push({ - offset: position, - color: color.toRgb(), - opacity: color.getAlpha() - }); - } - return this; - }, - - /** - * Returns object representation of a gradient - * @return {Object} - */ - toObject: function() { - return { - type: this.type, - coords: this.coords, - colorStops: this.colorStops, - offsetX: this.offsetX, - offsetY: this.offsetY - }; - }, - - /* _TO_SVG_START_ */ - /** - * Returns SVG representation of an gradient - * @param {Object} object Object to create a gradient for - * @param {Boolean} normalize Whether coords should be normalized - * @return {String} SVG representation of an gradient (linear/radial) - */ - toSVG: function(object) { - var coords = fabric.util.object.clone(this.coords), - markup, commonAttributes; - - // colorStops must be sorted ascending - this.colorStops.sort(function(a, b) { - return a.offset - b.offset; - }); - - if (!(object.group && object.group.type === 'path-group')) { - for (var prop in coords) { - if (prop === 'x1' || prop === 'x2' || prop === 'r2') { - coords[prop] += this.offsetX - object.width / 2; - } - else if (prop === 'y1' || prop === 'y2') { - coords[prop] += this.offsetY - object.height / 2; - } - } - } - - commonAttributes = 'id="SVGID_' + this.id + - '" gradientUnits="userSpaceOnUse"'; - if (this.gradientTransform) { - commonAttributes += ' gradientTransform="matrix(' + this.gradientTransform.join(' ') + ')" '; - } - if (this.type === 'linear') { - markup = [ - //jscs:disable validateIndentation - '\n' - //jscs:enable validateIndentation - ]; - } - else if (this.type === 'radial') { - markup = [ - //jscs:disable validateIndentation - '\n' - //jscs:enable validateIndentation - ]; - } - - for (var i = 0; i < this.colorStops.length; i++) { - markup.push( - //jscs:disable validateIndentation - '\n' - //jscs:enable validateIndentation - ); - } - - markup.push((this.type === 'linear' ? '\n' : '\n')); - - return markup.join(''); - }, - /* _TO_SVG_END_ */ - - /** - * Returns an instance of CanvasGradient - * @param {CanvasRenderingContext2D} ctx Context to render on - * @return {CanvasGradient} - */ - toLive: function(ctx, object) { - var gradient, prop, coords = fabric.util.object.clone(this.coords); - - if (!this.type) { - return; - } - - if (object.group && object.group.type === 'path-group') { - for (prop in coords) { - if (prop === 'x1' || prop === 'x2') { - coords[prop] += -this.offsetX + object.width / 2; - } - else if (prop === 'y1' || prop === 'y2') { - coords[prop] += -this.offsetY + object.height / 2; - } - } - } - - if (object.type === 'text' || object.type === 'i-text') { - for (prop in coords) { - if (prop === 'x1' || prop === 'x2') { - coords[prop] -= object.width / 2; - } - else if (prop === 'y1' || prop === 'y2') { - coords[prop] -= object.height / 2; - } - } - } - - if (this.type === 'linear') { - gradient = ctx.createLinearGradient( - coords.x1, coords.y1, coords.x2, coords.y2); - } - else if (this.type === 'radial') { - gradient = ctx.createRadialGradient( - coords.x1, coords.y1, coords.r1, coords.x2, coords.y2, coords.r2); - } - - for (var i = 0, len = this.colorStops.length; i < len; i++) { - var color = this.colorStops[i].color, - opacity = this.colorStops[i].opacity, - offset = this.colorStops[i].offset; - - if (typeof opacity !== 'undefined') { - color = new fabric.Color(color).setAlpha(opacity).toRgba(); - } - gradient.addColorStop(parseFloat(offset), color); - } - - return gradient; - } - }); - - fabric.util.object.extend(fabric.Gradient, { - - /* _FROM_SVG_START_ */ - /** - * Returns {@link fabric.Gradient} instance from an SVG element - * @static - * @memberof fabric.Gradient - * @param {SVGGradientElement} el SVG gradient element - * @param {fabric.Object} instance - * @return {fabric.Gradient} Gradient instance - * @see http://www.w3.org/TR/SVG/pservers.html#LinearGradientElement - * @see http://www.w3.org/TR/SVG/pservers.html#RadialGradientElement - */ - fromElement: function(el, instance) { - - /** - * @example: - * - * - * - * - * - * - * OR - * - * - * - * - * - * - * OR - * - * - * - * - * - * - * - * OR - * - * - * - * - * - * - * - */ - - var colorStopEls = el.getElementsByTagName('stop'), - type = (el.nodeName === 'linearGradient' ? 'linear' : 'radial'), - gradientUnits = el.getAttribute('gradientUnits') || 'objectBoundingBox', - gradientTransform = el.getAttribute('gradientTransform'), - colorStops = [], - coords = { }, ellipseMatrix; - - if (type === 'linear') { - coords = getLinearCoords(el); - } - else if (type === 'radial') { - coords = getRadialCoords(el); - } - - for (var i = colorStopEls.length; i--; ) { - colorStops.push(getColorStop(colorStopEls[i])); - } - - ellipseMatrix = _convertPercentUnitsToValues(instance, coords, gradientUnits); - - var gradient = new fabric.Gradient({ - type: type, - coords: coords, - colorStops: colorStops, - offsetX: -instance.left, - offsetY: -instance.top - }); - - if (gradientTransform || ellipseMatrix !== '') { - gradient.gradientTransform = fabric.parseTransformAttribute((gradientTransform || '') + ellipseMatrix); - } - return gradient; - }, - /* _FROM_SVG_END_ */ - - /** - * Returns {@link fabric.Gradient} instance from its object representation - * @static - * @memberof fabric.Gradient - * @param {Object} obj - * @param {Object} [options] Options object - */ - forObject: function(obj, options) { - options || (options = { }); - _convertPercentUnitsToValues(obj, options.coords, 'userSpaceOnUse'); - return new fabric.Gradient(options); - } - }); - - /** - * @private - */ - function _convertPercentUnitsToValues(object, options, gradientUnits) { - var propValue, addFactor = 0, multFactor = 1, ellipseMatrix = ''; - for (var prop in options) { - propValue = parseFloat(options[prop], 10); - if (typeof options[prop] === 'string' && /^\d+%$/.test(options[prop])) { - multFactor = 0.01; - } - else { - multFactor = 1; - } - if (prop === 'x1' || prop === 'x2' || prop === 'r2') { - multFactor *= gradientUnits === 'objectBoundingBox' ? object.width : 1; - addFactor = gradientUnits === 'objectBoundingBox' ? object.left || 0 : 0; - } - else if (prop === 'y1' || prop === 'y2') { - multFactor *= gradientUnits === 'objectBoundingBox' ? object.height : 1; - addFactor = gradientUnits === 'objectBoundingBox' ? object.top || 0 : 0; - } - options[prop] = propValue * multFactor + addFactor; - } - if (object.type === 'ellipse' && - options.r2 !== null && - gradientUnits === 'objectBoundingBox' && - object.rx !== object.ry) { - - var scaleFactor = object.ry/object.rx; - ellipseMatrix = ' scale(1, ' + scaleFactor + ')'; - if (options.y1) { - options.y1 /= scaleFactor; - } - if (options.y2) { - options.y2 /= scaleFactor; - } - } - return ellipseMatrix; - } -})(); - - -/** - * Pattern class - * @class fabric.Pattern - * @see {@link http://fabricjs.com/patterns/|Pattern demo} - * @see {@link http://fabricjs.com/dynamic-patterns/|DynamicPattern demo} - * @see {@link fabric.Pattern#initialize} for constructor definition - */ -fabric.Pattern = fabric.util.createClass(/** @lends fabric.Pattern.prototype */ { - - /** - * Repeat property of a pattern (one of repeat, repeat-x, repeat-y or no-repeat) - * @type String - * @default - */ - repeat: 'repeat', - - /** - * Pattern horizontal offset from object's left/top corner - * @type Number - * @default - */ - offsetX: 0, - - /** - * Pattern vertical offset from object's left/top corner - * @type Number - * @default - */ - offsetY: 0, - - /** - * Constructor - * @param {Object} [options] Options object - * @return {fabric.Pattern} thisArg - */ - initialize: function(options) { - options || (options = { }); - - this.id = fabric.Object.__uid++; - - if (options.source) { - if (typeof options.source === 'string') { - // function string - if (typeof fabric.util.getFunctionBody(options.source) !== 'undefined') { - this.source = new Function(fabric.util.getFunctionBody(options.source)); - } - else { - // img src string - var _this = this; - this.source = fabric.util.createImage(); - fabric.util.loadImage(options.source, function(img) { - _this.source = img; - }); - } - } - else { - // img element - this.source = options.source; - } - } - if (options.repeat) { - this.repeat = options.repeat; - } - if (options.offsetX) { - this.offsetX = options.offsetX; - } - if (options.offsetY) { - this.offsetY = options.offsetY; - } - }, - - /** - * Returns object representation of a pattern - * @return {Object} Object representation of a pattern instance - */ - toObject: function() { - - var source; - - // callback - if (typeof this.source === 'function') { - source = String(this.source); - } - // element - else if (typeof this.source.src === 'string') { - source = this.source.src; - } - - return { - source: source, - repeat: this.repeat, - offsetX: this.offsetX, - offsetY: this.offsetY - }; - }, - - /* _TO_SVG_START_ */ - /** - * Returns SVG representation of a pattern - * @param {fabric.Object} object - * @return {String} SVG representation of a pattern - */ - toSVG: function(object) { - var patternSource = typeof this.source === 'function' ? this.source() : this.source, - patternWidth = patternSource.width / object.getWidth(), - patternHeight = patternSource.height / object.getHeight(), - patternOffsetX = this.offsetX / object.getWidth(), - patternOffsetY = this.offsetY / object.getHeight(), - patternImgSrc = ''; - if (this.repeat === 'repeat-x' || this.repeat === 'no-repeat') { - patternHeight = 1; - } - if (this.repeat === 'repeat-y' || this.repeat === 'no-repeat') { - patternWidth = 1; - } - if (patternSource.src) { - patternImgSrc = patternSource.src; - } - else if (patternSource.toDataURL) { - patternImgSrc = patternSource.toDataURL(); - } - - return '\n' + - '\n' + - '\n'; - }, - /* _TO_SVG_END_ */ - - /** - * Returns an instance of CanvasPattern - * @param {CanvasRenderingContext2D} ctx Context to create pattern - * @return {CanvasPattern} - */ - toLive: function(ctx) { - var source = typeof this.source === 'function' - ? this.source() - : this.source; - - // if the image failed to load, return, and allow rest to continue loading - if (!source) { - return ''; - } - - // if an image - if (typeof source.src !== 'undefined') { - if (!source.complete) { - return ''; - } - if (source.naturalWidth === 0 || source.naturalHeight === 0) { - return ''; - } - } - return ctx.createPattern(source, this.repeat); - } -}); - - -(function(global) { - - 'use strict'; - - var fabric = global.fabric || (global.fabric = { }), - toFixed = fabric.util.toFixed; - - if (fabric.Shadow) { - fabric.warn('fabric.Shadow is already defined.'); - return; - } - - /** - * Shadow class - * @class fabric.Shadow - * @see {@link http://fabricjs.com/shadows/|Shadow demo} - * @see {@link fabric.Shadow#initialize} for constructor definition - */ - fabric.Shadow = fabric.util.createClass(/** @lends fabric.Shadow.prototype */ { - - /** - * Shadow color - * @type String - * @default - */ - color: 'rgb(0,0,0)', - - /** - * Shadow blur - * @type Number - */ - blur: 0, - - /** - * Shadow horizontal offset - * @type Number - * @default - */ - offsetX: 0, - - /** - * Shadow vertical offset - * @type Number - * @default - */ - offsetY: 0, - - /** - * Whether the shadow should affect stroke operations - * @type Boolean - * @default - */ - affectStroke: false, - - /** - * Indicates whether toObject should include default values - * @type Boolean - * @default - */ - includeDefaultValues: true, - - /** - * Constructor - * @param {Object|String} [options] Options object with any of color, blur, offsetX, offsetX properties or string (e.g. "rgba(0,0,0,0.2) 2px 2px 10px, "2px 2px 10px rgba(0,0,0,0.2)") - * @return {fabric.Shadow} thisArg - */ - initialize: function(options) { - - if (typeof options === 'string') { - options = this._parseShadow(options); - } - - for (var prop in options) { - this[prop] = options[prop]; - } - - this.id = fabric.Object.__uid++; - }, - - /** - * @private - * @param {String} shadow Shadow value to parse - * @return {Object} Shadow object with color, offsetX, offsetY and blur - */ - _parseShadow: function(shadow) { - var shadowStr = shadow.trim(), - offsetsAndBlur = fabric.Shadow.reOffsetsAndBlur.exec(shadowStr) || [ ], - color = shadowStr.replace(fabric.Shadow.reOffsetsAndBlur, '') || 'rgb(0,0,0)'; - - return { - color: color.trim(), - offsetX: parseInt(offsetsAndBlur[1], 10) || 0, - offsetY: parseInt(offsetsAndBlur[2], 10) || 0, - blur: parseInt(offsetsAndBlur[3], 10) || 0 - }; - }, - - /** - * Returns a string representation of an instance - * @see http://www.w3.org/TR/css-text-decor-3/#text-shadow - * @return {String} Returns CSS3 text-shadow declaration - */ - toString: function() { - return [this.offsetX, this.offsetY, this.blur, this.color].join('px '); - }, - - /* _TO_SVG_START_ */ - /** - * Returns SVG representation of a shadow - * @param {fabric.Object} object - * @return {String} SVG representation of a shadow - */ - toSVG: function(object) { - var mode = 'SourceAlpha', fBoxX = 40, fBoxY = 40; - - if (object && (object.fill === this.color || object.stroke === this.color)) { - mode = 'SourceGraphic'; - } - - if (object.width && object.height) { - //http://www.w3.org/TR/SVG/filters.html#FilterEffectsRegion - // we add some extra space to filter box to contain the blur ( 20 ) - fBoxX = toFixed(Math.abs(this.offsetX / object.getWidth()), 2) * 100 + 20; - fBoxY = toFixed(Math.abs(this.offsetY / object.getHeight()), 2) * 100 + 20; - } - - return ( - '\n' + - '\t\n' + - '\t\n' + - '\t\n' + - '\t\n' + - '\t\t\n' + - '\t\t\n' + - '\t\n' + - '\n'); - }, - /* _TO_SVG_END_ */ - - /** - * Returns object representation of a shadow - * @return {Object} Object representation of a shadow instance - */ - toObject: function() { - if (this.includeDefaultValues) { - return { - color: this.color, - blur: this.blur, - offsetX: this.offsetX, - offsetY: this.offsetY - }; - } - var obj = { }, proto = fabric.Shadow.prototype; - if (this.color !== proto.color) { - obj.color = this.color; - } - if (this.blur !== proto.blur) { - obj.blur = this.blur; - } - if (this.offsetX !== proto.offsetX) { - obj.offsetX = this.offsetX; - } - if (this.offsetY !== proto.offsetY) { - obj.offsetY = this.offsetY; - } - return obj; - } - }); - - /** - * Regex matching shadow offsetX, offsetY and blur (ex: "2px 2px 10px rgba(0,0,0,0.2)", "rgb(0,255,0) 2px 2px") - * @static - * @field - * @memberOf fabric.Shadow - */ - fabric.Shadow.reOffsetsAndBlur = /(?:\s|^)(-?\d+(?:px)?(?:\s?|$))?(-?\d+(?:px)?(?:\s?|$))?(\d+(?:px)?)?(?:\s?|$)(?:$|\s)/; - -})(typeof exports !== 'undefined' ? exports : this); - - -(function () { - - 'use strict'; - - if (fabric.StaticCanvas) { - fabric.warn('fabric.StaticCanvas is already defined.'); - return; - } - - // aliases for faster resolution - var extend = fabric.util.object.extend, - getElementOffset = fabric.util.getElementOffset, - removeFromArray = fabric.util.removeFromArray, - - CANVAS_INIT_ERROR = new Error('Could not initialize `canvas` element'); - - /** - * Static canvas class - * @class fabric.StaticCanvas - * @mixes fabric.Collection - * @mixes fabric.Observable - * @see {@link http://fabricjs.com/static_canvas/|StaticCanvas demo} - * @see {@link fabric.StaticCanvas#initialize} for constructor definition - * @fires before:render - * @fires after:render - * @fires canvas:cleared - * @fires object:added - * @fires object:removed - */ - fabric.StaticCanvas = fabric.util.createClass(/** @lends fabric.StaticCanvas.prototype */ { - - /** - * Constructor - * @param {HTMLElement | String} el <canvas> element to initialize instance on - * @param {Object} [options] Options object - * @return {Object} thisArg - */ - initialize: function(el, options) { - options || (options = { }); - - this._initStatic(el, options); - fabric.StaticCanvas.activeInstance = this; - }, - - /** - * Background color of canvas instance. - * Should be set via {@link fabric.StaticCanvas#setBackgroundColor}. - * @type {(String|fabric.Pattern)} - * @default - */ - backgroundColor: '', - - /** - * Background image of canvas instance. - * Should be set via {@link fabric.StaticCanvas#setBackgroundImage}. - * Backwards incompatibility note: The "backgroundImageOpacity" - * and "backgroundImageStretch" properties are deprecated since 1.3.9. - * Use {@link fabric.Image#opacity}, {@link fabric.Image#width} and {@link fabric.Image#height}. - * @type fabric.Image - * @default - */ - backgroundImage: null, - - /** - * Overlay color of canvas instance. - * Should be set via {@link fabric.StaticCanvas#setOverlayColor} - * @since 1.3.9 - * @type {(String|fabric.Pattern)} - * @default - */ - overlayColor: '', - - /** - * Overlay image of canvas instance. - * Should be set via {@link fabric.StaticCanvas#setOverlayImage}. - * Backwards incompatibility note: The "overlayImageLeft" - * and "overlayImageTop" properties are deprecated since 1.3.9. - * Use {@link fabric.Image#left} and {@link fabric.Image#top}. - * @type fabric.Image - * @default - */ - overlayImage: null, - - /** - * Indicates whether toObject/toDatalessObject should include default values - * @type Boolean - * @default - */ - includeDefaultValues: true, - - /** - * Indicates whether objects' state should be saved - * @type Boolean - * @default - */ - stateful: true, - - /** - * Indicates whether {@link fabric.Collection.add}, {@link fabric.Collection.insertAt} and {@link fabric.Collection.remove} should also re-render canvas. - * Disabling this option could give a great performance boost when adding/removing a lot of objects to/from canvas at once - * (followed by a manual rendering after addition/deletion) - * @type Boolean - * @default - */ - renderOnAddRemove: true, - - /** - * Function that determines clipping of entire canvas area - * Being passed context as first argument. See clipping canvas area in {@link https://github.com/kangax/fabric.js/wiki/FAQ} - * @type Function - * @default - */ - clipTo: null, - - /** - * Indicates whether object controls (borders/controls) are rendered above overlay image - * @type Boolean - * @default - */ - controlsAboveOverlay: false, - - /** - * Indicates whether the browser can be scrolled when using a touchscreen and dragging on the canvas - * @type Boolean - * @default - */ - allowTouchScrolling: false, - - /** - * Indicates whether this canvas will use image smoothing, this is on by default in browsers - * @type Boolean - * @default - */ - imageSmoothingEnabled: true, - - /** - * Indicates whether objects should remain in current stack position when selected. When false objects are brought to top and rendered as part of the selection group - * @type Boolean - * @default - */ - preserveObjectStacking: false, - - /** - * The transformation (in the format of Canvas transform) which focuses the viewport - * @type Array - * @default - */ - viewportTransform: [1, 0, 0, 1, 0, 0], - - /** - * Callback; invoked right before object is about to be scaled/rotated - */ - onBeforeScaleRotate: function () { - /* NOOP */ - }, - - /** - * @private - * @param {HTMLElement | String} el <canvas> element to initialize instance on - * @param {Object} [options] Options object - */ - _initStatic: function(el, options) { - this._objects = []; - - this._createLowerCanvas(el); - this._initOptions(options); - this._setImageSmoothing(); - - if (options.overlayImage) { - this.setOverlayImage(options.overlayImage, this.renderAll.bind(this)); - } - if (options.backgroundImage) { - this.setBackgroundImage(options.backgroundImage, this.renderAll.bind(this)); - } - if (options.backgroundColor) { - this.setBackgroundColor(options.backgroundColor, this.renderAll.bind(this)); - } - if (options.overlayColor) { - this.setOverlayColor(options.overlayColor, this.renderAll.bind(this)); - } - this.calcOffset(); - }, - - /** - * Calculates canvas element offset relative to the document - * This method is also attached as "resize" event handler of window - * @return {fabric.Canvas} instance - * @chainable - */ - calcOffset: function () { - this._offset = getElementOffset(this.lowerCanvasEl); - return this; - }, - - /** - * Sets {@link fabric.StaticCanvas#overlayImage|overlay image} for this canvas - * @param {(fabric.Image|String)} image fabric.Image instance or URL of an image to set overlay to - * @param {Function} callback callback to invoke when image is loaded and set as an overlay - * @param {Object} [options] Optional options to set for the {@link fabric.Image|overlay image}. - * @return {fabric.Canvas} thisArg - * @chainable - * @see {@link http://jsfiddle.net/fabricjs/MnzHT/|jsFiddle demo} - * @example
Normal overlayImage with left/top = 0overlayImage with different propertiesStretched overlayImage #1 - width/height correspond to canvas width/heightStretched overlayImage #2 - width/height correspond to canvas width/heightoverlayImage loaded from cross-originNormal backgroundImage with left/top = 0backgroundImage with different propertiesStretched backgroundImage #1 - width/height correspond to canvas width/heightStretched backgroundImage #2 - width/height correspond to canvas width/heightbackgroundImage loaded from cross-originNormal overlayColor - color valuefabric.Pattern used as overlayColorfabric.Pattern used as overlayColor with repeat and offsetNormal backgroundColor - color valuefabric.Pattern used as backgroundColorfabric.Pattern used as backgroundColor with repeat and offsetNormal SVG outputSVG output without preamble (without <?xml ../>)SVG output with viewBox attributeSVG output with different encoding (default: UTF-8)Modify SVG output with reviver functionGenerate jpeg dataURL with lower qualityGenerate cropped png dataURL (clipping of canvas)Generate double scaled png dataURLloadFromJSONloadFromJSON with reviverSet linear gradientSet radial gradientSet patternSet shadow with string notationSet shadow with object notationSharpen filterBlur filterEmboss filterEmboss filter with opaquenessTint filter with hex color and opacityTint filter with rgba colorMultiply filter with hex colorMultiply filter with rgb color
a",l.leadingWhitespace=3===b.firstChild.nodeType,l.tbody=!b.getElementsByTagName("tbody").length,l.htmlSerialize=!!b.getElementsByTagName("link").length,l.html5Clone="<:nav>"!==z.createElement("nav").cloneNode(!0).outerHTML,c.type="checkbox",c.checked=!0,a.appendChild(c),l.appendChecked=c.checked,b.innerHTML="",l.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,a.appendChild(b),b.innerHTML="",l.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,l.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){l.noCloneEvent=!1}),b.cloneNode(!0).click()),null==l.deleteExpando){l.deleteExpando=!0;try{delete b.test}catch(d){l.deleteExpando=!1}}a=b=c=null}(),function(){var b,c,d=z.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(l[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),l[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var Y=/^(?:input|select|textarea)$/i,Z=/^key/,$=/^(?:mouse|contextmenu)|click/,_=/^(?:focusinfocus|focusoutblur)$/,ab=/^([^.]*)(?:\.(.+)|)$/;function bb(){return!0}function cb(){return!1}function db(){try{return z.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=n.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof n===L||a&&n.event.triggered===a.type?void 0:n.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(F)||[""],h=b.length;while(h--)f=ab.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=n.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=n.event.special[o]||{},l=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},i),(m=g[o])||(m=g[o]=[],m.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,l):m.push(l),n.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n.hasData(a)&&n._data(a);if(r&&(k=r.events)){b=(b||"").match(F)||[""],j=b.length;while(j--)if(h=ab.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=m.length;while(f--)g=m[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(m.splice(f,1),g.selector&&m.delegateCount--,l.remove&&l.remove.call(a,g));i&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(k)&&(delete r.handle,n._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,m,o=[d||z],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||z,3!==d.nodeType&&8!==d.nodeType&&!_.test(p+n.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[n.expando]?b:new n.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),k=n.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!n.isWindow(d)){for(i=k.delegateType||p,_.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||z)&&o.push(l.defaultView||l.parentWindow||a)}m=0;while((h=o[m++])&&!b.isPropagationStopped())b.type=m>1?i:k.bindType||p,f=(n._data(h,"events")||{})[b.type]&&n._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&n.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&n.acceptData(d)&&g&&d[p]&&!n.isWindow(d)){l=d[g],l&&(d[g]=null),n.event.triggered=p;try{d[p]()}catch(r){}n.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(n._data(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((n.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?n(c,this).index(i)>=0:n.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h]","i"),ib=/^\s+/,jb=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,kb=/<([\w:]+)/,lb=/\s*$/g,sb={option:[1,""],legend:[1,"
","
"],area:[1,"",""],param:[1,"",""],thead:[1,"","
"],tr:[2,"","
"],col:[2,"","
"],td:[3,"","
"],_default:l.htmlSerialize?[0,"",""]:[1,"X
","
"]},tb=eb(z),ub=tb.appendChild(z.createElement("div"));sb.optgroup=sb.option,sb.tbody=sb.tfoot=sb.colgroup=sb.caption=sb.thead,sb.th=sb.td;function vb(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==L?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==L?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||n.nodeName(d,b)?f.push(d):n.merge(f,vb(d,b));return void 0===b||b&&n.nodeName(a,b)?n.merge([a],f):f}function wb(a){X.test(a.type)&&(a.defaultChecked=a.checked)}function xb(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function yb(a){return a.type=(null!==n.find.attr(a,"type"))+"/"+a.type,a}function zb(a){var b=qb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ab(a,b){for(var c,d=0;null!=(c=a[d]);d++)n._data(c,"globalEval",!b||n._data(b[d],"globalEval"))}function Bb(a,b){if(1===b.nodeType&&n.hasData(a)){var c,d,e,f=n._data(a),g=n._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)n.event.add(b,c,h[c][d])}g.data&&(g.data=n.extend({},g.data))}}function Cb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!l.noCloneEvent&&b[n.expando]){e=n._data(b);for(d in e.events)n.removeEvent(b,d,e.handle);b.removeAttribute(n.expando)}"script"===c&&b.text!==a.text?(yb(b).text=a.text,zb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),l.html5Clone&&a.innerHTML&&!n.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&X.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}n.extend({clone:function(a,b,c){var d,e,f,g,h,i=n.contains(a.ownerDocument,a);if(l.html5Clone||n.isXMLDoc(a)||!hb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(ub.innerHTML=a.outerHTML,ub.removeChild(f=ub.firstChild)),!(l.noCloneEvent&&l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(d=vb(f),h=vb(a),g=0;null!=(e=h[g]);++g)d[g]&&Cb(e,d[g]);if(b)if(c)for(h=h||vb(a),d=d||vb(f),g=0;null!=(e=h[g]);g++)Bb(e,d[g]);else Bb(a,f);return d=vb(f,"script"),d.length>0&&Ab(d,!i&&vb(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k,m=a.length,o=eb(b),p=[],q=0;m>q;q++)if(f=a[q],f||0===f)if("object"===n.type(f))n.merge(p,f.nodeType?[f]:f);else if(mb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(kb.exec(f)||["",""])[1].toLowerCase(),k=sb[i]||sb._default,h.innerHTML=k[1]+f.replace(jb,"<$1>")+k[2],e=k[0];while(e--)h=h.lastChild;if(!l.leadingWhitespace&&ib.test(f)&&p.push(b.createTextNode(ib.exec(f)[0])),!l.tbody){f="table"!==i||lb.test(f)?""!==k[1]||lb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)n.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}n.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),l.appendChecked||n.grep(vb(p,"input"),wb),q=0;while(f=p[q++])if((!d||-1===n.inArray(f,d))&&(g=n.contains(f.ownerDocument,f),h=vb(o.appendChild(f),"script"),g&&Ab(h),c)){e=0;while(f=h[e++])pb.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=n.expando,j=n.cache,k=l.deleteExpando,m=n.event.special;null!=(d=a[h]);h++)if((b||n.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)m[e]?n.event.remove(d,e):n.removeEvent(d,e,g.handle);j[f]&&(delete j[f],k?delete d[i]:typeof d.removeAttribute!==L?d.removeAttribute(i):d[i]=null,c.push(f))}}}),n.fn.extend({text:function(a){return W(this,function(a){return void 0===a?n.text(this):this.empty().append((this[0]&&this[0].ownerDocument||z).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=xb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=xb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(vb(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&Ab(vb(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&n.cleanData(vb(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&n.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return W(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(gb,""):void 0;if(!("string"!=typeof a||nb.test(a)||!l.htmlSerialize&&hb.test(a)||!l.leadingWhitespace&&ib.test(a)||sb[(kb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(jb,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(vb(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(vb(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,k=this.length,m=this,o=k-1,p=a[0],q=n.isFunction(p);if(q||k>1&&"string"==typeof p&&!l.checkClone&&ob.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(k&&(i=n.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=n.map(vb(i,"script"),yb),f=g.length;k>j;j++)d=i,j!==o&&(d=n.clone(d,!0,!0),f&&n.merge(g,vb(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,n.map(g,zb),j=0;f>j;j++)d=g[j],pb.test(d.type||"")&&!n._data(d,"globalEval")&&n.contains(h,d)&&(d.src?n._evalUrl&&n._evalUrl(d.src):n.globalEval((d.text||d.textContent||d.innerHTML||"").replace(rb,"")));i=c=null}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=0,e=[],g=n(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),n(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Db,Eb={};function Fb(b,c){var d=n(c.createElement(b)).appendTo(c.body),e=a.getDefaultComputedStyle?a.getDefaultComputedStyle(d[0]).display:n.css(d[0],"display");return d.detach(),e}function Gb(a){var b=z,c=Eb[a];return c||(c=Fb(a,b),"none"!==c&&c||(Db=(Db||n(" +


+ +
+

+ Documentation in progress!
+ It might not seem, but it's actually a lot of work. The goal is to make it as cleanest, most readable and + understandable as possible.
+ If you feel there is something missing, submit a + pull request with your changes. Every + help is needed. Many thanks. +

+
+
+

What's new in version 3

+
    +
  • API redesign for a more intuitive use
  • +
  • Entire code source rewriting focused on cleanliness and performance
  • +
  • Initialization options can be passed as JavaScript object or written as data-*
  • +
  • Plugin constructor publicly available from $.fn.bootstrapSwitch.Constructor
  • +
  • Plugin instance publicly available calling .data('bootstrap-switch')
  • +
  • Global overridable defaults options
  • +
  • Improved flexibility with baseClass and wrapperClass options
  • +
  • New onInit event
  • +
  • Event namespacing
  • +
  • Full Bootstrap 3 support
  • +
  • A lot of fixed bug, as usual
  • +
+
+
+

Getting Started

+

Include the dependencies: jQuery, Bootstrap and Bootstrap Switch CSS + Javascript.

+
[...]
+<link href="bootstrap.css" rel="stylesheet">
+<link href="bootstrap-switch.css" rel="stylesheet">
+<script src="jquery.js"></script>
+<script src="bootstrap-switch.js"></script>
+[...]
+

Add your checkbox.

+
<input type="checkbox" name="my-checkbox" checked>
+

Initialize Bootstrap Switch.

+
$("[name='my-checkbox']").bootstrapSwitch();
+

Enjoy.

+
+ +
+

+ Licensed under the + Apache License, Version 2.0 + · Created by + Mattia Larentis + · Mantained by + Emanuele Marchi +

+
+ + + + + + + \ No newline at end of file diff --git a/client/public/images/Icons/bootstrap/bootstrap/main.html b/client/public/images/Icons/bootstrap/bootstrap/main.html new file mode 100644 index 0000000..88f21e7 --- /dev/null +++ b/client/public/images/Icons/bootstrap/bootstrap/main.html @@ -0,0 +1,74 @@ + + + + + + + + + Bootstrap Switch · Turn checkboxes and radio buttons in toggle switches + + + + + + + + Fork me on GitHub + +
+
+
+

+ Licensed under the + Apache License, Version 2.0 + · Created by + Mattia Larentis + · Mantained by + Emanuele Marchi +

+
+ + + + + + + \ No newline at end of file diff --git a/client/public/images/Icons/bootstrap/bootstrap/package.json b/client/public/images/Icons/bootstrap/bootstrap/package.json new file mode 100644 index 0000000..85bae62 --- /dev/null +++ b/client/public/images/Icons/bootstrap/bootstrap/package.json @@ -0,0 +1,56 @@ +{ + "name": "bootstrap-switch", + "description": "Turn checkboxes and radio buttons in toggle switches.", + "version": "3.0.2", + "keywords": [ + "bootstrap", + "switch", + "javascript", + "js" + ], + "homepage": "http://www.bootstrap-switch.org", + "author": { + "name": "Mattia Larentis", + "email": "sorich87@gmail.com", + "url": "http://larentis.eu" + }, + "contributors": [ + { + "name": "Emanuele Marchi", + "email": "emanuele@lostcrew.it", + "url": "http://lostcrew.it" + }, + { + "name": "Peter Stein", + "url": "http://www.bdmdesign.org" + } + ], + "main": "dist/js/bootstrap-switch.js", + "dependencies": { + "jquery": ">=1.9.0" + }, + "repository": { + "type": "git", + "url": "git://github.com/nostalgiaz/bootstrap-switch.git" + }, + "bugs": "https://github.com/nostalgiaz/bootstrap-switch/issues", + "license": "Apache Version 2", + "readmeFilename": "README.md", + "devDependencies": { + "gulp-coffee": "~1.4.3", + "gulp-util": "~2.2.17", + "gulp-header": "~1.0.2", + "gulp-uglify": "~0.3.1", + "gulp-coffeelint": "~0.3.3", + "gulp": "~3.8.1", + "gulp-less": "~1.2.3", + "gulp-rename": "~1.2.0", + "gulp-open": "~0.2.8", + "gulp-load-plugins": "~0.5.1", + "gulp-jade": "~0.5.0", + "run-sequence": "~0.3.6", + "gulp-connect": "~2.0.5", + "coffee-script": "~1.7.1", + "gulp-changed": "~0.3.0" + } +} diff --git a/client/public/images/Icons/bootstrap/bootstrap/page.html b/client/public/images/Icons/bootstrap/bootstrap/page.html new file mode 100644 index 0000000..ef40063 --- /dev/null +++ b/client/public/images/Icons/bootstrap/bootstrap/page.html @@ -0,0 +1,70 @@ + + + + + + + + + Bootstrap Switch · Turn checkboxes and radio buttons in toggle switches + + + + + + + + Fork me on GitHub + +

try

+ + + + + + + \ No newline at end of file diff --git a/client/public/images/Icons/bootstrap/bootstrap/src/coffee/bootstrap-switch.coffee b/client/public/images/Icons/bootstrap/bootstrap/src/coffee/bootstrap-switch.coffee new file mode 100644 index 0000000..4959bb6 --- /dev/null +++ b/client/public/images/Icons/bootstrap/bootstrap/src/coffee/bootstrap-switch.coffee @@ -0,0 +1,391 @@ +do ($ = window.jQuery, window) -> + "use strict" + + class BootstrapSwitch + constructor: (element, options = {}) -> + @$element = $ element + @options = $.extend {}, $.fn.bootstrapSwitch.defaults, + state: @$element.is ":checked" + size: @$element.data "size" + animate: @$element.data "animate" + disabled: @$element.is ":disabled" + readonly: @$element.is "[readonly]" + indeterminate: @$element.data "indeterminate" + onColor: @$element.data "on-color" + offColor: @$element.data "off-color" + onText: @$element.data "on-text" + offText: @$element.data "off-text" + labelText: @$element.data "label-text" + baseClass: @$element.data "base-class" + wrapperClass: @$element.data "wrapper-class" + radioAllOff: @$element.data "radio-all-off" + , options + @$wrapper = $ "
", + class: do => + classes = ["#{@options.baseClass}"].concat @_getClasses @options.wrapperClass + + classes.push if @options.state then "#{@options.baseClass}-on" else "#{@options.baseClass}-off" + classes.push "#{@options.baseClass}-#{@options.size}" if @options.size? + classes.push "#{@options.baseClass}-animate" if @options.animate + classes.push "#{@options.baseClass}-disabled" if @options.disabled + classes.push "#{@options.baseClass}-readonly" if @options.readonly + classes.push "#{@options.baseClass}-indeterminate" if @options.indeterminate + classes.push "#{@options.baseClass}-id-#{@$element.attr("id")}" if @$element.attr "id" + classes.join " " + @$container = $ "
", + class: "#{@options.baseClass}-container" + @$on = $ "", + html: @options.onText, + class: "#{@options.baseClass}-handle-on #{@options.baseClass}-#{@options.onColor}" + @$off = $ "", + html: @options.offText, + class: "#{@options.baseClass}-handle-off #{@options.baseClass}-#{@options.offColor}" + @$label = $ "
`s and ``s. +@table-cell-padding: 8px; +//** Padding for cells in `.table-condensed`. +@table-condensed-cell-padding: 5px; + +//** Default background color used for all tables. +@table-bg: transparent; +//** Background color used for `.table-striped`. +@table-bg-accent: #f9f9f9; +//** Background color used for `.table-hover`. +@table-bg-hover: #f5f5f5; +@table-bg-active: @table-bg-hover; + +//** Border color for table and cell borders. +@table-border-color: #ddd; + + +//== Buttons +// +//## For each of Bootstrap's buttons, define text, background and border color. + +@btn-font-weight: normal; + +@btn-default-color: #333; +@btn-default-bg: #fff; +@btn-default-border: #ccc; + +@btn-primary-color: #fff; +@btn-primary-bg: @brand-primary; +@btn-primary-border: darken(@btn-primary-bg, 5%); + +@btn-success-color: #fff; +@btn-success-bg: @brand-success; +@btn-success-border: darken(@btn-success-bg, 5%); + +@btn-info-color: #fff; +@btn-info-bg: @brand-info; +@btn-info-border: darken(@btn-info-bg, 5%); + +@btn-warning-color: #fff; +@btn-warning-bg: @brand-warning; +@btn-warning-border: darken(@btn-warning-bg, 5%); + +@btn-danger-color: #fff; +@btn-danger-bg: @brand-danger; +@btn-danger-border: darken(@btn-danger-bg, 5%); + +@btn-link-disabled-color: @gray-light; + + +//== Forms +// +//## + +//** `` background color +@input-bg: #fff; +//** `` background color +@input-bg-disabled: @gray-lighter; + +//** Text color for ``s +@input-color: @gray; +//** `` border color +@input-border: #ccc; +//** `` border radius +@input-border-radius: @border-radius-base; +//** Border color for inputs on focus +@input-border-focus: #66afe9; + +//** Placeholder text color +@input-color-placeholder: @gray-light; + +//** Default `.form-control` height +@input-height-base: (@line-height-computed + (@padding-base-vertical * 2) + 2); +//** Large `.form-control` height +@input-height-large: (ceil(@font-size-large * @line-height-large) + (@padding-large-vertical * 2) + 2); +//** Small `.form-control` height +@input-height-small: (floor(@font-size-small * @line-height-small) + (@padding-small-vertical * 2) + 2); + +@legend-color: @gray-dark; +@legend-border-color: #e5e5e5; + +//** Background color for textual input addons +@input-group-addon-bg: @gray-lighter; +//** Border color for textual input addons +@input-group-addon-border-color: @input-border; + + +//== Dropdowns +// +//## Dropdown menu container and contents. + +//** Background for the dropdown menu. +@dropdown-bg: #fff; +//** Dropdown menu `border-color`. +@dropdown-border: rgba(0,0,0,.15); +//** Dropdown menu `border-color` **for IE8**. +@dropdown-fallback-border: #ccc; +//** Divider color for between dropdown items. +@dropdown-divider-bg: #e5e5e5; + +//** Dropdown link text color. +@dropdown-link-color: @gray-dark; +//** Hover color for dropdown links. +@dropdown-link-hover-color: darken(@gray-dark, 5%); +//** Hover background for dropdown links. +@dropdown-link-hover-bg: #f5f5f5; + +//** Active dropdown menu item text color. +@dropdown-link-active-color: @component-active-color; +//** Active dropdown menu item background color. +@dropdown-link-active-bg: @component-active-bg; + +//** Disabled dropdown menu item background color. +@dropdown-link-disabled-color: @gray-light; + +//** Text color for headers within dropdown menus. +@dropdown-header-color: @gray-light; + +// Note: Deprecated @dropdown-caret-color as of v3.1.0 +@dropdown-caret-color: #000; + + +//-- Z-index master list +// +// Warning: Avoid customizing these values. They're used for a bird's eye view +// of components dependent on the z-axis and are designed to all work together. +// +// Note: These variables are not generated into the Customizer. + +@zindex-navbar: 1000; +@zindex-dropdown: 1000; +@zindex-popover: 1010; +@zindex-tooltip: 1030; +@zindex-navbar-fixed: 1030; +@zindex-modal-background: 1040; +@zindex-modal: 1050; + + +//== Media queries breakpoints +// +//## Define the breakpoints at which your layout will change, adapting to different screen sizes. + +// Extra small screen / phone +// Note: Deprecated @screen-xs and @screen-phone as of v3.0.1 +@screen-xs: 480px; +@screen-xs-min: @screen-xs; +@screen-phone: @screen-xs-min; + +// Small screen / tablet +// Note: Deprecated @screen-sm and @screen-tablet as of v3.0.1 +@screen-sm: 768px; +@screen-sm-min: @screen-sm; +@screen-tablet: @screen-sm-min; + +// Medium screen / desktop +// Note: Deprecated @screen-md and @screen-desktop as of v3.0.1 +@screen-md: 992px; +@screen-md-min: @screen-md; +@screen-desktop: @screen-md-min; + +// Large screen / wide desktop +// Note: Deprecated @screen-lg and @screen-lg-desktop as of v3.0.1 +@screen-lg: 1200px; +@screen-lg-min: @screen-lg; +@screen-lg-desktop: @screen-lg-min; + +// So media queries don't overlap when required, provide a maximum +@screen-xs-max: (@screen-sm-min - 1); +@screen-sm-max: (@screen-md-min - 1); +@screen-md-max: (@screen-lg-min - 1); + + +//== Grid system +// +//## Define your custom responsive grid. + +//** Number of columns in the grid. +@grid-columns: 12; +//** Padding between columns. Gets divided in half for the left and right. +@grid-gutter-width: 30px; +// Navbar collapse +//** Point at which the navbar becomes uncollapsed. +@grid-float-breakpoint: @screen-sm-min; +//** Point at which the navbar begins collapsing. +@grid-float-breakpoint-max: (@grid-float-breakpoint - 1); + + +//== Container sizes +// +//## Define the maximum width of `.container` for different screen sizes. + +// Small screen / tablet +@container-tablet: ((720px + @grid-gutter-width)); +//** For `@screen-sm-min` and up. +@container-sm: @container-tablet; + +// Medium screen / desktop +@container-desktop: ((940px + @grid-gutter-width)); +//** For `@screen-md-min` and up. +@container-md: @container-desktop; + +// Large screen / wide desktop +@container-large-desktop: ((1140px + @grid-gutter-width)); +//** For `@screen-lg-min` and up. +@container-lg: @container-large-desktop; + + +//== Navbar +// +//## + +// Basics of a navbar +@navbar-height: 50px; +@navbar-margin-bottom: @line-height-computed; +@navbar-border-radius: @border-radius-base; +@navbar-padding-horizontal: floor((@grid-gutter-width / 2)); +@navbar-padding-vertical: ((@navbar-height - @line-height-computed) / 2); +@navbar-collapse-max-height: 340px; + +@navbar-default-color: #777; +@navbar-default-bg: #f8f8f8; +@navbar-default-border: darken(@navbar-default-bg, 6.5%); + +// Navbar links +@navbar-default-link-color: #777; +@navbar-default-link-hover-color: #333; +@navbar-default-link-hover-bg: transparent; +@navbar-default-link-active-color: #555; +@navbar-default-link-active-bg: darken(@navbar-default-bg, 6.5%); +@navbar-default-link-disabled-color: #ccc; +@navbar-default-link-disabled-bg: transparent; + +// Navbar brand label +@navbar-default-brand-color: @navbar-default-link-color; +@navbar-default-brand-hover-color: darken(@navbar-default-brand-color, 10%); +@navbar-default-brand-hover-bg: transparent; + +// Navbar toggle +@navbar-default-toggle-hover-bg: #ddd; +@navbar-default-toggle-icon-bar-bg: #888; +@navbar-default-toggle-border-color: #ddd; + + +// Inverted navbar +// Reset inverted navbar basics +@navbar-inverse-color: @gray-light; +@navbar-inverse-bg: #222; +@navbar-inverse-border: darken(@navbar-inverse-bg, 10%); + +// Inverted navbar links +@navbar-inverse-link-color: @gray-light; +@navbar-inverse-link-hover-color: #fff; +@navbar-inverse-link-hover-bg: transparent; +@navbar-inverse-link-active-color: @navbar-inverse-link-hover-color; +@navbar-inverse-link-active-bg: darken(@navbar-inverse-bg, 10%); +@navbar-inverse-link-disabled-color: #444; +@navbar-inverse-link-disabled-bg: transparent; + +// Inverted navbar brand label +@navbar-inverse-brand-color: @navbar-inverse-link-color; +@navbar-inverse-brand-hover-color: #fff; +@navbar-inverse-brand-hover-bg: transparent; + +// Inverted navbar toggle +@navbar-inverse-toggle-hover-bg: #333; +@navbar-inverse-toggle-icon-bar-bg: #fff; +@navbar-inverse-toggle-border-color: #333; + + +//== Navs +// +//## + +//=== Shared nav styles +@nav-link-padding: 10px 15px; +@nav-link-hover-bg: @gray-lighter; + +@nav-disabled-link-color: @gray-light; +@nav-disabled-link-hover-color: @gray-light; + +@nav-open-link-hover-color: #fff; + +//== Tabs +@nav-tabs-border-color: #ddd; + +@nav-tabs-link-hover-border-color: @gray-lighter; + +@nav-tabs-active-link-hover-bg: @body-bg; +@nav-tabs-active-link-hover-color: @gray; +@nav-tabs-active-link-hover-border-color: #ddd; + +@nav-tabs-justified-link-border-color: #ddd; +@nav-tabs-justified-active-link-border-color: @body-bg; + +//== Pills +@nav-pills-border-radius: @border-radius-base; +@nav-pills-active-link-hover-bg: @component-active-bg; +@nav-pills-active-link-hover-color: @component-active-color; + + +//== Pagination +// +//## + +@pagination-color: @link-color; +@pagination-bg: #fff; +@pagination-border: #ddd; + +@pagination-hover-color: @link-hover-color; +@pagination-hover-bg: @gray-lighter; +@pagination-hover-border: #ddd; + +@pagination-active-color: #fff; +@pagination-active-bg: @brand-primary; +@pagination-active-border: @brand-primary; + +@pagination-disabled-color: @gray-light; +@pagination-disabled-bg: #fff; +@pagination-disabled-border: #ddd; + + +//== Pager +// +//## + +@pager-bg: @pagination-bg; +@pager-border: @pagination-border; +@pager-border-radius: 15px; + +@pager-hover-bg: @pagination-hover-bg; + +@pager-active-bg: @pagination-active-bg; +@pager-active-color: @pagination-active-color; + +@pager-disabled-color: @pagination-disabled-color; + + +//== Jumbotron +// +//## + +@jumbotron-padding: 30px; +@jumbotron-color: inherit; +@jumbotron-bg: @gray-lighter; +@jumbotron-heading-color: inherit; +@jumbotron-font-size: ceil((@font-size-base * 1.5)); + + +//== Form states and alerts +// +//## Define colors for form feedback states and, by default, alerts. + +@state-success-text: #3c763d; +@state-success-bg: #dff0d8; +@state-success-border: darken(spin(@state-success-bg, -10), 5%); + +@state-info-text: #31708f; +@state-info-bg: #d9edf7; +@state-info-border: darken(spin(@state-info-bg, -10), 7%); + +@state-warning-text: #8a6d3b; +@state-warning-bg: #fcf8e3; +@state-warning-border: darken(spin(@state-warning-bg, -10), 5%); + +@state-danger-text: #a94442; +@state-danger-bg: #f2dede; +@state-danger-border: darken(spin(@state-danger-bg, -10), 5%); + + +//== Tooltips +// +//## + +//** Tooltip max width +@tooltip-max-width: 200px; +//** Tooltip text color +@tooltip-color: #fff; +//** Tooltip background color +@tooltip-bg: #000; +@tooltip-opacity: .9; + +//** Tooltip arrow width +@tooltip-arrow-width: 5px; +//** Tooltip arrow color +@tooltip-arrow-color: @tooltip-bg; + + +//== Popovers +// +//## + +//** Popover body background color +@popover-bg: #fff; +//** Popover maximum width +@popover-max-width: 276px; +//** Popover border color +@popover-border-color: rgba(0,0,0,.2); +//** Popover fallback border color +@popover-fallback-border-color: #ccc; + +//** Popover title background color +@popover-title-bg: darken(@popover-bg, 3%); + +//** Popover arrow width +@popover-arrow-width: 10px; +//** Popover arrow color +@popover-arrow-color: #fff; + +//** Popover outer arrow width +@popover-arrow-outer-width: (@popover-arrow-width + 1); +//** Popover outer arrow color +@popover-arrow-outer-color: fadein(@popover-border-color, 5%); +//** Popover outer arrow fallback color +@popover-arrow-outer-fallback-color: darken(@popover-fallback-border-color, 20%); + + +//== Labels +// +//## + +//** Default label background color +@label-default-bg: @gray-light; +//** Primary label background color +@label-primary-bg: @brand-primary; +//** Success label background color +@label-success-bg: @brand-success; +//** Info label background color +@label-info-bg: @brand-info; +//** Warning label background color +@label-warning-bg: @brand-warning; +//** Danger label background color +@label-danger-bg: @brand-danger; + +//** Default label text color +@label-color: #fff; +//** Default text color of a linked label +@label-link-hover-color: #fff; + + +//== Modals +// +//## + +//** Padding applied to the modal body +@modal-inner-padding: 20px; + +//** Padding applied to the modal title +@modal-title-padding: 15px; +//** Modal title line-height +@modal-title-line-height: @line-height-base; + +//** Background color of modal content area +@modal-content-bg: #fff; +//** Modal content border color +@modal-content-border-color: rgba(0,0,0,.2); +//** Modal content border color **for IE8** +@modal-content-fallback-border-color: #999; + +//** Modal backdrop background color +@modal-backdrop-bg: #000; +//** Modal backdrop opacity +@modal-backdrop-opacity: .5; +//** Modal header border color +@modal-header-border-color: #e5e5e5; +//** Modal footer border color +@modal-footer-border-color: @modal-header-border-color; + +@modal-lg: 900px; +@modal-md: 600px; +@modal-sm: 300px; + + +//== Alerts +// +//## Define alert colors, border radius, and padding. + +@alert-padding: 15px; +@alert-border-radius: @border-radius-base; +@alert-link-font-weight: bold; + +@alert-success-bg: @state-success-bg; +@alert-success-text: @state-success-text; +@alert-success-border: @state-success-border; + +@alert-info-bg: @state-info-bg; +@alert-info-text: @state-info-text; +@alert-info-border: @state-info-border; + +@alert-warning-bg: @state-warning-bg; +@alert-warning-text: @state-warning-text; +@alert-warning-border: @state-warning-border; + +@alert-danger-bg: @state-danger-bg; +@alert-danger-text: @state-danger-text; +@alert-danger-border: @state-danger-border; + + +//== Progress bars +// +//## + +//** Background color of the whole progress component +@progress-bg: #f5f5f5; +//** Progress bar text color +@progress-bar-color: #fff; + +//** Default progress bar color +@progress-bar-bg: @brand-primary; +//** Success progress bar color +@progress-bar-success-bg: @brand-success; +//** Warning progress bar color +@progress-bar-warning-bg: @brand-warning; +//** Danger progress bar color +@progress-bar-danger-bg: @brand-danger; +//** Info progress bar color +@progress-bar-info-bg: @brand-info; + + +//== List group +// +//## + +//** Background color on `.list-group-item` +@list-group-bg: #fff; +//** `.list-group-item` border color +@list-group-border: #ddd; +//** List group border radius +@list-group-border-radius: @border-radius-base; + +//** Background color of single list elements on hover +@list-group-hover-bg: #f5f5f5; +//** Text color of active list elements +@list-group-active-color: @component-active-color; +//** Background color of active list elements +@list-group-active-bg: @component-active-bg; +//** Border color of active list elements +@list-group-active-border: @list-group-active-bg; +@list-group-active-text-color: lighten(@list-group-active-bg, 40%); + +@list-group-link-color: #555; +@list-group-link-heading-color: #333; + + +//== Panels +// +//## + +@panel-bg: #fff; +@panel-body-padding: 15px; +@panel-border-radius: @border-radius-base; + +//** Border color for elements within panels +@panel-inner-border: #ddd; +@panel-footer-bg: #f5f5f5; + +@panel-default-text: @gray-dark; +@panel-default-border: #ddd; +@panel-default-heading-bg: #f5f5f5; + +@panel-primary-text: #fff; +@panel-primary-border: @brand-primary; +@panel-primary-heading-bg: @brand-primary; + +@panel-success-text: @state-success-text; +@panel-success-border: @state-success-border; +@panel-success-heading-bg: @state-success-bg; + +@panel-info-text: @state-info-text; +@panel-info-border: @state-info-border; +@panel-info-heading-bg: @state-info-bg; + +@panel-warning-text: @state-warning-text; +@panel-warning-border: @state-warning-border; +@panel-warning-heading-bg: @state-warning-bg; + +@panel-danger-text: @state-danger-text; +@panel-danger-border: @state-danger-border; +@panel-danger-heading-bg: @state-danger-bg; + + +//== Thumbnails +// +//## + +//** Padding around the thumbnail image +@thumbnail-padding: 4px; +//** Thumbnail background color +@thumbnail-bg: @body-bg; +//** Thumbnail border color +@thumbnail-border: #ddd; +//** Thumbnail border radius +@thumbnail-border-radius: @border-radius-base; + +//** Custom text color for thumbnail captions +@thumbnail-caption-color: @text-color; +//** Padding around the thumbnail caption +@thumbnail-caption-padding: 9px; + + +//== Wells +// +//## + +@well-bg: #f5f5f5; +@well-border: darken(@well-bg, 7%); + + +//== Badges +// +//## + +@badge-color: #fff; +//** Linked badge text color on hover +@badge-link-hover-color: #fff; +@badge-bg: @gray-light; + +//** Badge text color in active nav link +@badge-active-color: @link-color; +//** Badge background color in active nav link +@badge-active-bg: #fff; + +@badge-font-weight: bold; +@badge-line-height: 1; +@badge-border-radius: 10px; + + +//== Breadcrumbs +// +//## + +@breadcrumb-padding-vertical: 8px; +@breadcrumb-padding-horizontal: 15px; +//** Breadcrumb background color +@breadcrumb-bg: #f5f5f5; +//** Breadcrumb text color +@breadcrumb-color: #ccc; +//** Text color of current page in the breadcrumb +@breadcrumb-active-color: @gray-light; +//** Textual separator for between breadcrumb elements +@breadcrumb-separator: "/"; + + +//== Carousel +// +//## + +@carousel-text-shadow: 0 1px 2px rgba(0,0,0,.6); + +@carousel-control-color: #fff; +@carousel-control-width: 15%; +@carousel-control-opacity: .5; +@carousel-control-font-size: 20px; + +@carousel-indicator-active-bg: #fff; +@carousel-indicator-border-color: #fff; + +@carousel-caption-color: #fff; + + +//== Close +// +//## + +@close-font-weight: bold; +@close-color: #000; +@close-text-shadow: 0 1px 0 #fff; + + +//== Code +// +//## + +@code-color: #c7254e; +@code-bg: #f9f2f4; + +@kbd-color: #fff; +@kbd-bg: #333; + +@pre-bg: #f5f5f5; +@pre-color: @gray-dark; +@pre-border-color: #ccc; +@pre-scrollable-max-height: 340px; + + +//== Type +// +//## + +//** Text muted color +@text-muted: @gray-light; +//** Abbreviations and acronyms border color +@abbr-border-color: @gray-light; +//** Headings small color +@headings-small-color: @gray-light; +//** Blockquote small color +@blockquote-small-color: @gray-light; +//** Blockquote font size +@blockquote-font-size: (@font-size-base * 1.25); +//** Blockquote border color +@blockquote-border-color: @gray-lighter; +//** Page header border color +@page-header-border-color: @gray-lighter; + + +//== Miscellaneous +// +//## + +//** Horizontal line color. +@hr-border: @gray-lighter; + +//** Horizontal offset for forms and lists. +@component-offset-horizontal: 180px; diff --git a/client/public/images/Icons/bootstrap/bootstrap/src/test/bootstrap-switch.coffee b/client/public/images/Icons/bootstrap/bootstrap/src/test/bootstrap-switch.coffee new file mode 100644 index 0000000..2093a26 --- /dev/null +++ b/client/public/images/Icons/bootstrap/bootstrap/src/test/bootstrap-switch.coffee @@ -0,0 +1 @@ +describe "Bootstrap Switch", -> \ No newline at end of file diff --git a/client/public/images/TOTO.png b/client/public/images/TOTO.png new file mode 100644 index 0000000000000000000000000000000000000000..a41660900d25895051b98abd76dbd872d0b9de35 GIT binary patch literal 72758 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

O^9N+L&l&D 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 literal 0 HcmV?d00001 diff --git a/client/public/images/bitMapTemp.png b/client/public/images/bitMapTemp.png new file mode 100644 index 0000000000000000000000000000000000000000..e99f59e54a59dbc30551f181430dd3e797243170 GIT binary patch literal 3327 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 JPDHLkV1lbpOgI1l literal 0 HcmV?d00001 diff --git a/client/public/images/bitMapTempTwo.png b/client/public/images/bitMapTempTwo.png new file mode 100644 index 0000000000000000000000000000000000000000..0e455a1041857ed87a1ac32df5278b13edcb9571 GIT binary patch literal 3332 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 F{s%%D09*h7 literal 0 HcmV?d00001 diff --git a/client/public/images/chillerOne.png b/client/public/images/chillerOne.png new file mode 100644 index 0000000000000000000000000000000000000000..039e7dd9ad88b619179215e047deaf1d0c3105ce GIT binary patch literal 3769 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

+
+

Manual Override

+ {alertMessage && ( +
+ + × + + Error! {alertMessage} +
+ )} +
+ {console.log(state)} + {Object.keys(state) + .filter((device, index) => index <= 4 && (device === 'boiler' || device.startsWith('chiller'))) // Allow only boiler and 4 chillers + .map((device) => ( +
+ +
+ {['auto', 'on', 'off'].map((value) => ( + + ))} +
+
+ ))} +
+ +
+
+ ); +}; + +export default ManualOverride; diff --git a/client/src/components/Modebus/Modbus.jsx b/client/src/components/Modebus/Modbus.jsx new file mode 100644 index 0000000..ff58317 --- /dev/null +++ b/client/src/components/Modebus/Modbus.jsx @@ -0,0 +1,36 @@ +import React from "react"; + +const Modbus = ({ homedata }) => { + const returnTemp = homedata?.results?.return_temp || "N/A"; + const waterOutTemp = homedata?.results?.water_out_temp || "N/A"; + const averageTempDifference = homedata?.efficiency?.average_temperature_difference || "N/A"; + const cascadeFireRateAvg = homedata?.efficiency?.cascade_fire_rate_avg || "N/A"; + + return ( +
+

Modbus

+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ ); +}; + +export default Modbus; diff --git a/client/src/components/Navbar/Navbar.jsx b/client/src/components/Navbar/Navbar.jsx new file mode 100644 index 0000000..1102929 --- /dev/null +++ b/client/src/components/Navbar/Navbar.jsx @@ -0,0 +1,94 @@ +import React, { useState, useEffect } from 'react'; +import { FaSun, FaSnowflake } from 'react-icons/fa'; +import "./nav.css"; +import { useSelector, useDispatch } from 'react-redux'; +import { setSeason } from '../../features/state/seasonSlice'; + +const Navbar = () => { + const season = useSelector((state) => state.season.season); + const dispatch = useDispatch(); + + const [countdown, setCountdown] = useState(null); + const [isSwitching, setIsSwitching] = useState(false); + const [isTimerOn, setIsTimeron] = useState(false); + + const switchSeason = (newMode, season) => { + setIsSwitching(true); // Start the blur effect and show the message + fetch('http://localhost:80/switch_mode', { + method: 'POST', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + }, + body: new URLSearchParams({ mode: newMode }), + }) + .then(response => response.json()) + .then(data => { + console.log('Mode switched:', data); + startCountdown(); // Start countdown when API response is received + season === 0 ? dispatch(setSeason('Winter')) : season === 1 ? dispatch(setSeason('Summer')) : dispatch(setSeason('Default')); + setIsSwitching(false); // Stop the blur effect + }) + .catch(error => { + console.error('Error switching mode:', error); + setIsSwitching(false); // Stop the blur effect if there's an error + }); + }; + + const startCountdown = () => { + setIsTimeron(true) + setCountdown(120); // Start the countdown from 120 seconds (2 minutes) + }; + + useEffect(() => { + if (countdown !== null && countdown > 0) { + const timer = setTimeout(() => { + setCountdown(countdown - 1); + }, 1000); + return () => clearTimeout(timer); + } else if (countdown === 0) { + setCountdown(null); // Reset countdown when it reaches 0 + setIsTimeron(false); + } + }, [countdown]); + + return ( + <> + {isSwitching && ( +
+
+ Please wait... +
+
+ )} +
+
+

Chronos

+ {countdown !== null && ( +

Mode switching in: {Math.floor(countdown / 60)}:{('0' + countdown % 60).slice(-2)} minutes

+ )} +
+
+

--- {season} ---

+
+
+ {switchSeason(3, 0)} : null} // 3 is the code for winter, 0 for Winter + > + + Winter + + {switchSeason(2, 1)} : null} // 2 is the code for summer, 1 for Summer + > + + Summer + +
+
+ + ); +}; + +export default Navbar; diff --git a/client/src/components/Navbar/nav.css b/client/src/components/Navbar/nav.css new file mode 100644 index 0000000..5c7827e --- /dev/null +++ b/client/src/components/Navbar/nav.css @@ -0,0 +1,82 @@ +.nav { + display: flex; + justify-content: space-between; + align-items: center; + background-color: #333645; + padding: 1rem 2rem; + box-shadow: 0 6px 15px rgba(0, 0, 0, 0.2); + } + + .left .logo { + font-size: 1.8rem; + color: #21c8af; + font-weight: bold; + margin: 0; + } + + .left .status { + font-size: 1.2rem; + color: #ffffff; + margin: 0; + margin-top: 0.2rem; + } + + .right { + display: flex; + gap: 1.5rem; + } + .right .seasonNicon{ + display: flex; + flex-direction: column; + gap: 8px; + align-items: center; + font-size: 1.2rem; + color: #ffffff; + cursor: pointer; + } + + .season-mode { + font-size: 1rem; + color: #ffffff; + padding: 0.5rem 1rem; + background-color: #1e443e; + border-radius: 8px; + cursor: pointer; + transition: background-color 0.3s ease; + } + + .season-mode:hover { + background-color: #21c8af; + color: #1e443e; + } + /* CSS for the blurred effect */ +.blurred { + filter: blur(5px); + pointer-events: none; /* Prevent interactions with blurred content */ +} + +/* CSS for the overlay */ +.overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.5); + display: flex; + justify-content: center; + align-items: center; + z-index: 1000; +} + +.message { + color: white; + font-size: 24px; + font-weight: bold; +} +.disabled { + opacity: 0.5; + pointer-events: none; /* Makes the element unclickable */ + cursor: not-allowed; /* Shows a "not-allowed" cursor */ +} + diff --git a/client/src/components/Sensor/TableTemplate.jsx b/client/src/components/Sensor/TableTemplate.jsx new file mode 100644 index 0000000..b6f3bd0 --- /dev/null +++ b/client/src/components/Sensor/TableTemplate.jsx @@ -0,0 +1,23 @@ +import React from "react"; +import "./tabletemplate.css" +const TableTemplate = ({homedata}) => { + const intelTemp = homedata?.results?.return_temp || "N/A"; + const outletTemp = homedata?.results?.water_out_temp || "N/A"; + + return ( +
+

Sensors

+
+ + +
+
+ + +
+ +
+ ); +}; + +export default TableTemplate; diff --git a/client/src/components/Sensor/tabletemplate.css b/client/src/components/Sensor/tabletemplate.css new file mode 100644 index 0000000..fd15518 --- /dev/null +++ b/client/src/components/Sensor/tabletemplate.css @@ -0,0 +1,52 @@ +.season { + background-color: #333645; + border-radius: 16px; + box-shadow: 0 6px 15px rgba(0, 0, 0, 0.2); + text-align: center; + border: 2px solid #4c5c77; + padding: 1rem 0rem; + width: 100%; +} + +.season-title { + font-size: 1rem; + color: #ffffff; + margin-bottom: 1rem; +} + +.season-group { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 1rem; + margin-bottom: 1rem; + text-align: left; + width: 80%; + margin-left: 10%; + } + + .season-group label { + grid-column: 1; + display: block; + font-size: 1rem; + color: #ffffff; + margin-bottom: 0.5rem; + } + + .season-group input { + grid-column: 2; + width: 100%; + padding: 0.5rem 0.5rem; + font-size: 1rem; + border: 1px solid #4c5c77; + border-radius: 8px; + background-color: #2c2f38; + color: #ffffff; + text-align: center; + height: 20px; + } + + .season-group input[readonly] { + background-color: #a8a8a8; + cursor: not-allowed; /* Indicates the input is not editable */ + border: 1px solid #a1a1a1; /* Slightly different border to show it's disabled */ + } \ No newline at end of file diff --git a/client/src/components/SummerMode/SummerMode.css b/client/src/components/SummerMode/SummerMode.css new file mode 100644 index 0000000..2d04202 --- /dev/null +++ b/client/src/components/SummerMode/SummerMode.css @@ -0,0 +1,65 @@ +.winter-mode { + background-color: #333645; + border-radius: 16px; + box-shadow: 0 6px 15px rgba(0, 0, 0, 0.2); + text-align: center; + border: 2px solid #4c5c77; + width: 100%; + padding-bottom: 10px; + } + + .mode-header { + margin-bottom: 1.5rem; + } + + .mode-header h2 { + font-size: 1.5rem; + color: #ffffff; + margin-bottom: 0.5rem; + } + + .winter-mode .status { + font-size: 1rem; + color: #21c8af; + background-color: #1e443e; + padding: 0.5rem 1rem; + border-radius: 8px; + width: 50%; + margin: auto; + } + + .temperature-display { + display: flex; + justify-content: space-around; + margin-top: 1.5rem; + } + + .temp-circle { + background: radial-gradient(circle, rgba(0,0,0,1) 35%, rgba(60,60,70,1) 100%); + width: 110px; + height: 110px; + border-radius: 50%; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + box-shadow: inset 0 0 8px rgba(255, 255, 255, 0.2), 0 0 10px rgba(0, 0, 0, 0.5); + margin: 0 10px; + border: 2px solid #3e475a; + } + + .temp-value { + font-size: 12px; + color: #fff; + font-weight: bold; + text-shadow: 0 1px 3px rgba(0, 0, 0, 0.6); + } + + .temp-label { + font-size: 12px; + color: #dddddd; + font-weight: 600; + margin-top: 0.3rem; + text-transform: uppercase; + letter-spacing: 0.05rem; + } diff --git a/client/src/components/SummerMode/SummerMode.jsx b/client/src/components/SummerMode/SummerMode.jsx new file mode 100644 index 0000000..c1668fe --- /dev/null +++ b/client/src/components/SummerMode/SummerMode.jsx @@ -0,0 +1,31 @@ +import React from "react"; +import "./SummerMode.css"; + +const SummerMode = ({ homedata }) => { + // Extract the necessary data from homedata + const mode = homedata?.results?.mode === 1 ? "Summer Mode" : "Winter Mode"; + const outdoorTemp = homedata?.results?.outside_temp || "N/A"; + const avgTemp = homedata?.efficiency?.average_temperature_difference || "N/A"; + const systemStatus = homedata?.chronos_status ? "ONLINE" : "OFFLINE"; + + return ( +
+
+

{mode}

+
System - {systemStatus}
+
+
+
+
{outdoorTemp}°F
+
Outdoor Temp
+
+
+
{avgTemp}°F
+
Avg Temp (96 hrs)
+
+
+
+ ); +}; + +export default SummerMode; diff --git a/client/src/components/SwitchTime/SwitchTime.jsx b/client/src/components/SwitchTime/SwitchTime.jsx new file mode 100644 index 0000000..a18b52e --- /dev/null +++ b/client/src/components/SwitchTime/SwitchTime.jsx @@ -0,0 +1,9 @@ +import React from 'react' + +const SwitchTime = () => { + return ( +
SwitchTime
+ ) +} + +export default SwitchTime \ No newline at end of file diff --git a/client/src/components/TemperatureGraph/TemperatureGraph.css b/client/src/components/TemperatureGraph/TemperatureGraph.css new file mode 100644 index 0000000..750c8dc --- /dev/null +++ b/client/src/components/TemperatureGraph/TemperatureGraph.css @@ -0,0 +1,38 @@ +.graph-container { + background-color: #333645; + border-radius: 16px; + box-shadow: 0 6px 15px rgba(0, 0, 0, 0.2); + color: #ffffff; + text-align: center; + width: 100%; + height: auto; + } + .graphbody{ + padding: 20px; + } + + .graph-container h3 { + margin-bottom: 20px; + font-size: 1.5rem; + color: #ffffff; + } + + .download-button { + background-color: #4c5c77; + color: #ffffff; + padding: 10px 20px; + border: none; + border-radius: 8px; + cursor: pointer; + font-size: 0.9rem; + margin-top: 30px; + + } + + .download-button:hover { + background-color: #6f83b0; + } +.graphChartWrapper{ + background-color: green; + padding: 50px; +} \ No newline at end of file diff --git a/client/src/components/TemperatureGraph/TemperatureGraph.jsx b/client/src/components/TemperatureGraph/TemperatureGraph.jsx new file mode 100644 index 0000000..33ac8c6 --- /dev/null +++ b/client/src/components/TemperatureGraph/TemperatureGraph.jsx @@ -0,0 +1,101 @@ +import React, { useEffect, useState } from 'react'; +import { LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer, Label } from 'recharts'; +import './TemperatureGraph.css'; + +const TemperatureGraph = () => { + const [data, setData] = useState([]); + + useEffect(() => { + const fetchData = async () => { + try { + const response = await fetch('http://localhost:80/chart_data'); + const result = await response.json(); + + // Transform the API response into the desired format + const mappedData = result.map((entry, index) => { + const monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; + const date = new Date(entry.date); + const month = monthNames[date.getMonth()]; + + return { + name: month, + inlet: entry["column-2"], + outlet: entry["column-1"], + }; + }); + + setData(mappedData); + } catch (error) { + console.error('Error fetching data:', error); + } + }; + + fetchData(); + }, []); + + const convertToCSV = (arr) => { + const array = [Object.keys(arr[0])].concat(arr); + return array.map(it => Object.values(it).toString()).join('\n'); + }; + + const downloadCSV = () => { + const csv = convertToCSV(data); + const blob = new Blob([csv], { type: 'text/csv;charset=utf-8;' }); + const url = URL.createObjectURL(blob); + const link = document.createElement('a'); + link.href = url; + link.setAttribute('download', 'temperature_log.csv'); + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + }; + const downloadLogs = async () => { + try { + const response = await fetch('http://localhost:80/chart_data'); + const blob = await response.blob(); // Get the response as a Blob + + // Create a link element + const link = document.createElement('a'); + link.href = URL.createObjectURL(blob); + link.download = 'chart_data'; // Set the file name (you can add the correct extension here if known, e.g., 'chart_data.csv') + + // Append the link to the body and trigger the download + document.body.appendChild(link); + link.click(); + + // Remove the link after download + document.body.removeChild(link); + + } catch (error) { + console.error('Error fetching data:', error); + } + }; + + + return ( +
+
+

Inlet/Outlet Temperature History

+ + + + + + + + + + + + + + + +
+
+ ); +}; + +export default TemperatureGraph; diff --git a/client/src/components/UserSettings/UserSettings.css b/client/src/components/UserSettings/UserSettings.css new file mode 100644 index 0000000..c521b00 --- /dev/null +++ b/client/src/components/UserSettings/UserSettings.css @@ -0,0 +1,63 @@ +.user-settings { + background-color: #333645; + border-radius: 16px; + box-shadow: 0 6px 15px rgba(0, 0, 0, 0.2); + text-align: center; + border: 2px solid #4c5c77; + padding: 1rem 0rem; + width: 100%; +} + +.section-title { + font-size: 1rem; + color: #ffffff; + margin-bottom: 1rem; +} + +.settings-group { + margin-bottom: 1rem; + text-align: left; + width:80%; + margin-left: 10%; +} + +.settings-group label { + display: block; + font-size: 1rem; + color: #ffffff; + margin: auto; + margin-bottom: 0.5rem; +} + +.settings-group input { + width: 90%; + padding: 0.5rem 0rem; + font-size: 1rem; + border: 1px solid #4c5c77; + border-radius: 8px; + background-color: #2c2f38; + color: #ffffff; + margin: auto; + padding-left: 15px; +} + +.settings-group input[readonly] { + background-color: #a8a8a8; + cursor: not-allowed; /* Indicates the input is not editable */ + border: 1px solid #a1a1a1; /* Slightly different border to show it's disabled */ +} + +.update-btn { + background-color: #21c8af; + color: #ffffff; + border: none; + padding: 0.75rem 1.5rem; + font-size: 1rem; + border-radius: 8px; + cursor: pointer; + margin-top: 1rem; +} + +.update-btn:hover { + background-color: #1e9d8c; +} diff --git a/client/src/components/UserSettings/UserSettings.jsx b/client/src/components/UserSettings/UserSettings.jsx new file mode 100644 index 0000000..6b99bfa --- /dev/null +++ b/client/src/components/UserSettings/UserSettings.jsx @@ -0,0 +1,180 @@ +import React, { useState, useEffect } from "react"; +import "./UserSettings.css"; + +const UserSettings = ({ data }) => { + const [formData, setFormData] = useState({ + tolerance: "", + setpoint_min: "", + setpoint_max: "", + setpoint_offset_summer: "", + setpoint_offset_winter: "", + mode_change_delta_temp: "", + mode_switch_lockout_time: "", + cascade_time: "", + }); + + useEffect(() => { + if (data && data.results) { + setFormData({ + tolerance: data.results.tolerance || "", + setpoint_min: data.results.setpoint_min || "", + setpoint_max: data.results.setpoint_max || "", + setpoint_offset_summer: data.results.setpoint_offset_summer || "", + setpoint_offset_winter: data.results.setpoint_offset_winter || "", + mode_change_delta_temp: data.results.mode_change_delta_temp || "", + mode_switch_lockout_time: data.results.mode_switch_lockout_time || "", + cascade_time: "", // Assuming `cascade_time` isn't in the data object + }); + } + }, [data]); + + if (!data || !data.results) { + return
Loading...
; + } + + const handleInputChange = (e) => { + const { name, value } = e.target; + setFormData({ + ...formData, + [name]: value, + }); + }; + + const handleSubmit = (e) => { + e.preventDefault(); + + fetch("http://localhost:80/update_settings", { + method: "POST", + headers: { + "Content-Type": "application/x-www-form-urlencoded", + }, + body: new URLSearchParams(formData).toString(), + }) + .then((response) => response.json()) + .then((data) => { + console.log("Settings updated:", data); + // Handle success or error response + }) + .catch((error) => { + console.error("Error updating settings:", error); + }); + }; + + return ( +
+

User Settings

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+ ); +}; + +export default UserSettings; diff --git a/client/src/components/UserSettingsFixed/UserSettings.jsx b/client/src/components/UserSettingsFixed/UserSettings.jsx new file mode 100644 index 0000000..278cc33 --- /dev/null +++ b/client/src/components/UserSettingsFixed/UserSettings.jsx @@ -0,0 +1,27 @@ +import React from "react"; +const UserSettingsFixed = () => { + return ( +
+ +
+
+

Baseline Setpoint

+

68.7 °F

+
+
+

THA Setpoint +

+

71.0 °F

+
+
+

THA Setpoint +

+

71.0 °F

+
+
+ +
+ ); +}; + +export default UserSettingsFixed; diff --git a/client/src/components/UserSettingsFixed/UserSettingsFixed.css b/client/src/components/UserSettingsFixed/UserSettingsFixed.css new file mode 100644 index 0000000..cd20352 --- /dev/null +++ b/client/src/components/UserSettingsFixed/UserSettingsFixed.css @@ -0,0 +1,63 @@ +.user-settings { + background-color: #f4f6f9; + padding: 2rem; + border-radius: 12px; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); + max-width: 400px; + margin: 2rem auto; + font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; + } + + .section-title { + font-size: 1.5rem; + color: #333; + margin-bottom: 1.5rem; + text-align: center; + } + + .settings-group { + display: flex; + flex-direction: column; + margin-bottom: 1rem; + } + + .settings-group label { + font-size: 0.9rem; + color: #555; + margin-bottom: 0.5rem; + } + + .settings-group input { + font-size: 1rem; + padding: 0.7rem; + border: 1px solid #ccc; + border-radius: 8px; + background-color: #fff; + color: #333; + transition: border-color 0.3s ease; + } + + .settings-group input:focus { + border-color: #0066ff; + outline: none; + } + + .update-btn { + display: block; + width: 100%; + padding: 0.75rem; + margin-top: 1.5rem; + background-color: #0066ff; + color: #fff; + font-size: 1rem; + font-weight: 600; + border: none; + border-radius: 8px; + cursor: pointer; + transition: background-color 0.3s ease; + } + + .update-btn:hover { + background-color: #0051cc; + } + \ No newline at end of file diff --git a/client/src/components/systemMap/SystemMap.css b/client/src/components/systemMap/SystemMap.css new file mode 100644 index 0000000..6de7930 --- /dev/null +++ b/client/src/components/systemMap/SystemMap.css @@ -0,0 +1,84 @@ +.system-map { + background-color: #333645; + border-radius: 16px; + box-shadow: 0 6px 15px rgba(0, 0, 0, 0.2); + text-align: center; + border: 2px solid #4c5c77; + padding: 1rem; + margin: 0rem auto; + height: auto; +} + +.tankRightArrow-wrapper{ + display: flex; + flex-direction: column; +} +.tankRightArrow-wrapper .arrowUpTemp{ + display: flex; + justify-content: space-between; + padding: 2px 22px; +} + +.tankRightArrow-wrapper img{ + filter: brightness(0) invert(1); + +} +.tankRightBottom img{ + filter: brightness(0) invert(1); + +} + + +.section-title { + font-size: 1.5rem; + color: #ffffff; + margin-bottom: 1rem; +} + +.tank-container { + display: grid; + grid-template-columns: auto auto; + justify-content: center; +} +.tank-container1 { + display: grid; + grid-template-columns: auto auto; + justify-content: space-around; + gap: 20px; +} + + +.tankRight{ + display: flex; + flex-direction: column; + justify-content: space-between; + padding: 10px 0px 30px 0px; + margin-top: -10px; +} + + +.temperature { + font-size: 1rem; + color: #ffffff; + font-weight: bold; + text-shadow: 0 1px 3px rgba(0, 0, 0, 0.6); +} + +.arrow { + display: flex; + align-items: center; + justify-content: center; + margin-top: 1rem; +} + +.arrow-line { + width: 100px; + height: 2px; + background-color: #4c5c77; + margin: 0 1rem; +} + +.arrow span { + font-size: 1rem; + color: #ffffff; +} diff --git a/client/src/components/systemMap/SystemMap.jsx b/client/src/components/systemMap/SystemMap.jsx new file mode 100644 index 0000000..ad18844 --- /dev/null +++ b/client/src/components/systemMap/SystemMap.jsx @@ -0,0 +1,116 @@ +import React from 'react' +import './SystemMap.css' +import { useSelector } from 'react-redux' + +const SystemMap = ({ homedata }) => { + const results = homedata?.results + const season = useSelector(state => state.season.season) + const manualOverride = useSelector(state => state.manualOverride) + + console.log(season) + + return ( + <> + {/* {console.log(manualOverride)} */} + {season === 'Winter' ? ( +
+

System Map

+
+
+
+ { + manualOverride.boiler === 'on' ? ( + Tank + ) : ( + + Tank + + ) } +
+ {/*
{results?.water_out_temp} °F
*/} +
+
+
+
+ 0 F + 0 F +
+ + 32.3 F +
+ +
+
+ 0 F +
+ + 32.3 F +
+
+ + {/*
+ {results?.return_temp || "N/A"} °F +
+ {results?.water_out_temp} °F +
*/} +
+
+ ) : season === 'Summer' ? ( +
+
+

System Map

+
+
+
+ {manualOverride.chiller1 === 'on' ? ( + Tank + ) : ( + + )} +
+
+
+
+ {manualOverride.chiller1 === 'on' ? ( + Tank + ) : ( + + )}{' '} +
+
+
+
+ {manualOverride.chiller1 === 'on' ? ( + Tank + ) : ( + + )}{' '} +
+
+
+
+ {manualOverride.chiller1 === 'on' ? ( + Tank + ) : ( + + )}{' '} +
+
+
+
+ {results?.return_temp} °F +
+ {results?.water_out_temp || 'N/A'} °F +
+
+
+ ) : ( +
+ Something Wrong +
+ )} + + ) +} + +export default SystemMap diff --git a/client/src/features/state/ManualOverrideSlice.js b/client/src/features/state/ManualOverrideSlice.js new file mode 100644 index 0000000..4ee3195 --- /dev/null +++ b/client/src/features/state/ManualOverrideSlice.js @@ -0,0 +1,19 @@ +import { createSlice } from '@reduxjs/toolkit'; + +const manualOverrideSlice = createSlice({ + name: 'manualOverride', + initialState: {}, + reducers: { + setInitialState: (state, action) => { + return { ...action.payload }; + }, + setOverride: (state, action) => { + const { device, value } = action.payload; + state[device] = value; + }, + }, +}); + +export const { setOverride, setInitialState } = manualOverrideSlice.actions; + +export default manualOverrideSlice.reducer; diff --git a/client/src/features/state/seasonSlice.js b/client/src/features/state/seasonSlice.js new file mode 100644 index 0000000..cdc5c7f --- /dev/null +++ b/client/src/features/state/seasonSlice.js @@ -0,0 +1,24 @@ +import { createSlice } from '@reduxjs/toolkit'; + +const initialState = { + season: 'default', + timer: false +}; + +// Create the slice +const seasonSlice = createSlice({ + name: 'season', + initialState, + reducers: { + setSeason: (state, action) => { + state.season = action.payload; + state.timer = true; + }, + }, +}); + +// Export the action creator +export const { setSeason } = seasonSlice.actions; + +// Export the reducer +export default seasonSlice.reducer; diff --git a/client/src/features/summer/summerSlice.js b/client/src/features/summer/summerSlice.js new file mode 100644 index 0000000..923f21b --- /dev/null +++ b/client/src/features/summer/summerSlice.js @@ -0,0 +1,47 @@ +import { createSlice } from '@reduxjs/toolkit' +import { createAsyncThunk } from '@reduxjs/toolkit' +import axios from 'axios'; + +const BASE_URL = "http://localhost:80/" + + +const initialState = { + data: {}, + status: "idle", + error: "" +} + +export const fetchSummerData = createAsyncThunk("summer/fetchSummerData", async () => { + const response = await axios.get(BASE_URL) + return response?.data +}) + + +export const summerSlice = createSlice({ + name: 'summer', + initialState, + reducers: {}, + extraReducers(builder) { + builder + .addCase(fetchSummerData.pending, (state, action) => { + state.status = "loading" + }) + .addCase(fetchSummerData.fulfilled, (state, action) => { + state.status = "succeeded" + state.data = action.payload; + }) + .addCase(fetchSummerData.rejected, (state, action) => { + state.status = "failed" + state.error = action.error.message + }) + + } +}) + +// // Action creators are generated for each case reducer function +// export const getAllData = (state) => state.summerData.data +// export const getDataError = (state) => state.summerData.error +// export const getDataStatus = (state) => state.summerData.status + + +export default summerSlice.reducer \ No newline at end of file diff --git a/chronos/__init__.py b/client/src/features/summer/winterSlice.js similarity index 100% rename from chronos/__init__.py rename to client/src/features/summer/winterSlice.js diff --git a/client/src/index.css b/client/src/index.css new file mode 100644 index 0000000..7cacfc3 --- /dev/null +++ b/client/src/index.css @@ -0,0 +1,74 @@ +:root { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + + + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} +div { + margin: 0; + padding: 0; +} +*{ + margin: 0; + padding: 0; +} +body { + background-color: #2B2E3B; /* Dark muted gray */ + color: #FFFFFF; /* Text color */ +} diff --git a/client/src/main.jsx b/client/src/main.jsx new file mode 100644 index 0000000..9f07d36 --- /dev/null +++ b/client/src/main.jsx @@ -0,0 +1,14 @@ +import { createRoot } from 'react-dom/client' +import App from './App.jsx' +import './index.css' + +import { store } from './app/store.js' +import { Provider } from 'react-redux' + +createRoot(document.getElementById('root')).render( + <> + + + + , +) diff --git a/client/src/pages/Home/Home.css b/client/src/pages/Home/Home.css new file mode 100644 index 0000000..f589a84 --- /dev/null +++ b/client/src/pages/Home/Home.css @@ -0,0 +1,70 @@ +/* Home.css */ + +.home-container { + display: flex; + justify-content: space-around; + align-items: flex-start; + padding: 2rem 1rem; + gap: 1.2rem; + flex-wrap: wrap; +} + +.home-container .left { + display: flex; + flex-direction: column; + justify-content: space-between; + gap: 1.2rem; + column-gap: 1.2rem; + width: 100%; +} + +.home-container .left .item1 { + width: 100%; + display: flex; + flex-direction: column; + gap: 1.2rem; +} + +.home-container .left .item2 { + width: 100%; +} + +.home-container .right { + width: 100%; + display: flex; +} + +.item1n2 { + display: flex; + flex-direction: column; + gap: 1.2rem; + row-gap: 15px; +} + +/* Desktop view */ +@media screen and (min-width: 768px) { + .home-container { + flex-wrap: nowrap; + } + + .home-container .left { + width: 80%; + } + + .home-container .left .item1 { + width: 35%; + } + + .home-container .left .item2 { + width: 65%; + } + + .home-container .right { + width: 20%; + } + + .item1n2 { + flex-direction: row; + gap: 1.2rem; + } +} diff --git a/client/src/pages/Home/Home.jsx b/client/src/pages/Home/Home.jsx new file mode 100644 index 0000000..4ad9aa0 --- /dev/null +++ b/client/src/pages/Home/Home.jsx @@ -0,0 +1,76 @@ +import React, { useState, useEffect } from 'react'; +import Navbar from '../../components/Navbar/Navbar'; +import UserSettings from '../../components/UserSettings/UserSettings'; +import SummerMode from '../../components/SummerMode/SummerMode'; +import SystemMap from '../../components/systemMap/SystemMap'; +import './Home.css'; +import TableTemplate from '../../components/Sensor/TableTemplate'; +import ManualOverride from '../../components/ManualOverride/ManualOverride'; +import TemperatureGraph from '../../components/TemperatureGraph/TemperatureGraph'; +import { useDispatch, useSelector } from 'react-redux'; +import { fetchSummerData } from '../../features/summer/summerSlice'; +import Modbus from '../../components/Modebus/Modbus'; +import { setSeason } from '../../features/state/seasonSlice'; + +const Home = () => { + const [homedata, setHomeData] = useState() + const dispatch = useDispatch(); + + + + useEffect(() => { + const fetchData = async () => { + const resultAction = await dispatch(fetchSummerData()); + + if (fetchSummerData.fulfilled.match(resultAction)) { + const data = resultAction.payload; + setHomeData(data); + data?.results?.mode === 0 ? dispatch(setSeason('Winter')) :data?.results?.mode === 1 ? dispatch(setSeason('Summer')):dispatch(setSeason('Default')); + } else { + console.error('Failed to fetch summer data'); + } + }; + + fetchData(); + }, []); + + console.log(homedata); + + + + return ( + <> + +
+
+
+
+ + + + +
+
+ +
+
+ + + +
+ + +
+ +
+ + +
+ + + + + ); +}; + +export default Home; diff --git a/client/vite.config.js b/client/vite.config.js new file mode 100644 index 0000000..86ecbd3 --- /dev/null +++ b/client/vite.config.js @@ -0,0 +1,11 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], +}) + + + + diff --git a/docker-compose.yml b/docker-compose.yml index a250bca..3e7e138 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,11 +1,22 @@ version: "3" services: - chronos: - build: . + server: + build: + context: ./server ports: - - "90:80" + - "80:80" privileged: true - container_name: chronos4 + container_name: chronosBackend + + frontend: + build: + context: ./client + dockerfile: Dockerfile + container_name: frontend + ports: + - "5173:80" + depends_on: + - server networks: default: diff --git a/server/.DS_Store b/server/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..d99952565a2c67b1942305944eb868ce3ace1a81 GIT binary patch literal 8196 zcmeI1O-~a+7{{L}g>J1RXw=}rxQW+_+ah4%rIcdAK@XJZK~3$_N;hnGu)C!pgrsL* zK8x|DA4I>4@u2^C0e7e1fde6NCYgC=cb@+|v%lHy@+?He>cdWjXr721RAJ{zXih0& zT-1q@(`T;1GU$mS;uLR$eA^EvyzL1~z!It>ISnn^nu#`X5#r8wH+JoJzIZU1@D z9ku3etnnym2T^w*1wp3^msc->sKZBfK8!lC)HcH=(%^<{Vd<(q=~^}?af1FHA1>?)+o%U;>7c#k}T>3ggn zJ7Cuwq%mN+Y$k@f4*z;`MMrsZnIlI=}cSAF)_8c(}WVArs0rIZtWtCHFhO$IY z@soQ-8}x+MsYzQn za3r~ehKP8|uH}Cj{De(!w`KJu0m7OcC0MUpx6%q5`%3lfeR(@2XAmjA^-pY literal 0 HcmV?d00001 diff --git a/chronos/bin/__init__.py b/server/.dockerignore similarity index 100% rename from chronos/bin/__init__.py rename to server/.dockerignore diff --git a/Dockerfile b/server/Dockerfile similarity index 100% rename from Dockerfile rename to server/Dockerfile diff --git a/MANIFEST.in b/server/MANIFEST.in similarity index 100% rename from MANIFEST.in rename to server/MANIFEST.in diff --git a/server/README.md b/server/README.md new file mode 100644 index 0000000..5ed0ccf --- /dev/null +++ b/server/README.md @@ -0,0 +1,189 @@ +# Chronos # +## README ## + +### What is this repository for? ### + +Chronos is a boiling/cooling water system working on Raspberry Pi. Chronos has a web interface to control the system and tracking for the state. + +![Alt text](http://i.imgur.com/8II1ydG.png "A screenshot of the Chronos web interface") +## Frontend and Backend Separation + +### Overview + +The Chronos project has been refactored to separate the frontend and backend components. The backend operates as a standalone service providing APIs, while the frontend is handled separately. + +### A screenshot of API response of Chronos +![Alt text](https://miro.medium.com/v2/resize:fit:720/format:webp/1*p5MTHzrfaLYycSmZFSdmoA.png "A screenshot of API response of Chronos") + +### API Endpoints + +The backend provides the following API endpoints: + +#### Base URL +- **Base URL**: `http://:90` + +#### Endpoints + +- **Get System Data**: + - **URL**: `/` + - **Method**: `GET` + - **Description**: Retrieves the current system data, including temperature settings and mode status. + - **Response**: JSON object containing system data. + +- **Get Rendered Season Templates**: + - **URL**: `/season_templates` + - **Method**: `GET` + - **Description**: Retrieves data for rendering season templates. + - **Response**: JSON object with system results, activity stream, and efficiency details. + +- **Download Log**: + - **URL**: `/download_log` + - **Method**: `GET` + - **Description**: Downloads the system log as a CSV file. + - **Response**: CSV file download. + +- **Update Settings**: + - **URL**: `/update_settings` + - **Method**: `POST` + - **Description**: Updates system settings based on provided form data. + - **Request Body**: Form data with settings to update. + - **Response**: JSON object with the updated form data. + +- **Switch Mode**: + - **URL**: `/switch_mode` + - **Method**: `POST` + - **Description**: Switches the system mode between winter and summer. + - **Request Body**: Form data with the new mode (`TO_WINTER` or `TO_SUMMER`). + - **Response**: JSON object with error status and mode switch lockout time. + +- **Update Device State**: + - **URL**: `/update_state` + - **Method**: `POST` + - **Description**: Updates the state of a specific device based on provided form data. + - **Request Body**: Form data with device number and manual override value. + - **Response**: Empty response. + +- **Winter Mode Data**: + - **URL**: `/winter` + - **Method**: `GET` + - **Description**: Retrieves data specific to the winter mode. + - **Response**: JSON object with system data. + +- **Summer Mode Data**: + - **URL**: `/summer` + - **Method**: `GET` + - **Description**: Retrieves data specific to the summer mode. + - **Response**: JSON object with system data. + +- **Chart Data**: + - **URL**: `/chart_data` + - **Method**: `GET` + - **Description**: Retrieves data for charts. + - **Response**: JSON object containing chart data. + + +![Alt text](http://i.imgur.com/8II1ydG.png "A screenshot of the Chronos web interface") + +### SIMULATORS + +Chronos talks to the following components on the RPI. + +These devices are specified in data_files/chronos_config.json +- Boiler via modbus connected to /dev/ttyUSB0 +- Chillers via relays talking to serial port /dev/ttyACM0 +- Relays to the Chillers via /tmp/pty0 and /tmp/pty1 +- Water temperature in and out via /tmp/water_in and /tmp/water_out + +#### Test Chillers +The relays to the chillers are emulated using socat. socat creates virtual pty devices that can respond as serial ports. +The following command in entrypoint.sh brings up a virtual ptyp1 device to respond to relays +``` +socat -d -d PTY,link=/tmp/ptyp1,raw,echo=0 PTY,link=/tmp/ttyp1,raw,echo=0 & +``` + +#### Test Boiler +The following commands in entrypoint.sh bring up a virtual ptyp0 device and then runs working-sync-server to emulate the boiler. +``` +socat -d -d PTY,link=/tmp/ptyp0,raw,echo=0 PTY,link=/tmp/ttyp0,raw,echo=0 & +python2 working-sync-server.py /tmp/ttyp0 & +``` +Actual device to simulator mappings are as follows, the chronos_config.json needs to be changed on the automation QA server to run as follows: +Boiler --> /dev/ttyUSB0 --> /tmp/ptyp0 +Chillers --> /dev/ttyACM0 --> /tmp/ptyp1 + +#### Test water temperature +The water temperature is provided in Centigrade. In order to provide a test incoming water temperature of 100C, use: +``` +echo -e "YES\nt=100" > /tmp/water_in +``` +In order to provide a test out water temperature of 140C, use: +``` +echo -e "YES\nt=140" > /tmp/water_out +``` + +#### Python packages dependencies #### + +* Flask +* pyserial +* apscheduler +* pymodbus +* sqlalchemy +* python-socketio +* socketIO_client +* uwsgi + +#### System dependencies #### + +* nginx +* uwsgi-plug-python + +#### Hardware dependencies #### + +* Raspberry Pi +* USB to RS4485 adapter such as the GearMo Mini USB to RS485 / RS422 Converter FTDI CHIP +* Relay array such as the Numato 16 Channel USB Relay Module https://numato.com/product/16-channel-usb-relay-module +* Two DS18B20 temperature sensors connected to GPIO + +#### Database configuration #### + +TODO +#### Deployment instructions #### + +To work with shared log and access to the db file www-data and pi users have to be added in one group. +Installation script does all required actions. + +#### Files locations #### + +chronos log directory: `/var/log/chronos` + +chronos database directory: `/home/pi/chronos_db` + +chronos config path: `/etc/chronos_config.json` + +#### Managing #### +Chronos has a daemon which controlled by the following command: + +`# service chronos start|stop|restart` + +Web UI managed by uwsgi app server: + +`# service uwsgi start|stop|restart|reload` + +SocketIO server managing: + +`# service uwsgi-socketio start|stop|restart|reload` + +## AUTOMATION & TESTING + +This repo uses a self-hosted git-runner on AWS. The .github/workflows/main.yaml file automatically kicks off a new deployment whenever any code changes have been committed to the master branch. + +Follow these steps to add a new runner as shown in git +https://docs.github.com/en/actions/hosting-your-own-runners/adding-self-hosted-runners + +- Install docker.io and docker-compose on the Runner + - sudo apt update + - sudo apt install docker.io docker-compose -y + + + + diff --git a/chronos.sql b/server/chronos.sql similarity index 100% rename from chronos.sql rename to server/chronos.sql diff --git a/chronos/utils/__init__.py b/server/chronos/__init__.py similarity index 100% rename from chronos/utils/__init__.py rename to server/chronos/__init__.py diff --git a/server/chronos/bin/__init__.py b/server/chronos/bin/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/chronos/bin/chronosd.py b/server/chronos/bin/chronosd.py similarity index 100% rename from chronos/bin/chronosd.py rename to server/chronos/bin/chronosd.py diff --git a/chronos/bin/socketio_server.py b/server/chronos/bin/socketio_server.py similarity index 52% rename from chronos/bin/socketio_server.py rename to server/chronos/bin/socketio_server.py index e99d386..9ef658f 100644 --- a/chronos/bin/socketio_server.py +++ b/server/chronos/bin/socketio_server.py @@ -1,5 +1,3 @@ -#!/usr/bin/env python - import sys import logging import socketio @@ -11,11 +9,20 @@ console_handler.setFormatter(log_formatter) logger.addHandler(console_handler) -sio = socketio.Server(logger=logger, engineio_logger=logger, async_mode="gevent_uwsgi") +sio = socketio.Server(cors_allowed_origins='*', logger=logger, engineio_logger=logger, async_mode="gevent_uwsgi") @sio.on("backend") def handle_message(sid, data): + # Set CORS headers + # headers = { + # 'Access-Control-Allow-Origin': '*', # Replace '*' with specific domains if needed + # 'Access-Control-Allow-Methods': 'GET, POST, OPTIONS', + # 'Access-Control-Allow-Headers': 'Authorization, Content-Type' + + # } + + # Emit with headers sio.emit(data["event"], data["message"], skip_sid=sid) diff --git a/chronos/chronos.py b/server/chronos/chronos.py similarity index 92% rename from chronos/chronos.py rename to server/chronos/chronos.py index 2b30e41..47aa20b 100644 --- a/chronos/chronos.py +++ b/server/chronos/chronos.py @@ -3,10 +3,15 @@ from .lib.config_parser import cfg from .lib import Chronos, WINTER, SUMMER, TO_WINTER, TO_SUMMER from flask import Flask, render_template, Response, jsonify, request, make_response +from flask_cors import CORS +import logging app = Flask(__name__) +CORS(app) chronos = Chronos() chronos.scheduler.start() +logging.basicConfig(level=logging.INFO) +log = logging.getLogger() def get_data(): @@ -96,6 +101,8 @@ def switch_mode(): @app.route("/") def index(): data = get_data() + log.info("fardin") + print "App started" return jsonify(data) @@ -104,13 +111,13 @@ def update_state(): device_number = int(request.form["device"]) manual_override_value = int(request.form["manual_override"]) chronos.devices[device_number].manual_override = manual_override_value - resp = make_response() - return resp + return jsonify({"message": "Override updated successfully"}) @app.route("/winter") def winter(): - data = get_data() + data = get_data() + log.info("fardin") return jsonify(data) @@ -132,4 +139,5 @@ def chart_data(): if __name__ == "__main__": + print "App started" app.run(host='0.0.0.0', port=5000, debug=True) \ No newline at end of file diff --git a/chronos/lib/__init__.py b/server/chronos/lib/__init__.py similarity index 100% rename from chronos/lib/__init__.py rename to server/chronos/lib/__init__.py diff --git a/chronos/lib/config_parser.py b/server/chronos/lib/config_parser.py similarity index 100% rename from chronos/lib/config_parser.py rename to server/chronos/lib/config_parser.py diff --git a/chronos/lib/db.py b/server/chronos/lib/db.py similarity index 100% rename from chronos/lib/db.py rename to server/chronos/lib/db.py diff --git a/chronos/lib/db_queries.py b/server/chronos/lib/db_queries.py similarity index 100% rename from chronos/lib/db_queries.py rename to server/chronos/lib/db_queries.py diff --git a/chronos/lib/modbus_client.py b/server/chronos/lib/modbus_client.py similarity index 100% rename from chronos/lib/modbus_client.py rename to server/chronos/lib/modbus_client.py diff --git a/chronos/lib/root_logger.py b/server/chronos/lib/root_logger.py similarity index 100% rename from chronos/lib/root_logger.py rename to server/chronos/lib/root_logger.py diff --git a/chronos/lib/socketio_client.py b/server/chronos/lib/socketio_client.py similarity index 100% rename from chronos/lib/socketio_client.py rename to server/chronos/lib/socketio_client.py diff --git a/server/chronos/utils/__init__.py b/server/chronos/utils/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/chronos/utils/chronos_hardware_debug.py b/server/chronos/utils/chronos_hardware_debug.py similarity index 100% rename from chronos/utils/chronos_hardware_debug.py rename to server/chronos/utils/chronos_hardware_debug.py diff --git a/chronos/utils/modbus_sp/boiler_status.c b/server/chronos/utils/modbus_sp/boiler_status.c similarity index 100% rename from chronos/utils/modbus_sp/boiler_status.c rename to server/chronos/utils/modbus_sp/boiler_status.c diff --git a/chronos/utils/modbus_sp/bstat b/server/chronos/utils/modbus_sp/bstat similarity index 100% rename from chronos/utils/modbus_sp/bstat rename to server/chronos/utils/modbus_sp/bstat diff --git a/chronos/utils/modbus_sp/bstat.c b/server/chronos/utils/modbus_sp/bstat.c similarity index 100% rename from chronos/utils/modbus_sp/bstat.c rename to server/chronos/utils/modbus_sp/bstat.c diff --git a/chronos/utils/modbus_sp/change_sp.c b/server/chronos/utils/modbus_sp/change_sp.c similarity index 100% rename from chronos/utils/modbus_sp/change_sp.c rename to server/chronos/utils/modbus_sp/change_sp.c diff --git a/chronos/utils/modbus_sp/fr b/server/chronos/utils/modbus_sp/fr similarity index 100% rename from chronos/utils/modbus_sp/fr rename to server/chronos/utils/modbus_sp/fr diff --git a/chronos/utils/modbus_sp/graphic.c b/server/chronos/utils/modbus_sp/graphic.c similarity index 100% rename from chronos/utils/modbus_sp/graphic.c rename to server/chronos/utils/modbus_sp/graphic.c diff --git a/chronos/utils/modbus_sp/run_change_sp.sh b/server/chronos/utils/modbus_sp/run_change_sp.sh similarity index 100% rename from chronos/utils/modbus_sp/run_change_sp.sh rename to server/chronos/utils/modbus_sp/run_change_sp.sh diff --git a/chronos/utils/modbus_sp/sp b/server/chronos/utils/modbus_sp/sp similarity index 100% rename from chronos/utils/modbus_sp/sp rename to server/chronos/utils/modbus_sp/sp diff --git a/chronos/utils/modbus_sp/sp.sh b/server/chronos/utils/modbus_sp/sp.sh similarity index 100% rename from chronos/utils/modbus_sp/sp.sh rename to server/chronos/utils/modbus_sp/sp.sh diff --git a/chronos/utils/modbus_sp/toCompile.txt b/server/chronos/utils/modbus_sp/toCompile.txt similarity index 100% rename from chronos/utils/modbus_sp/toCompile.txt rename to server/chronos/utils/modbus_sp/toCompile.txt diff --git a/chronos/utils/modbus_sp/tt-status.c b/server/chronos/utils/modbus_sp/tt-status.c similarity index 100% rename from chronos/utils/modbus_sp/tt-status.c rename to server/chronos/utils/modbus_sp/tt-status.c diff --git a/chronos/utils/modbus_sp/tt-status_ro.c b/server/chronos/utils/modbus_sp/tt-status_ro.c similarity index 100% rename from chronos/utils/modbus_sp/tt-status_ro.c rename to server/chronos/utils/modbus_sp/tt-status_ro.c diff --git a/chronos/utils/relayHelpers/relayread.py b/server/chronos/utils/relayHelpers/relayread.py similarity index 100% rename from chronos/utils/relayHelpers/relayread.py rename to server/chronos/utils/relayHelpers/relayread.py diff --git a/chronos/utils/relayHelpers/relaywrite.py b/server/chronos/utils/relayHelpers/relaywrite.py similarity index 100% rename from chronos/utils/relayHelpers/relaywrite.py rename to server/chronos/utils/relayHelpers/relaywrite.py diff --git a/chronos/utils/temp.sh b/server/chronos/utils/temp.sh similarity index 100% rename from chronos/utils/temp.sh rename to server/chronos/utils/temp.sh diff --git a/client.py b/server/client.py similarity index 92% rename from client.py rename to server/client.py index 90d263a..e2157ea 100644 --- a/client.py +++ b/server/client.py @@ -28,3 +28,4 @@ def c_to_f(t): for i in range (1, 9): print (c_to_f(iregs.getRegister(i) / 10.0)) print (float(iregs.getRegister(i))) + print ('testttttttttttttttttttttttttttttttftttttftft') diff --git a/data_files/chronos b/server/data_files/chronos similarity index 100% rename from data_files/chronos rename to server/data_files/chronos diff --git a/data_files/chronos.conf b/server/data_files/chronos.conf similarity index 70% rename from data_files/chronos.conf rename to server/data_files/chronos.conf index 33e4e40..4bbafc6 100644 --- a/data_files/chronos.conf +++ b/server/data_files/chronos.conf @@ -27,5 +27,13 @@ server { proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; + + # Add CORS headers here + + add_header Access-Control-Allow-Origin "$http_origin"; + add_header Access-Control-Allow-Methods "OPTIONS, POST, GET"; + add_header Access-Control-Max-Age "3600"; + add_header Access-Control-Allow-Credentials "true"; + add_header Access-Control-Allow-Headers "Content-Type"; } -} \ No newline at end of file +} diff --git a/data_files/chronos.ini b/server/data_files/chronos.ini similarity index 100% rename from data_files/chronos.ini rename to server/data_files/chronos.ini diff --git a/data_files/chronos.wsgi b/server/data_files/chronos.wsgi similarity index 100% rename from data_files/chronos.wsgi rename to server/data_files/chronos.wsgi diff --git a/data_files/chronos_config.json b/server/data_files/chronos_config.json similarity index 100% rename from data_files/chronos_config.json rename to server/data_files/chronos_config.json diff --git a/data_files/socketio_server.ini b/server/data_files/socketio_server.ini similarity index 100% rename from data_files/socketio_server.ini rename to server/data_files/socketio_server.ini diff --git a/data_files/uwsgi b/server/data_files/uwsgi similarity index 100% rename from data_files/uwsgi rename to server/data_files/uwsgi diff --git a/data_files/uwsgi-socketio.service b/server/data_files/uwsgi-socketio.service similarity index 100% rename from data_files/uwsgi-socketio.service rename to server/data_files/uwsgi-socketio.service diff --git a/entrypoint.sh b/server/entrypoint.sh old mode 100644 new mode 100755 similarity index 90% rename from entrypoint.sh rename to server/entrypoint.sh index c34593f..243c00a --- a/entrypoint.sh +++ b/server/entrypoint.sh @@ -3,8 +3,7 @@ set -e socat -d -d PTY,link=/tmp/ptyp0,raw,echo=0 PTY,link=/tmp/ttyp0,raw,echo=0 & socat -d -d PTY,link=/tmp/ptyp1,raw,echo=0 PTY,link=/tmp/ttyp1,raw,echo=0 & -python2 working-sync-server.py /tmp/ttyp0 & - +python2 -u working-sync-server.py /tmp/ttyp0 & sudo chown pi:pi /tmp/ptyp0 sudo chown pi:pi /tmp/ptyp1 @@ -20,9 +19,11 @@ mkdir -p /var/log/uwsgi echo -e "YES\nt=100" > /tmp/water_in echo -e "YES\nt=150" > /tmp/water_out - service uwsgi start service nginx start service chronos start +service chronos restart + + tail -f /dev/null diff --git a/post_install b/server/post_install similarity index 100% rename from post_install rename to server/post_install diff --git a/setup.py b/server/setup.py similarity index 100% rename from setup.py rename to server/setup.py diff --git a/working-sync-server.py b/server/working-sync-server.py similarity index 100% rename from working-sync-server.py rename to server/working-sync-server.py